diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt index 4324165..617d511 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt @@ -35,6 +35,7 @@ ) private var isVisibleToUser = false private var isGetVoiceValue = false + private var isGetVoiceMode = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,6 +64,11 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) delay(1200) } + + while (!isGetVoiceMode) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) + delay(1300) + } } } } @@ -76,16 +82,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) } - binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.localeRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) - } else if (checkedId == R.id.remoteRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) - } - } + binding.localeRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + } + + binding.remoteRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> @@ -119,19 +121,21 @@ isGetVoiceValue = true binding.volumeValueView.text = valueToChineseMap[msg.obj as Int] } + + LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE -> { + isGetVoiceMode = true + if ((msg.obj as Int) == 0) { + binding.localeRadioButton.isChecked = true + } else { + binding.remoteRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val isLocale = SaveKeyValues.getValue(LocaleConstant.LOCALE_MODE_KEY, true) as Boolean - if (isLocale) { - binding.localeRadioButton.isChecked = true - } else { - binding.remoteRadioButton.isChecked = true - } - val openAlarm = SaveKeyValues.getValue(LocaleConstant.OPEN_ALARM_KEY, true) as Boolean if (openAlarm) { binding.openAlarmRadioButton.isChecked = true diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt index 4324165..617d511 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt @@ -35,6 +35,7 @@ ) private var isVisibleToUser = false private var isGetVoiceValue = false + private var isGetVoiceMode = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,6 +64,11 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) delay(1200) } + + while (!isGetVoiceMode) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) + delay(1300) + } } } } @@ -76,16 +82,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) } - binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.localeRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) - } else if (checkedId == R.id.remoteRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) - } - } + binding.localeRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + } + + binding.remoteRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> @@ -119,19 +121,21 @@ isGetVoiceValue = true binding.volumeValueView.text = valueToChineseMap[msg.obj as Int] } + + LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE -> { + isGetVoiceMode = true + if ((msg.obj as Int) == 0) { + binding.localeRadioButton.isChecked = true + } else { + binding.remoteRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val isLocale = SaveKeyValues.getValue(LocaleConstant.LOCALE_MODE_KEY, true) as Boolean - if (isLocale) { - binding.localeRadioButton.isChecked = true - } else { - binding.remoteRadioButton.isChecked = true - } - val openAlarm = SaveKeyValues.getValue(LocaleConstant.OPEN_ALARM_KEY, true) as Boolean if (openAlarm) { binding.openAlarmRadioButton.isChecked = true diff --git a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt index dce2f0f..71354b7 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt @@ -65,6 +65,10 @@ tcpClient.sendMessage(CommandCreator.reduceVoice()) } + LocaleConstant.QUERY_VOICE_MODE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryVoiceMode()) + } + LocaleConstant.OPEN_LOCALE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.openLocaleMode()) } @@ -172,6 +176,8 @@ * * 音量减小返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 0, 0, -103] * + * 语音源模式查询返回: + * * 语音源切换到本地返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 1, 0, -110] * * 语音源切换到远程返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 0, 0, -111] @@ -290,17 +296,18 @@ when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, false) - } else { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, true) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "91" -> { //激光状态 - val weakReferenceHandler = - MethaneMonitorFragment.weakReferenceHandler ?: return + val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler + ?: return val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.QUERY_METHANE_STATE_RESPONSE_CODE message.obj = bytes[10].toInt() diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt index 4324165..617d511 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt @@ -35,6 +35,7 @@ ) private var isVisibleToUser = false private var isGetVoiceValue = false + private var isGetVoiceMode = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,6 +64,11 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) delay(1200) } + + while (!isGetVoiceMode) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) + delay(1300) + } } } } @@ -76,16 +82,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) } - binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.localeRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) - } else if (checkedId == R.id.remoteRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) - } - } + binding.localeRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + } + + binding.remoteRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> @@ -119,19 +121,21 @@ isGetVoiceValue = true binding.volumeValueView.text = valueToChineseMap[msg.obj as Int] } + + LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE -> { + isGetVoiceMode = true + if ((msg.obj as Int) == 0) { + binding.localeRadioButton.isChecked = true + } else { + binding.remoteRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val isLocale = SaveKeyValues.getValue(LocaleConstant.LOCALE_MODE_KEY, true) as Boolean - if (isLocale) { - binding.localeRadioButton.isChecked = true - } else { - binding.remoteRadioButton.isChecked = true - } - val openAlarm = SaveKeyValues.getValue(LocaleConstant.OPEN_ALARM_KEY, true) as Boolean if (openAlarm) { binding.openAlarmRadioButton.isChecked = true diff --git a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt index dce2f0f..71354b7 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt @@ -65,6 +65,10 @@ tcpClient.sendMessage(CommandCreator.reduceVoice()) } + LocaleConstant.QUERY_VOICE_MODE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryVoiceMode()) + } + LocaleConstant.OPEN_LOCALE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.openLocaleMode()) } @@ -172,6 +176,8 @@ * * 音量减小返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 0, 0, -103] * + * 语音源模式查询返回: + * * 语音源切换到本地返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 1, 0, -110] * * 语音源切换到远程返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 0, 0, -111] @@ -290,17 +296,18 @@ when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, false) - } else { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, true) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "91" -> { //激光状态 - val weakReferenceHandler = - MethaneMonitorFragment.weakReferenceHandler ?: return + val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler + ?: return val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.QUERY_METHANE_STATE_RESPONSE_CODE message.obj = bytes[10].toInt() diff --git a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt index 828883b..24432f0 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt @@ -130,6 +130,13 @@ } /** + * 查询语音模式指令 + * */ + fun queryVoiceMode(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x90.toByte(), 0x00, 0x00, 0x92.toByte()) + } + + /** * 切换本地音源指令 * */ fun openLocaleMode(): ByteArray { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt index 4324165..617d511 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt @@ -35,6 +35,7 @@ ) private var isVisibleToUser = false private var isGetVoiceValue = false + private var isGetVoiceMode = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,6 +64,11 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) delay(1200) } + + while (!isGetVoiceMode) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) + delay(1300) + } } } } @@ -76,16 +82,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) } - binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.localeRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) - } else if (checkedId == R.id.remoteRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) - } - } + binding.localeRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + } + + binding.remoteRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> @@ -119,19 +121,21 @@ isGetVoiceValue = true binding.volumeValueView.text = valueToChineseMap[msg.obj as Int] } + + LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE -> { + isGetVoiceMode = true + if ((msg.obj as Int) == 0) { + binding.localeRadioButton.isChecked = true + } else { + binding.remoteRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val isLocale = SaveKeyValues.getValue(LocaleConstant.LOCALE_MODE_KEY, true) as Boolean - if (isLocale) { - binding.localeRadioButton.isChecked = true - } else { - binding.remoteRadioButton.isChecked = true - } - val openAlarm = SaveKeyValues.getValue(LocaleConstant.OPEN_ALARM_KEY, true) as Boolean if (openAlarm) { binding.openAlarmRadioButton.isChecked = true diff --git a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt index dce2f0f..71354b7 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt @@ -65,6 +65,10 @@ tcpClient.sendMessage(CommandCreator.reduceVoice()) } + LocaleConstant.QUERY_VOICE_MODE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryVoiceMode()) + } + LocaleConstant.OPEN_LOCALE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.openLocaleMode()) } @@ -172,6 +176,8 @@ * * 音量减小返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 0, 0, -103] * + * 语音源模式查询返回: + * * 语音源切换到本地返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 1, 0, -110] * * 语音源切换到远程返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 0, 0, -111] @@ -290,17 +296,18 @@ when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, false) - } else { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, true) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "91" -> { //激光状态 - val weakReferenceHandler = - MethaneMonitorFragment.weakReferenceHandler ?: return + val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler + ?: return val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.QUERY_METHANE_STATE_RESPONSE_CODE message.obj = bytes[10].toInt() diff --git a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt index 828883b..24432f0 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt @@ -130,6 +130,13 @@ } /** + * 查询语音模式指令 + * */ + fun queryVoiceMode(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x90.toByte(), 0x00, 0x00, 0x92.toByte()) + } + + /** * 切换本地音源指令 * */ fun openLocaleMode(): ByteArray { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt b/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt index 94d9a8d..32d46be 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt @@ -20,19 +20,20 @@ const val UPDATE_GAS_THRESHOLD_CODE = 20240004 const val QUERY_CPU_TEMPERATURE_CODE = 20240005 const val QUERY_VOICE_VALUE_CODE = 20240006 - const val INCREASE_VOICE_CODE = 20240007 - const val REDUCE_VOICE_CODE = 20240008 - const val OPEN_LOCALE_MODE_CODE = 20240009 - const val OPEN_REMOTE_MODE_CODE = 20240010 - const val OPEN_METHANE_ALARM_CODE = 20240011 - const val CLOSE_METHANE_ALARM_CODE = 20240012 - const val OPEN_DEVICE_STATE_TIPS_CODE = 20240013 - const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240014 - const val QUERY_BOARD_CONFIG_CODE = 20240015 - const val QUERY_IS_USE_AI_CODE = 20240016 - const val QUERY_SERVER_CONFIG_CODE = 20240017 - const val SET_BOARD_WIFI_CONFIG_CODE = 20240018 - const val SET_BOARD_SERVER_CONFIG_CODE = 20240019 + const val QUERY_VOICE_MODE_CODE = 20240007 + const val INCREASE_VOICE_CODE = 20240008 + const val REDUCE_VOICE_CODE = 20240009 + const val OPEN_LOCALE_MODE_CODE = 20240010 + const val OPEN_REMOTE_MODE_CODE = 20240011 + const val OPEN_METHANE_ALARM_CODE = 20240012 + const val CLOSE_METHANE_ALARM_CODE = 20240013 + const val OPEN_DEVICE_STATE_TIPS_CODE = 20240014 + const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240015 + const val QUERY_BOARD_CONFIG_CODE = 20240016 + const val QUERY_IS_USE_AI_CODE = 20240017 + const val QUERY_SERVER_CONFIG_CODE = 20240018 + const val SET_BOARD_WIFI_CONFIG_CODE = 20240019 + const val SET_BOARD_SERVER_CONFIG_CODE = 20240020 /** * Handler Response Code @@ -41,22 +42,21 @@ const val QUERY_CPU_TEMPERATURE_RESPONSE_CODE = 20241002 const val QUERY_METHANE_RESPONSE_CODE = 20241003 const val QUERY_VOICE_VALUE_RESPONSE_CODE = 20241004 - const val DEVICE_RESPONSE_CODE = 20241005 - const val BOARD_CONFIG_RESPONSE_CODE = 20241006 - const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241007 - const val SERVER_CONFIG_RESPONSE_CODE = 20241008 - const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241009 - const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241010 + const val QUERY_VOICE_MODE_RESPONSE_CODE = 20241005 + const val DEVICE_RESPONSE_CODE = 20241006 + const val BOARD_CONFIG_RESPONSE_CODE = 20241007 + const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241008 + const val SERVER_CONFIG_RESPONSE_CODE = 20241009 + const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241010 + const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241011 /*** * SP Key * */ const val DEVICE_CONTROL_SERVER_CONFIG_KEY = "Key_1" - const val LOCALE_MODE_KEY = "Key_4" const val OPEN_ALARM_KEY = "Key_5" const val OPEN_VOICE_KEY = "Key_6" const val METHANE_DEFAULT_VALUE_KEY = "Key_7" - const val CURRENT_VOICE_VALUE_KEY = "Key_8" const val SAFE_TREE_CAMERA_IP_KEY = "Key_9" const val SAFE_TREE_SOCKET_IP_KEY = "Key_10" } \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt index 4324165..617d511 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/VoiceSettingsFragment.kt @@ -35,6 +35,7 @@ ) private var isVisibleToUser = false private var isGetVoiceValue = false + private var isGetVoiceMode = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,6 +64,11 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) delay(1200) } + + while (!isGetVoiceMode) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) + delay(1300) + } } } } @@ -76,16 +82,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) } - binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.localeRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) - } else if (checkedId == R.id.remoteRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) - } - } + binding.localeRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + } + + binding.remoteRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> @@ -119,19 +121,21 @@ isGetVoiceValue = true binding.volumeValueView.text = valueToChineseMap[msg.obj as Int] } + + LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE -> { + isGetVoiceMode = true + if ((msg.obj as Int) == 0) { + binding.localeRadioButton.isChecked = true + } else { + binding.remoteRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val isLocale = SaveKeyValues.getValue(LocaleConstant.LOCALE_MODE_KEY, true) as Boolean - if (isLocale) { - binding.localeRadioButton.isChecked = true - } else { - binding.remoteRadioButton.isChecked = true - } - val openAlarm = SaveKeyValues.getValue(LocaleConstant.OPEN_ALARM_KEY, true) as Boolean if (openAlarm) { binding.openAlarmRadioButton.isChecked = true diff --git a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt index dce2f0f..71354b7 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/service/SocketConnectionService.kt @@ -65,6 +65,10 @@ tcpClient.sendMessage(CommandCreator.reduceVoice()) } + LocaleConstant.QUERY_VOICE_MODE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryVoiceMode()) + } + LocaleConstant.OPEN_LOCALE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.openLocaleMode()) } @@ -172,6 +176,8 @@ * * 音量减小返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 0, 0, -103] * + * 语音源模式查询返回: + * * 语音源切换到本地返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 1, 0, -110] * * 语音源切换到远程返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -112, 0, 0, -111] @@ -290,17 +296,18 @@ when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, false) - } else { - SaveKeyValues.putValue(LocaleConstant.LOCALE_MODE_KEY, true) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_VOICE_MODE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "91" -> { //激光状态 - val weakReferenceHandler = - MethaneMonitorFragment.weakReferenceHandler ?: return + val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler + ?: return val message = weakReferenceHandler.obtainMessage() message.what = LocaleConstant.QUERY_METHANE_STATE_RESPONSE_CODE message.obj = bytes[10].toInt() diff --git a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt index 828883b..24432f0 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/utils/CommandCreator.kt @@ -130,6 +130,13 @@ } /** + * 查询语音模式指令 + * */ + fun queryVoiceMode(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x90.toByte(), 0x00, 0x00, 0x92.toByte()) + } + + /** * 切换本地音源指令 * */ fun openLocaleMode(): ByteArray { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt b/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt index 94d9a8d..32d46be 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/utils/LocaleConstant.kt @@ -20,19 +20,20 @@ const val UPDATE_GAS_THRESHOLD_CODE = 20240004 const val QUERY_CPU_TEMPERATURE_CODE = 20240005 const val QUERY_VOICE_VALUE_CODE = 20240006 - const val INCREASE_VOICE_CODE = 20240007 - const val REDUCE_VOICE_CODE = 20240008 - const val OPEN_LOCALE_MODE_CODE = 20240009 - const val OPEN_REMOTE_MODE_CODE = 20240010 - const val OPEN_METHANE_ALARM_CODE = 20240011 - const val CLOSE_METHANE_ALARM_CODE = 20240012 - const val OPEN_DEVICE_STATE_TIPS_CODE = 20240013 - const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240014 - const val QUERY_BOARD_CONFIG_CODE = 20240015 - const val QUERY_IS_USE_AI_CODE = 20240016 - const val QUERY_SERVER_CONFIG_CODE = 20240017 - const val SET_BOARD_WIFI_CONFIG_CODE = 20240018 - const val SET_BOARD_SERVER_CONFIG_CODE = 20240019 + const val QUERY_VOICE_MODE_CODE = 20240007 + const val INCREASE_VOICE_CODE = 20240008 + const val REDUCE_VOICE_CODE = 20240009 + const val OPEN_LOCALE_MODE_CODE = 20240010 + const val OPEN_REMOTE_MODE_CODE = 20240011 + const val OPEN_METHANE_ALARM_CODE = 20240012 + const val CLOSE_METHANE_ALARM_CODE = 20240013 + const val OPEN_DEVICE_STATE_TIPS_CODE = 20240014 + const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240015 + const val QUERY_BOARD_CONFIG_CODE = 20240016 + const val QUERY_IS_USE_AI_CODE = 20240017 + const val QUERY_SERVER_CONFIG_CODE = 20240018 + const val SET_BOARD_WIFI_CONFIG_CODE = 20240019 + const val SET_BOARD_SERVER_CONFIG_CODE = 20240020 /** * Handler Response Code @@ -41,22 +42,21 @@ const val QUERY_CPU_TEMPERATURE_RESPONSE_CODE = 20241002 const val QUERY_METHANE_RESPONSE_CODE = 20241003 const val QUERY_VOICE_VALUE_RESPONSE_CODE = 20241004 - const val DEVICE_RESPONSE_CODE = 20241005 - const val BOARD_CONFIG_RESPONSE_CODE = 20241006 - const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241007 - const val SERVER_CONFIG_RESPONSE_CODE = 20241008 - const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241009 - const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241010 + const val QUERY_VOICE_MODE_RESPONSE_CODE = 20241005 + const val DEVICE_RESPONSE_CODE = 20241006 + const val BOARD_CONFIG_RESPONSE_CODE = 20241007 + const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241008 + const val SERVER_CONFIG_RESPONSE_CODE = 20241009 + const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241010 + const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241011 /*** * SP Key * */ const val DEVICE_CONTROL_SERVER_CONFIG_KEY = "Key_1" - const val LOCALE_MODE_KEY = "Key_4" const val OPEN_ALARM_KEY = "Key_5" const val OPEN_VOICE_KEY = "Key_6" const val METHANE_DEFAULT_VALUE_KEY = "Key_7" - const val CURRENT_VOICE_VALUE_KEY = "Key_8" const val SAFE_TREE_CAMERA_IP_KEY = "Key_9" const val SAFE_TREE_SOCKET_IP_KEY = "Key_10" } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_voice_settings.xml b/app/src/main/res/layout/fragment_voice_settings.xml index 8a58469..7dbb432 100644 --- a/app/src/main/res/layout/fragment_voice_settings.xml +++ b/app/src/main/res/layout/fragment_voice_settings.xml @@ -80,7 +80,6 @@ android:textSize="@dimen/sp_16" />