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 78a350b..796a6a2 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 @@ -80,10 +80,12 @@ override fun initEvent() { binding.radioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) } else if (checkedId == R.id.closeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) } } } 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 78a350b..796a6a2 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 @@ -80,10 +80,12 @@ override fun initEvent() { binding.radioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) } else if (checkedId == R.id.closeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) } } } 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 0640400..69127f5 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 @@ -53,70 +53,76 @@ override fun initEvent() { binding.volumeSlider.addOnChangeListener { _, value, _ -> - //判断是增大还是减音量 - if (value > lastSliderValue) { - //还需要判断是一步一步的变大还是突然变大 - if (value - lastSliderValue == 1.0f) { - //一步一步的变大 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@addOnChangeListener + //判断是增大还是减音量 + if (value > lastSliderValue) { + //还需要判断是一步一步的变大还是突然变大 + if (value - lastSliderValue == 1.0f) { + //一步一步的变大 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + } else { + //突然变大。计算需要一步步变大几次 + val changeTimes = (value - lastSliderValue).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + delay(100) + } + } + } } else { - //突然变大。计算需要一步步变大几次 - val changeTimes = (value - lastSliderValue).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.INCREASE_VOICE_CODE - ) - delay(100) + //还需要判断是一步一步的变小还是突然变小 + if (lastSliderValue - value == 1.0f) { + //一步一步的变小 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + } else { + //突然变小。计算需要一步步变小几次 + val changeTimes = (lastSliderValue - value).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + delay(100) + } } } } - } else { - //还需要判断是一步一步的变小还是突然变小 - if (lastSliderValue - value == 1.0f) { - //一步一步的变小 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) - } else { - //突然变小。计算需要一步步变小几次 - val changeTimes = (lastSliderValue - value).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.REDUCE_VOICE_CODE - ) - delay(100) - } - } - } + binding.volumeValueView.text = valueToChineseMap[value] + //更新值 + lastSliderValue = value + SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } - binding.volumeValueView.text = valueToChineseMap[value] - //更新值 - lastSliderValue = value - SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.localeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) } else if (checkedId == R.id.remoteRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } } } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_ALARM_CODE) } else if (checkedId == R.id.closeAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } } } binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openVoiceRadioButton) { SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) } else if (checkedId == R.id.closeVoiceRadioButton) { 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 78a350b..796a6a2 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 @@ -80,10 +80,12 @@ override fun initEvent() { binding.radioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) } else if (checkedId == R.id.closeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) } } } 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 0640400..69127f5 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 @@ -53,70 +53,76 @@ override fun initEvent() { binding.volumeSlider.addOnChangeListener { _, value, _ -> - //判断是增大还是减音量 - if (value > lastSliderValue) { - //还需要判断是一步一步的变大还是突然变大 - if (value - lastSliderValue == 1.0f) { - //一步一步的变大 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@addOnChangeListener + //判断是增大还是减音量 + if (value > lastSliderValue) { + //还需要判断是一步一步的变大还是突然变大 + if (value - lastSliderValue == 1.0f) { + //一步一步的变大 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + } else { + //突然变大。计算需要一步步变大几次 + val changeTimes = (value - lastSliderValue).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + delay(100) + } + } + } } else { - //突然变大。计算需要一步步变大几次 - val changeTimes = (value - lastSliderValue).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.INCREASE_VOICE_CODE - ) - delay(100) + //还需要判断是一步一步的变小还是突然变小 + if (lastSliderValue - value == 1.0f) { + //一步一步的变小 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + } else { + //突然变小。计算需要一步步变小几次 + val changeTimes = (lastSliderValue - value).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + delay(100) + } } } } - } else { - //还需要判断是一步一步的变小还是突然变小 - if (lastSliderValue - value == 1.0f) { - //一步一步的变小 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) - } else { - //突然变小。计算需要一步步变小几次 - val changeTimes = (lastSliderValue - value).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.REDUCE_VOICE_CODE - ) - delay(100) - } - } - } + binding.volumeValueView.text = valueToChineseMap[value] + //更新值 + lastSliderValue = value + SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } - binding.volumeValueView.text = valueToChineseMap[value] - //更新值 - lastSliderValue = value - SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.localeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) } else if (checkedId == R.id.remoteRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } } } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_ALARM_CODE) } else if (checkedId == R.id.closeAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } } } binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openVoiceRadioButton) { SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) } else if (checkedId == R.id.closeVoiceRadioButton) { 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 dc74dbb..2267f8d 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 @@ -61,6 +61,14 @@ LocaleConstant.OPEN_REMOTE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.createOpenRemoteModeCommand()) } + + LocaleConstant.OPEN_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createOpenAlarmCommand()) + } + + LocaleConstant.CLOSE_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createCloseAlarmCommand()) + } } return true } @@ -161,6 +169,15 @@ } } + "92" -> { + //燃气报警开关 + if (bytes[10].toInt() == 1) { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + } else { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + } + } + "91" -> { //激光状态 if (bytes[10].toInt() == 1) { 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 78a350b..796a6a2 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 @@ -80,10 +80,12 @@ override fun initEvent() { binding.radioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) } else if (checkedId == R.id.closeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) } } } 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 0640400..69127f5 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 @@ -53,70 +53,76 @@ override fun initEvent() { binding.volumeSlider.addOnChangeListener { _, value, _ -> - //判断是增大还是减音量 - if (value > lastSliderValue) { - //还需要判断是一步一步的变大还是突然变大 - if (value - lastSliderValue == 1.0f) { - //一步一步的变大 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@addOnChangeListener + //判断是增大还是减音量 + if (value > lastSliderValue) { + //还需要判断是一步一步的变大还是突然变大 + if (value - lastSliderValue == 1.0f) { + //一步一步的变大 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + } else { + //突然变大。计算需要一步步变大几次 + val changeTimes = (value - lastSliderValue).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + delay(100) + } + } + } } else { - //突然变大。计算需要一步步变大几次 - val changeTimes = (value - lastSliderValue).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.INCREASE_VOICE_CODE - ) - delay(100) + //还需要判断是一步一步的变小还是突然变小 + if (lastSliderValue - value == 1.0f) { + //一步一步的变小 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + } else { + //突然变小。计算需要一步步变小几次 + val changeTimes = (lastSliderValue - value).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + delay(100) + } } } } - } else { - //还需要判断是一步一步的变小还是突然变小 - if (lastSliderValue - value == 1.0f) { - //一步一步的变小 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) - } else { - //突然变小。计算需要一步步变小几次 - val changeTimes = (lastSliderValue - value).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.REDUCE_VOICE_CODE - ) - delay(100) - } - } - } + binding.volumeValueView.text = valueToChineseMap[value] + //更新值 + lastSliderValue = value + SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } - binding.volumeValueView.text = valueToChineseMap[value] - //更新值 - lastSliderValue = value - SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.localeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) } else if (checkedId == R.id.remoteRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } } } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_ALARM_CODE) } else if (checkedId == R.id.closeAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } } } binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openVoiceRadioButton) { SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) } else if (checkedId == R.id.closeVoiceRadioButton) { 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 dc74dbb..2267f8d 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 @@ -61,6 +61,14 @@ LocaleConstant.OPEN_REMOTE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.createOpenRemoteModeCommand()) } + + LocaleConstant.OPEN_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createOpenAlarmCommand()) + } + + LocaleConstant.CLOSE_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createCloseAlarmCommand()) + } } return true } @@ -161,6 +169,15 @@ } } + "92" -> { + //燃气报警开关 + if (bytes[10].toInt() == 1) { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + } else { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + } + } + "91" -> { //激光状态 if (bytes[10].toInt() == 1) { 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 6256369..a71ba93 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 @@ -2,14 +2,14 @@ object CommandCreator { /** - * 打开激光 + * 打开激光指令 */ fun createOpenLightCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x91.toByte(), 0x01, 0x00, 0x93.toByte()) } /** - * 关闭激光 + * 关闭激光指令 */ fun createCloseLightCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x91.toByte(), 0x00, 0x00, 0x92.toByte()) @@ -23,7 +23,7 @@ } /** - * 设置甲烷阈值 + * 设置甲烷阈值指令 */ fun createThresholdCommand(threshold: Int): ByteArray { //数据位和校验位先都设置0x00占位 @@ -93,4 +93,18 @@ fun createOpenRemoteModeCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x90.toByte(), 0x01, 0x00, 0x92.toByte()) } + + /** + * 打开燃气报警指令 + */ + fun createOpenAlarmCommand(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x92.toByte(), 0x01, 0x00, 0x94.toByte()) + } + + /** + * 关闭燃气报警指令 + */ + fun createCloseAlarmCommand(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x92.toByte(), 0x00, 0x00, 0x93.toByte()) + } } \ 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 78a350b..796a6a2 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 @@ -80,10 +80,12 @@ override fun initEvent() { binding.radioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_CODE) } else if (checkedId == R.id.closeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_CODE) } } } 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 0640400..69127f5 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 @@ -53,70 +53,76 @@ override fun initEvent() { binding.volumeSlider.addOnChangeListener { _, value, _ -> - //判断是增大还是减音量 - if (value > lastSliderValue) { - //还需要判断是一步一步的变大还是突然变大 - if (value - lastSliderValue == 1.0f) { - //一步一步的变大 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@addOnChangeListener + //判断是增大还是减音量 + if (value > lastSliderValue) { + //还需要判断是一步一步的变大还是突然变大 + if (value - lastSliderValue == 1.0f) { + //一步一步的变大 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + } else { + //突然变大。计算需要一步步变大几次 + val changeTimes = (value - lastSliderValue).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.INCREASE_VOICE_CODE) + delay(100) + } + } + } } else { - //突然变大。计算需要一步步变大几次 - val changeTimes = (value - lastSliderValue).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.INCREASE_VOICE_CODE - ) - delay(100) + //还需要判断是一步一步的变小还是突然变小 + if (lastSliderValue - value == 1.0f) { + //一步一步的变小 + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + } else { + //突然变小。计算需要一步步变小几次 + val changeTimes = (lastSliderValue - value).toInt() + lifecycleScope.launch(Dispatchers.IO) { + for (i in 0 until changeTimes) { + weakReferenceHandler.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) + delay(100) + } } } } - } else { - //还需要判断是一步一步的变小还是突然变小 - if (lastSliderValue - value == 1.0f) { - //一步一步的变小 - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.REDUCE_VOICE_CODE) - } else { - //突然变小。计算需要一步步变小几次 - val changeTimes = (lastSliderValue - value).toInt() - lifecycleScope.launch(Dispatchers.IO) { - for (i in 0 until changeTimes) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage( - LocaleConstant.REDUCE_VOICE_CODE - ) - delay(100) - } - } - } + binding.volumeValueView.text = valueToChineseMap[value] + //更新值 + lastSliderValue = value + SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } - binding.volumeValueView.text = valueToChineseMap[value] - //更新值 - lastSliderValue = value - SaveKeyValues.putValue(LocaleConstant.CURRENT_VOICE_VALUE_KEY, value) } binding.modeRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.localeRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_LOCALE_MODE_CODE) } else if (checkedId == R.id.remoteRadioButton) { - SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_REMOTE_MODE_CODE) } } } binding.alarmRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.OPEN_METHANE_ALARM_CODE) } else if (checkedId == R.id.closeAlarmRadioButton) { - SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + weakReferenceHandler.sendEmptyMessage(LocaleConstant.CLOSE_METHANE_ALARM_CODE) } } } binding.deviceRadioGroup.setOnCheckedChangeListener { _, checkedId -> if (isVisibleToUser) { + val weakReferenceHandler = SocketConnectionService.weakReferenceHandler + ?: return@setOnCheckedChangeListener if (checkedId == R.id.openVoiceRadioButton) { SaveKeyValues.putValue(LocaleConstant.OPEN_VOICE_KEY, true) } else if (checkedId == R.id.closeVoiceRadioButton) { 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 dc74dbb..2267f8d 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 @@ -61,6 +61,14 @@ LocaleConstant.OPEN_REMOTE_MODE_CODE -> { tcpClient.sendMessage(CommandCreator.createOpenRemoteModeCommand()) } + + LocaleConstant.OPEN_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createOpenAlarmCommand()) + } + + LocaleConstant.CLOSE_METHANE_ALARM_CODE -> { + tcpClient.sendMessage(CommandCreator.createCloseAlarmCommand()) + } } return true } @@ -161,6 +169,15 @@ } } + "92" -> { + //燃气报警开关 + if (bytes[10].toInt() == 1) { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, true) + } else { + SaveKeyValues.putValue(LocaleConstant.OPEN_ALARM_KEY, false) + } + } + "91" -> { //激光状态 if (bytes[10].toInt() == 1) { 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 6256369..a71ba93 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 @@ -2,14 +2,14 @@ object CommandCreator { /** - * 打开激光 + * 打开激光指令 */ fun createOpenLightCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x91.toByte(), 0x01, 0x00, 0x93.toByte()) } /** - * 关闭激光 + * 关闭激光指令 */ fun createCloseLightCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x91.toByte(), 0x00, 0x00, 0x92.toByte()) @@ -23,7 +23,7 @@ } /** - * 设置甲烷阈值 + * 设置甲烷阈值指令 */ fun createThresholdCommand(threshold: Int): ByteArray { //数据位和校验位先都设置0x00占位 @@ -93,4 +93,18 @@ fun createOpenRemoteModeCommand(): ByteArray { return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x90.toByte(), 0x01, 0x00, 0x92.toByte()) } + + /** + * 打开燃气报警指令 + */ + fun createOpenAlarmCommand(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x92.toByte(), 0x01, 0x00, 0x94.toByte()) + } + + /** + * 关闭燃气报警指令 + */ + fun createCloseAlarmCommand(): ByteArray { + return byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x92.toByte(), 0x00, 0x00, 0x93.toByte()) + } } \ No newline at end of file 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 b27290c..016d647 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 @@ -22,6 +22,8 @@ const val REDUCE_VOICE_CODE = 20240006 const val OPEN_LOCALE_MODE_CODE = 20240007 const val OPEN_REMOTE_MODE_CODE = 20240008 + const val OPEN_METHANE_ALARM_CODE = 20240009 + const val CLOSE_METHANE_ALARM_CODE = 20240010 /** * Handler Response Code