diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } 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 b7af4be..6f09204 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 @@ -6,12 +6,10 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.lifecycle.lifecycleScope -import com.casic.app.safetreecontroller.R import com.casic.app.safetreecontroller.databinding.FragmentVoiceSettingsBinding import com.casic.app.safetreecontroller.service.SocketConnectionService import com.casic.app.safetreecontroller.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -37,6 +35,7 @@ private var isGetVoiceValue = false private var isGetVoiceMode = false private var isGetAlarmMode = false + private var isGetDeviceStateVoice = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,21 +62,28 @@ lifecycleScope.launch(Dispatchers.IO) { while (!isGetVoiceValue) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) - delay(1200) + delay(1000) } - delay(1000) + delay(500) while (!isGetVoiceMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) - delay(1300) + delay(1000) } - delay(1000) + delay(500) while (!isGetAlarmMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_ALARM_MODE_CODE) - delay(1400) + delay(1000) + } + + delay(500) + + while (!isGetDeviceStateVoice) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE) + delay(1000) } } } @@ -108,16 +114,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } - binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.openVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) - } else if (checkedId == R.id.closeVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) - } - } + binding.openVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) + } + + binding.closeVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) } } @@ -145,17 +147,22 @@ binding.closeAlarmRadioButton.isChecked = true } } + + LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE -> { + isGetDeviceStateVoice = true + if ((msg.obj as Int) == 1) { + binding.openVoiceRadioButton.isChecked = true + } else { + binding.closeVoiceRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val openVoice = SaveKeyValues.getValue(LocaleConstant.OPEN_VOICE_KEY, true) as Boolean - if (openVoice) { - binding.openVoiceRadioButton.isChecked = true - } else { - binding.closeVoiceRadioButton.isChecked = true - } + //单独查询一次音量,防止用户从后台直接进去app界面而出现音量不准的问题 +// SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } 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 b7af4be..6f09204 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 @@ -6,12 +6,10 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.lifecycle.lifecycleScope -import com.casic.app.safetreecontroller.R import com.casic.app.safetreecontroller.databinding.FragmentVoiceSettingsBinding import com.casic.app.safetreecontroller.service.SocketConnectionService import com.casic.app.safetreecontroller.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -37,6 +35,7 @@ private var isGetVoiceValue = false private var isGetVoiceMode = false private var isGetAlarmMode = false + private var isGetDeviceStateVoice = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,21 +62,28 @@ lifecycleScope.launch(Dispatchers.IO) { while (!isGetVoiceValue) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) - delay(1200) + delay(1000) } - delay(1000) + delay(500) while (!isGetVoiceMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) - delay(1300) + delay(1000) } - delay(1000) + delay(500) while (!isGetAlarmMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_ALARM_MODE_CODE) - delay(1400) + delay(1000) + } + + delay(500) + + while (!isGetDeviceStateVoice) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE) + delay(1000) } } } @@ -108,16 +114,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } - binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.openVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) - } else if (checkedId == R.id.closeVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) - } - } + binding.openVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) + } + + binding.closeVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) } } @@ -145,17 +147,22 @@ binding.closeAlarmRadioButton.isChecked = true } } + + LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE -> { + isGetDeviceStateVoice = true + if ((msg.obj as Int) == 1) { + binding.openVoiceRadioButton.isChecked = true + } else { + binding.closeVoiceRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val openVoice = SaveKeyValues.getValue(LocaleConstant.OPEN_VOICE_KEY, true) as Boolean - if (openVoice) { - binding.openVoiceRadioButton.isChecked = true - } else { - binding.closeVoiceRadioButton.isChecked = true - } + //单独查询一次音量,防止用户从后台直接进去app界面而出现音量不准的问题 +// SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) } } \ No newline at end of file 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 06b6a68..c97317f 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 @@ -89,6 +89,10 @@ tcpClient.sendMessage(CommandCreator.closeMethaneAlarm()) } + LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryDeviceStateVoice()) + } + LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.openVoiceTips()) } @@ -163,53 +167,6 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } - /** - * 激光状态返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -111, 1, 0, -108] - * - * 激光开返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 1, 0, -109] - * - * 激光关返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 0, 0, -110] - * - * 甲烷浓度返回:[7, 32, 0, 1, 0, 1, -86, 1, 0, 0, 0, 13, 14] - * - * 激光温度返回:[7, 32, 0, 1, 0, 1, -52, 1, 0, -106, 1, 96, -8] - * - * 音量查询返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -104, 5, 0, -97] - * - * 音量增加返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 1, 0, -102] - * - * 音量减小返回:[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] - * - * 设备状态开语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 1, 0, -103] - * - * 设备状态关语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 0, 0, -104] - * - * 安全树主控板IP地址、子网掩码、网关IP查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 49, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 53, 49, 44, 50, 53, 53, 46, 50, 53, 53, 46, 50, 53, 53, 46, 48, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 49, 48, 13, 10] - * - * 安全树主控板是否连接远程服务器设置与查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 52, 44, 48, 13, 10] - * - * 安全树主控板要连接的远程服务器IP、端口号指令返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 53, 44, 51, 49, 50, 56, 52, 54, 52, 106, 115, 108, 101, 55, 46, 118, 105, 99, 112, 46, 102, 117, 110, 44, 51, 55, 57, 53, 53, 13, 10] - * - * 设置WiFi返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 50, 44, 111, 107, 13, 10] - * - * 设置服务器返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 53, 44, 111, 107, 13, 10] - * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return @@ -330,11 +287,12 @@ "97" -> { //设备状态语音提示开关 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) - } else { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, false) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "98" -> { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } 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 b7af4be..6f09204 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 @@ -6,12 +6,10 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.lifecycle.lifecycleScope -import com.casic.app.safetreecontroller.R import com.casic.app.safetreecontroller.databinding.FragmentVoiceSettingsBinding import com.casic.app.safetreecontroller.service.SocketConnectionService import com.casic.app.safetreecontroller.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -37,6 +35,7 @@ private var isGetVoiceValue = false private var isGetVoiceMode = false private var isGetAlarmMode = false + private var isGetDeviceStateVoice = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,21 +62,28 @@ lifecycleScope.launch(Dispatchers.IO) { while (!isGetVoiceValue) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) - delay(1200) + delay(1000) } - delay(1000) + delay(500) while (!isGetVoiceMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) - delay(1300) + delay(1000) } - delay(1000) + delay(500) while (!isGetAlarmMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_ALARM_MODE_CODE) - delay(1400) + delay(1000) + } + + delay(500) + + while (!isGetDeviceStateVoice) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE) + delay(1000) } } } @@ -108,16 +114,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } - binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.openVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) - } else if (checkedId == R.id.closeVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) - } - } + binding.openVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) + } + + binding.closeVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) } } @@ -145,17 +147,22 @@ binding.closeAlarmRadioButton.isChecked = true } } + + LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE -> { + isGetDeviceStateVoice = true + if ((msg.obj as Int) == 1) { + binding.openVoiceRadioButton.isChecked = true + } else { + binding.closeVoiceRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val openVoice = SaveKeyValues.getValue(LocaleConstant.OPEN_VOICE_KEY, true) as Boolean - if (openVoice) { - binding.openVoiceRadioButton.isChecked = true - } else { - binding.closeVoiceRadioButton.isChecked = true - } + //单独查询一次音量,防止用户从后台直接进去app界面而出现音量不准的问题 +// SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) } } \ No newline at end of file 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 06b6a68..c97317f 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 @@ -89,6 +89,10 @@ tcpClient.sendMessage(CommandCreator.closeMethaneAlarm()) } + LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryDeviceStateVoice()) + } + LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.openVoiceTips()) } @@ -163,53 +167,6 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } - /** - * 激光状态返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -111, 1, 0, -108] - * - * 激光开返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 1, 0, -109] - * - * 激光关返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 0, 0, -110] - * - * 甲烷浓度返回:[7, 32, 0, 1, 0, 1, -86, 1, 0, 0, 0, 13, 14] - * - * 激光温度返回:[7, 32, 0, 1, 0, 1, -52, 1, 0, -106, 1, 96, -8] - * - * 音量查询返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -104, 5, 0, -97] - * - * 音量增加返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 1, 0, -102] - * - * 音量减小返回:[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] - * - * 设备状态开语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 1, 0, -103] - * - * 设备状态关语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 0, 0, -104] - * - * 安全树主控板IP地址、子网掩码、网关IP查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 49, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 53, 49, 44, 50, 53, 53, 46, 50, 53, 53, 46, 50, 53, 53, 46, 48, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 49, 48, 13, 10] - * - * 安全树主控板是否连接远程服务器设置与查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 52, 44, 48, 13, 10] - * - * 安全树主控板要连接的远程服务器IP、端口号指令返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 53, 44, 51, 49, 50, 56, 52, 54, 52, 106, 115, 108, 101, 55, 46, 118, 105, 99, 112, 46, 102, 117, 110, 44, 51, 55, 57, 53, 53, 13, 10] - * - * 设置WiFi返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 50, 44, 111, 107, 13, 10] - * - * 设置服务器返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 53, 44, 111, 107, 13, 10] - * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return @@ -330,11 +287,12 @@ "97" -> { //设备状态语音提示开关 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) - } else { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, false) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "98" -> { 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 c786581..e98ccb8 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 @@ -172,6 +172,13 @@ } /** + * 查询设备语音提示指令 + * */ + fun queryDeviceStateVoice(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x97.toByte(), 0x00, 0x00, 0x99.toByte()) + } + + /** * 打开设备语音提示指令 */ fun openVoiceTips(): ByteArray { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } 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 b7af4be..6f09204 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 @@ -6,12 +6,10 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.lifecycle.lifecycleScope -import com.casic.app.safetreecontroller.R import com.casic.app.safetreecontroller.databinding.FragmentVoiceSettingsBinding import com.casic.app.safetreecontroller.service.SocketConnectionService import com.casic.app.safetreecontroller.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -37,6 +35,7 @@ private var isGetVoiceValue = false private var isGetVoiceMode = false private var isGetAlarmMode = false + private var isGetDeviceStateVoice = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,21 +62,28 @@ lifecycleScope.launch(Dispatchers.IO) { while (!isGetVoiceValue) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) - delay(1200) + delay(1000) } - delay(1000) + delay(500) while (!isGetVoiceMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) - delay(1300) + delay(1000) } - delay(1000) + delay(500) while (!isGetAlarmMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_ALARM_MODE_CODE) - delay(1400) + delay(1000) + } + + delay(500) + + while (!isGetDeviceStateVoice) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE) + delay(1000) } } } @@ -108,16 +114,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } - binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.openVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) - } else if (checkedId == R.id.closeVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) - } - } + binding.openVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) + } + + binding.closeVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) } } @@ -145,17 +147,22 @@ binding.closeAlarmRadioButton.isChecked = true } } + + LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE -> { + isGetDeviceStateVoice = true + if ((msg.obj as Int) == 1) { + binding.openVoiceRadioButton.isChecked = true + } else { + binding.closeVoiceRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val openVoice = SaveKeyValues.getValue(LocaleConstant.OPEN_VOICE_KEY, true) as Boolean - if (openVoice) { - binding.openVoiceRadioButton.isChecked = true - } else { - binding.closeVoiceRadioButton.isChecked = true - } + //单独查询一次音量,防止用户从后台直接进去app界面而出现音量不准的问题 +// SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) } } \ No newline at end of file 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 06b6a68..c97317f 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 @@ -89,6 +89,10 @@ tcpClient.sendMessage(CommandCreator.closeMethaneAlarm()) } + LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryDeviceStateVoice()) + } + LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.openVoiceTips()) } @@ -163,53 +167,6 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } - /** - * 激光状态返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -111, 1, 0, -108] - * - * 激光开返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 1, 0, -109] - * - * 激光关返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 0, 0, -110] - * - * 甲烷浓度返回:[7, 32, 0, 1, 0, 1, -86, 1, 0, 0, 0, 13, 14] - * - * 激光温度返回:[7, 32, 0, 1, 0, 1, -52, 1, 0, -106, 1, 96, -8] - * - * 音量查询返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -104, 5, 0, -97] - * - * 音量增加返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 1, 0, -102] - * - * 音量减小返回:[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] - * - * 设备状态开语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 1, 0, -103] - * - * 设备状态关语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 0, 0, -104] - * - * 安全树主控板IP地址、子网掩码、网关IP查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 49, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 53, 49, 44, 50, 53, 53, 46, 50, 53, 53, 46, 50, 53, 53, 46, 48, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 49, 48, 13, 10] - * - * 安全树主控板是否连接远程服务器设置与查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 52, 44, 48, 13, 10] - * - * 安全树主控板要连接的远程服务器IP、端口号指令返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 53, 44, 51, 49, 50, 56, 52, 54, 52, 106, 115, 108, 101, 55, 46, 118, 105, 99, 112, 46, 102, 117, 110, 44, 51, 55, 57, 53, 53, 13, 10] - * - * 设置WiFi返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 50, 44, 111, 107, 13, 10] - * - * 设置服务器返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 53, 44, 111, 107, 13, 10] - * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return @@ -330,11 +287,12 @@ "97" -> { //设备状态语音提示开关 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) - } else { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, false) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "98" -> { 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 c786581..e98ccb8 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 @@ -172,6 +172,13 @@ } /** + * 查询设备语音提示指令 + * */ + fun queryDeviceStateVoice(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x97.toByte(), 0x00, 0x00, 0x99.toByte()) + } + + /** * 打开设备语音提示指令 */ fun openVoiceTips(): 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 d6d1a34..fd98d1d 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 @@ -28,13 +28,14 @@ const val QUERY_ALARM_MODE_CODE = 20240012 const val OPEN_METHANE_ALARM_CODE = 20240013 const val CLOSE_METHANE_ALARM_CODE = 20240014 - const val OPEN_DEVICE_STATE_TIPS_CODE = 20240015 - const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240016 - const val QUERY_BOARD_CONFIG_CODE = 20240017 - const val QUERY_IS_USE_AI_CODE = 20240018 - const val QUERY_SERVER_CONFIG_CODE = 20240019 - const val SET_BOARD_WIFI_CONFIG_CODE = 20240020 - const val SET_BOARD_SERVER_CONFIG_CODE = 20240021 + const val QUERY_DEVICE_STATE_VOICE_CODE = 20240015 + const val OPEN_DEVICE_STATE_TIPS_CODE = 20240016 + const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240017 + const val QUERY_BOARD_CONFIG_CODE = 20240018 + const val QUERY_IS_USE_AI_CODE = 20240019 + const val QUERY_SERVER_CONFIG_CODE = 20240020 + const val SET_BOARD_WIFI_CONFIG_CODE = 20240021 + const val SET_BOARD_SERVER_CONFIG_CODE = 20240022 /** * Handler Response Code @@ -45,19 +46,19 @@ const val QUERY_VOICE_VALUE_RESPONSE_CODE = 20241004 const val QUERY_VOICE_MODE_RESPONSE_CODE = 20241005 const val QUERY_ALARM_MODE_RESPONSE_CODE = 20241006 - const val DEVICE_RESPONSE_CODE = 20241007 - const val BOARD_CONFIG_RESPONSE_CODE = 20241008 - const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241009 - const val SERVER_CONFIG_RESPONSE_CODE = 20241010 - const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241011 - const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241012 + const val QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE = 20241007 + const val DEVICE_RESPONSE_CODE = 20241008 + const val BOARD_CONFIG_RESPONSE_CODE = 20241009 + const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241010 + const val SERVER_CONFIG_RESPONSE_CODE = 20241011 + const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241012 + const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241013 /*** * SP Key * */ const val DEVICE_CONTROL_SERVER_CONFIG_KEY = "Key_1" - const val OPEN_VOICE_KEY = "Key_6" - const val METHANE_DEFAULT_VALUE_KEY = "Key_7" - const val SAFE_TREE_CAMERA_IP_KEY = "Key_9" - const val SAFE_TREE_SOCKET_IP_KEY = "Key_10" + const val METHANE_DEFAULT_VALUE_KEY = "Key_2" + const val SAFE_TREE_CAMERA_IP_KEY = "Key_3" + const val SAFE_TREE_SOCKET_IP_KEY = "Key_4" } \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt index a7e1bee..942a650 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/MethaneMonitorFragment.kt @@ -91,11 +91,11 @@ delay(1000) } - delay(1000) + delay(500) while (!isGetTemperature) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_CPU_TEMPERATURE_CODE) - delay(1100) + delay(1000) } } } 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 b7af4be..6f09204 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 @@ -6,12 +6,10 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.lifecycle.lifecycleScope -import com.casic.app.safetreecontroller.R import com.casic.app.safetreecontroller.databinding.FragmentVoiceSettingsBinding import com.casic.app.safetreecontroller.service.SocketConnectionService import com.casic.app.safetreecontroller.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -37,6 +35,7 @@ private var isGetVoiceValue = false private var isGetVoiceMode = false private var isGetAlarmMode = false + private var isGetDeviceStateVoice = false override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) @@ -63,21 +62,28 @@ lifecycleScope.launch(Dispatchers.IO) { while (!isGetVoiceValue) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) - delay(1200) + delay(1000) } - delay(1000) + delay(500) while (!isGetVoiceMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_MODE_CODE) - delay(1300) + delay(1000) } - delay(1000) + delay(500) while (!isGetAlarmMode) { SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_ALARM_MODE_CODE) - delay(1400) + delay(1000) + } + + delay(500) + + while (!isGetDeviceStateVoice) { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE) + delay(1000) } } } @@ -108,16 +114,12 @@ SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } - binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> - if (isVisibleToUser) { - val weakReferenceHandler = SocketConnectionService.weakReferenceHandler - ?: return@setOnCheckedChangeListener - if (checkedId == R.id.openVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) - } else if (checkedId == R.id.closeVoiceRadioButton) { - weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) - } - } + binding.openVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE) + } + + binding.closeVoiceRadioButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE) } } @@ -145,17 +147,22 @@ binding.closeAlarmRadioButton.isChecked = true } } + + LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE -> { + isGetDeviceStateVoice = true + if ((msg.obj as Int) == 1) { + binding.openVoiceRadioButton.isChecked = true + } else { + binding.closeVoiceRadioButton.isChecked = true + } + } } return true } override fun onResume() { super.onResume() - val openVoice = SaveKeyValues.getValue(LocaleConstant.OPEN_VOICE_KEY, true) as Boolean - if (openVoice) { - binding.openVoiceRadioButton.isChecked = true - } else { - binding.closeVoiceRadioButton.isChecked = true - } + //单独查询一次音量,防止用户从后台直接进去app界面而出现音量不准的问题 +// SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_VOICE_VALUE_CODE) } } \ No newline at end of file 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 06b6a68..c97317f 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 @@ -89,6 +89,10 @@ tcpClient.sendMessage(CommandCreator.closeMethaneAlarm()) } + LocaleConstant.QUERY_DEVICE_STATE_VOICE_CODE -> { + tcpClient.sendMessage(CommandCreator.queryDeviceStateVoice()) + } + LocaleConstant.OPEN_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.openVoiceTips()) } @@ -163,53 +167,6 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } - /** - * 激光状态返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -111, 1, 0, -108] - * - * 激光开返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 1, 0, -109] - * - * 激光关返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -111, 0, 0, -110] - * - * 甲烷浓度返回:[7, 32, 0, 1, 0, 1, -86, 1, 0, 0, 0, 13, 14] - * - * 激光温度返回:[7, 32, 0, 1, 0, 1, -52, 1, 0, -106, 1, 96, -8] - * - * 音量查询返回:[7, 32, 0, 1, 0, 1, -69, 1, 1, -104, 5, 0, -97] - * - * 音量增加返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -104, 1, 0, -102] - * - * 音量减小返回:[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] - * - * 设备状态开语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 1, 0, -103] - * - * 设备状态关语音提示返回:[7, 32, 0, 1, 0, 1, -69, 1, 0, -105, 0, 0, -104] - * - * 安全树主控板IP地址、子网掩码、网关IP查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 49, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 53, 49, 44, 50, 53, 53, 46, 50, 53, 53, 46, 50, 53, 53, 46, 48, 44, 49, 57, 50, 46, 49, 54, 56, 46, 49, 48, 46, 49, 48, 13, 10] - * - * 安全树主控板是否连接远程服务器设置与查询返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 52, 44, 48, 13, 10] - * - * 安全树主控板要连接的远程服务器IP、端口号指令返回: - * - * [71, 101, 116, 68, 97, 116, 97, 58, 53, 44, 51, 49, 50, 56, 52, 54, 52, 106, 115, 108, 101, 55, 46, 118, 105, 99, 112, 46, 102, 117, 110, 44, 51, 55, 57, 53, 53, 13, 10] - * - * 设置WiFi返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 50, 44, 111, 107, 13, 10] - * - * 设置服务器返回: - * - * [83, 101, 116, 68, 97, 116, 97, 58, 53, 44, 111, 107, 13, 10] - * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return @@ -330,11 +287,12 @@ "97" -> { //设备状态语音提示开关 - if (bytes[10].toInt() == 1) { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) - } else { - SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, false) - } + val weakReferenceHandler = VoiceSettingsFragment.weakReferenceHandler + ?: return + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE + message.obj = bytes[10].toInt() + weakReferenceHandler.sendMessage(message) } "98" -> { 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 c786581..e98ccb8 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 @@ -172,6 +172,13 @@ } /** + * 查询设备语音提示指令 + * */ + fun queryDeviceStateVoice(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x01, 0x97.toByte(), 0x00, 0x00, 0x99.toByte()) + } + + /** * 打开设备语音提示指令 */ fun openVoiceTips(): 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 d6d1a34..fd98d1d 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 @@ -28,13 +28,14 @@ const val QUERY_ALARM_MODE_CODE = 20240012 const val OPEN_METHANE_ALARM_CODE = 20240013 const val CLOSE_METHANE_ALARM_CODE = 20240014 - const val OPEN_DEVICE_STATE_TIPS_CODE = 20240015 - const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240016 - const val QUERY_BOARD_CONFIG_CODE = 20240017 - const val QUERY_IS_USE_AI_CODE = 20240018 - const val QUERY_SERVER_CONFIG_CODE = 20240019 - const val SET_BOARD_WIFI_CONFIG_CODE = 20240020 - const val SET_BOARD_SERVER_CONFIG_CODE = 20240021 + const val QUERY_DEVICE_STATE_VOICE_CODE = 20240015 + const val OPEN_DEVICE_STATE_TIPS_CODE = 20240016 + const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240017 + const val QUERY_BOARD_CONFIG_CODE = 20240018 + const val QUERY_IS_USE_AI_CODE = 20240019 + const val QUERY_SERVER_CONFIG_CODE = 20240020 + const val SET_BOARD_WIFI_CONFIG_CODE = 20240021 + const val SET_BOARD_SERVER_CONFIG_CODE = 20240022 /** * Handler Response Code @@ -45,19 +46,19 @@ const val QUERY_VOICE_VALUE_RESPONSE_CODE = 20241004 const val QUERY_VOICE_MODE_RESPONSE_CODE = 20241005 const val QUERY_ALARM_MODE_RESPONSE_CODE = 20241006 - const val DEVICE_RESPONSE_CODE = 20241007 - const val BOARD_CONFIG_RESPONSE_CODE = 20241008 - const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241009 - const val SERVER_CONFIG_RESPONSE_CODE = 20241010 - const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241011 - const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241012 + const val QUERY_DEVICE_STATE_VOICE_RESPONSE_CODE = 20241007 + const val DEVICE_RESPONSE_CODE = 20241008 + const val BOARD_CONFIG_RESPONSE_CODE = 20241009 + const val QUERY_IS_USE_AI_RESPONSE_CODE = 20241010 + const val SERVER_CONFIG_RESPONSE_CODE = 20241011 + const val SET_BOARD_WIFI_CONFIG_RESPONSE_CODE = 20241012 + const val SET_BOARD_SERVER_CONFIG_RESPONSE_CODE = 20241013 /*** * SP Key * */ const val DEVICE_CONTROL_SERVER_CONFIG_KEY = "Key_1" - const val OPEN_VOICE_KEY = "Key_6" - const val METHANE_DEFAULT_VALUE_KEY = "Key_7" - const val SAFE_TREE_CAMERA_IP_KEY = "Key_9" - const val SAFE_TREE_SOCKET_IP_KEY = "Key_10" + const val METHANE_DEFAULT_VALUE_KEY = "Key_2" + const val SAFE_TREE_CAMERA_IP_KEY = "Key_3" + const val SAFE_TREE_SOCKET_IP_KEY = "Key_4" } \ 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 964bd1a..93431d7 100644 --- a/app/src/main/res/layout/fragment_voice_settings.xml +++ b/app/src/main/res/layout/fragment_voice_settings.xml @@ -154,7 +154,6 @@ android:textSize="@dimen/sp_16" />