diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt index ea9ecbe..81f921b 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import com.casic.app.safetreecontroller.databinding.FragmentBaseSettingsBinding +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.extensions.getSystemService @@ -88,12 +89,25 @@ } override fun initEvent() { - + binding.queryBoardConfigButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_BOARD_CONFIG_CODE) + } } override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.DEVICE_RESPONSE_CODE) { - binding.deviceCodeView.text = msg.obj as String + when (msg.what) { + LocaleConstant.DEVICE_RESPONSE_CODE -> { + binding.deviceCodeView.text = msg.obj as String + } + + LocaleConstant.BOARD_CONFIG_RESPONSE_CODE -> { + val data = msg.obj as String + //分割数据 + val list = data.split(",") + binding.boardHostView.text = list[0] + binding.boardMaskView.text = list[1] + binding.gatewayView.text = list[2].trim() + } } return true } diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt index ea9ecbe..81f921b 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import com.casic.app.safetreecontroller.databinding.FragmentBaseSettingsBinding +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.extensions.getSystemService @@ -88,12 +89,25 @@ } override fun initEvent() { - + binding.queryBoardConfigButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_BOARD_CONFIG_CODE) + } } override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.DEVICE_RESPONSE_CODE) { - binding.deviceCodeView.text = msg.obj as String + when (msg.what) { + LocaleConstant.DEVICE_RESPONSE_CODE -> { + binding.deviceCodeView.text = msg.obj as String + } + + LocaleConstant.BOARD_CONFIG_RESPONSE_CODE -> { + val data = msg.obj as String + //分割数据 + val list = data.split(",") + binding.boardHostView.text = list[0] + binding.boardMaskView.text = list[1] + binding.gatewayView.text = list[2].trim() + } } return 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 7c11e9f..8d718f9 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 @@ -7,6 +7,7 @@ import android.os.Message import android.util.Log import com.casic.app.safetreecontroller.extensions.handleGasConcentration +import com.casic.app.safetreecontroller.extensions.toAsciiCode import com.casic.app.safetreecontroller.extensions.toHex import com.casic.app.safetreecontroller.fragments.BaseSettingsFragment import com.casic.app.safetreecontroller.fragments.MethaneMonitorFragment @@ -77,6 +78,10 @@ LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.createCloseVoiceTipsCommand()) } + + LocaleConstant.QUERY_BOARD_CONFIG_CODE -> { + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + } } return true } @@ -101,10 +106,12 @@ override fun onConnected() { ForegroundRunningService.weakReferenceHandler?.sendEmptyMessage(2024110501) - //定时查询甲烷浓度 - weakReferenceHandler?.post(methaneRunnable) //查询一次激光芯片温度 tcpClient.sendMessage(CommandCreator.createCpuTemperatureCommand()) + //查询主控板IP、子网掩码、网关IP + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + //定时查询甲烷浓度 + weakReferenceHandler?.post(methaneRunnable) } override fun onDisconnected() { @@ -117,44 +124,51 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } + /** + * 激光开返回:[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, 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] + * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return } Log.d(kTag, bytes.contentToString()) + if (bytes.size == 13) { + //取前6位解析设备编号 + val deviceCode = bytes.take(6).toByteArray().toHex() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.DEVICE_RESPONSE_CODE + message.obj = deviceCode + weakReferenceHandler.sendMessage(message) + } - /** - * 激光开返回:[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, 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] - * */ - if (bytes.size < 6) { - Log.d(kTag, "onMessageReceived: 数据异常,长度不够") - return - } - - //取前6位解析设备编号 - val deviceCode = bytes.take(6).toByteArray().toHex() - if (BaseSettingsFragment.weakReferenceHandler != null) { - val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! - val message = weakReferenceHandler.obtainMessage() - message.what = LocaleConstant.DEVICE_RESPONSE_CODE - message.obj = deviceCode - weakReferenceHandler.sendMessage(message) - } - - //取数据类型标志位,根据标志位解析不同的数据 - when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { - "AA" -> { - //甲烷浓度 - if (bytes.size == 13) { + //取数据类型标志位,根据标志位解析不同的数据 + when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { + "AA" -> { + //甲烷浓度 val dataArray = bytes.copyOfRange(7, bytes.size) val concentration = dataArray.handleGasConcentration() val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -163,10 +177,8 @@ message.obj = concentration weakReferenceHandler.sendMessage(message) } - } - "BB" -> { - if (bytes.size == 13) { + "BB" -> { when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 @@ -214,11 +226,9 @@ } } } - } - "CC" -> { - //激光温度 - if (bytes.size == 13) { + "CC" -> { + //激光温度 val dataArray = bytes.copyOfRange(10, bytes.size) val temperature = (dataArray[0] * 256 + dataArray[1]) / 10f val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -228,6 +238,24 @@ weakReferenceHandler.sendMessage(message) } } + } else { + val dataHeadArray = bytes.copyOfRange(0, 7) + if (dataHeadArray.toAsciiCode() == "GetData") { + //判断类型 + when (Char(bytes[10].toInt())) { + '1' -> { + val dataArray = bytes.copyOfRange(10, bytes.size) + val data = dataArray.toAsciiCode() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.BOARD_CONFIG_RESPONSE_CODE + message.obj = data + weakReferenceHandler.sendMessage(message) + } + } + } + } } } diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt index ea9ecbe..81f921b 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import com.casic.app.safetreecontroller.databinding.FragmentBaseSettingsBinding +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.extensions.getSystemService @@ -88,12 +89,25 @@ } override fun initEvent() { - + binding.queryBoardConfigButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_BOARD_CONFIG_CODE) + } } override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.DEVICE_RESPONSE_CODE) { - binding.deviceCodeView.text = msg.obj as String + when (msg.what) { + LocaleConstant.DEVICE_RESPONSE_CODE -> { + binding.deviceCodeView.text = msg.obj as String + } + + LocaleConstant.BOARD_CONFIG_RESPONSE_CODE -> { + val data = msg.obj as String + //分割数据 + val list = data.split(",") + binding.boardHostView.text = list[0] + binding.boardMaskView.text = list[1] + binding.gatewayView.text = list[2].trim() + } } return 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 7c11e9f..8d718f9 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 @@ -7,6 +7,7 @@ import android.os.Message import android.util.Log import com.casic.app.safetreecontroller.extensions.handleGasConcentration +import com.casic.app.safetreecontroller.extensions.toAsciiCode import com.casic.app.safetreecontroller.extensions.toHex import com.casic.app.safetreecontroller.fragments.BaseSettingsFragment import com.casic.app.safetreecontroller.fragments.MethaneMonitorFragment @@ -77,6 +78,10 @@ LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.createCloseVoiceTipsCommand()) } + + LocaleConstant.QUERY_BOARD_CONFIG_CODE -> { + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + } } return true } @@ -101,10 +106,12 @@ override fun onConnected() { ForegroundRunningService.weakReferenceHandler?.sendEmptyMessage(2024110501) - //定时查询甲烷浓度 - weakReferenceHandler?.post(methaneRunnable) //查询一次激光芯片温度 tcpClient.sendMessage(CommandCreator.createCpuTemperatureCommand()) + //查询主控板IP、子网掩码、网关IP + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + //定时查询甲烷浓度 + weakReferenceHandler?.post(methaneRunnable) } override fun onDisconnected() { @@ -117,44 +124,51 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } + /** + * 激光开返回:[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, 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] + * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return } Log.d(kTag, bytes.contentToString()) + if (bytes.size == 13) { + //取前6位解析设备编号 + val deviceCode = bytes.take(6).toByteArray().toHex() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.DEVICE_RESPONSE_CODE + message.obj = deviceCode + weakReferenceHandler.sendMessage(message) + } - /** - * 激光开返回:[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, 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] - * */ - if (bytes.size < 6) { - Log.d(kTag, "onMessageReceived: 数据异常,长度不够") - return - } - - //取前6位解析设备编号 - val deviceCode = bytes.take(6).toByteArray().toHex() - if (BaseSettingsFragment.weakReferenceHandler != null) { - val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! - val message = weakReferenceHandler.obtainMessage() - message.what = LocaleConstant.DEVICE_RESPONSE_CODE - message.obj = deviceCode - weakReferenceHandler.sendMessage(message) - } - - //取数据类型标志位,根据标志位解析不同的数据 - when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { - "AA" -> { - //甲烷浓度 - if (bytes.size == 13) { + //取数据类型标志位,根据标志位解析不同的数据 + when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { + "AA" -> { + //甲烷浓度 val dataArray = bytes.copyOfRange(7, bytes.size) val concentration = dataArray.handleGasConcentration() val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -163,10 +177,8 @@ message.obj = concentration weakReferenceHandler.sendMessage(message) } - } - "BB" -> { - if (bytes.size == 13) { + "BB" -> { when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 @@ -214,11 +226,9 @@ } } } - } - "CC" -> { - //激光温度 - if (bytes.size == 13) { + "CC" -> { + //激光温度 val dataArray = bytes.copyOfRange(10, bytes.size) val temperature = (dataArray[0] * 256 + dataArray[1]) / 10f val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -228,6 +238,24 @@ weakReferenceHandler.sendMessage(message) } } + } else { + val dataHeadArray = bytes.copyOfRange(0, 7) + if (dataHeadArray.toAsciiCode() == "GetData") { + //判断类型 + when (Char(bytes[10].toInt())) { + '1' -> { + val dataArray = bytes.copyOfRange(10, bytes.size) + val data = dataArray.toAsciiCode() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.BOARD_CONFIG_RESPONSE_CODE + message.obj = data + weakReferenceHandler.sendMessage(message) + } + } + } + } } } 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 d4179eb..a9e5b05 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 @@ -67,6 +67,13 @@ } /** + * 查询主控板主控板IP、子网掩码、网关IP指令 + * */ + fun createControlBoardConfigCommand(): ByteArray { + return "GetData:1\r\n".toByteArray() + } + + /** * 音量增大指令 * */ fun createIncreaseVoiceCommand(): ByteArray { diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt index ea9ecbe..81f921b 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import com.casic.app.safetreecontroller.databinding.FragmentBaseSettingsBinding +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.extensions.getSystemService @@ -88,12 +89,25 @@ } override fun initEvent() { - + binding.queryBoardConfigButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_BOARD_CONFIG_CODE) + } } override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.DEVICE_RESPONSE_CODE) { - binding.deviceCodeView.text = msg.obj as String + when (msg.what) { + LocaleConstant.DEVICE_RESPONSE_CODE -> { + binding.deviceCodeView.text = msg.obj as String + } + + LocaleConstant.BOARD_CONFIG_RESPONSE_CODE -> { + val data = msg.obj as String + //分割数据 + val list = data.split(",") + binding.boardHostView.text = list[0] + binding.boardMaskView.text = list[1] + binding.gatewayView.text = list[2].trim() + } } return 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 7c11e9f..8d718f9 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 @@ -7,6 +7,7 @@ import android.os.Message import android.util.Log import com.casic.app.safetreecontroller.extensions.handleGasConcentration +import com.casic.app.safetreecontroller.extensions.toAsciiCode import com.casic.app.safetreecontroller.extensions.toHex import com.casic.app.safetreecontroller.fragments.BaseSettingsFragment import com.casic.app.safetreecontroller.fragments.MethaneMonitorFragment @@ -77,6 +78,10 @@ LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.createCloseVoiceTipsCommand()) } + + LocaleConstant.QUERY_BOARD_CONFIG_CODE -> { + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + } } return true } @@ -101,10 +106,12 @@ override fun onConnected() { ForegroundRunningService.weakReferenceHandler?.sendEmptyMessage(2024110501) - //定时查询甲烷浓度 - weakReferenceHandler?.post(methaneRunnable) //查询一次激光芯片温度 tcpClient.sendMessage(CommandCreator.createCpuTemperatureCommand()) + //查询主控板IP、子网掩码、网关IP + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + //定时查询甲烷浓度 + weakReferenceHandler?.post(methaneRunnable) } override fun onDisconnected() { @@ -117,44 +124,51 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } + /** + * 激光开返回:[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, 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] + * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return } Log.d(kTag, bytes.contentToString()) + if (bytes.size == 13) { + //取前6位解析设备编号 + val deviceCode = bytes.take(6).toByteArray().toHex() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.DEVICE_RESPONSE_CODE + message.obj = deviceCode + weakReferenceHandler.sendMessage(message) + } - /** - * 激光开返回:[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, 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] - * */ - if (bytes.size < 6) { - Log.d(kTag, "onMessageReceived: 数据异常,长度不够") - return - } - - //取前6位解析设备编号 - val deviceCode = bytes.take(6).toByteArray().toHex() - if (BaseSettingsFragment.weakReferenceHandler != null) { - val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! - val message = weakReferenceHandler.obtainMessage() - message.what = LocaleConstant.DEVICE_RESPONSE_CODE - message.obj = deviceCode - weakReferenceHandler.sendMessage(message) - } - - //取数据类型标志位,根据标志位解析不同的数据 - when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { - "AA" -> { - //甲烷浓度 - if (bytes.size == 13) { + //取数据类型标志位,根据标志位解析不同的数据 + when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { + "AA" -> { + //甲烷浓度 val dataArray = bytes.copyOfRange(7, bytes.size) val concentration = dataArray.handleGasConcentration() val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -163,10 +177,8 @@ message.obj = concentration weakReferenceHandler.sendMessage(message) } - } - "BB" -> { - if (bytes.size == 13) { + "BB" -> { when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 @@ -214,11 +226,9 @@ } } } - } - "CC" -> { - //激光温度 - if (bytes.size == 13) { + "CC" -> { + //激光温度 val dataArray = bytes.copyOfRange(10, bytes.size) val temperature = (dataArray[0] * 256 + dataArray[1]) / 10f val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -228,6 +238,24 @@ weakReferenceHandler.sendMessage(message) } } + } else { + val dataHeadArray = bytes.copyOfRange(0, 7) + if (dataHeadArray.toAsciiCode() == "GetData") { + //判断类型 + when (Char(bytes[10].toInt())) { + '1' -> { + val dataArray = bytes.copyOfRange(10, bytes.size) + val data = dataArray.toAsciiCode() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.BOARD_CONFIG_RESPONSE_CODE + message.obj = data + weakReferenceHandler.sendMessage(message) + } + } + } + } } } 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 d4179eb..a9e5b05 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 @@ -67,6 +67,13 @@ } /** + * 查询主控板主控板IP、子网掩码、网关IP指令 + * */ + fun createControlBoardConfigCommand(): ByteArray { + return "GetData:1\r\n".toByteArray() + } + + /** * 音量增大指令 * */ fun createIncreaseVoiceCommand(): 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 bf3c4b8..f8f1324 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 @@ -26,6 +26,7 @@ const val CLOSE_METHANE_ALARM_CODE = 20240010 const val OPEN_DEVICE_STATE_TIPS_CODE = 20240011 const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240012 + const val QUERY_BOARD_CONFIG_CODE = 20240013 /** * Handler Response Code @@ -33,6 +34,7 @@ const val QUERY_CPU_TEMPERATURE_RESPONSE_CODE = 20241001 const val QUERY_METHANE_RESPONSE_CODE = 20241002 const val DEVICE_RESPONSE_CODE = 20241003 + const val BOARD_CONFIG_RESPONSE_CODE = 20241004 /*** * SP Key diff --git a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt index 09edcf3..85cb963 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/extensions/ByteArray.kt @@ -14,6 +14,17 @@ return String(hexChars) } +/** + * ByteArray转ASCII中文字符 + * */ +fun ByteArray.toAsciiCode(): String { + val builder = StringBuilder() + this.forEach { + builder.append(Char(it.toInt())) + } + return builder.toString() +} + fun ByteArray.handleGasConcentration(): Long { /** * [1, 0, 0, 0, 13, 14] diff --git a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt index ea9ecbe..81f921b 100644 --- a/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/app/safetreecontroller/fragments/BaseSettingsFragment.kt @@ -12,6 +12,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import com.casic.app.safetreecontroller.databinding.FragmentBaseSettingsBinding +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.extensions.getSystemService @@ -88,12 +89,25 @@ } override fun initEvent() { - + binding.queryBoardConfigButton.setOnClickListener { + SocketConnectionService.weakReferenceHandler?.sendEmptyMessage(LocaleConstant.QUERY_BOARD_CONFIG_CODE) + } } override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.DEVICE_RESPONSE_CODE) { - binding.deviceCodeView.text = msg.obj as String + when (msg.what) { + LocaleConstant.DEVICE_RESPONSE_CODE -> { + binding.deviceCodeView.text = msg.obj as String + } + + LocaleConstant.BOARD_CONFIG_RESPONSE_CODE -> { + val data = msg.obj as String + //分割数据 + val list = data.split(",") + binding.boardHostView.text = list[0] + binding.boardMaskView.text = list[1] + binding.gatewayView.text = list[2].trim() + } } return 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 7c11e9f..8d718f9 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 @@ -7,6 +7,7 @@ import android.os.Message import android.util.Log import com.casic.app.safetreecontroller.extensions.handleGasConcentration +import com.casic.app.safetreecontroller.extensions.toAsciiCode import com.casic.app.safetreecontroller.extensions.toHex import com.casic.app.safetreecontroller.fragments.BaseSettingsFragment import com.casic.app.safetreecontroller.fragments.MethaneMonitorFragment @@ -77,6 +78,10 @@ LocaleConstant.CLOSE_DEVICE_STATE_TIPS_CODE -> { tcpClient.sendMessage(CommandCreator.createCloseVoiceTipsCommand()) } + + LocaleConstant.QUERY_BOARD_CONFIG_CODE -> { + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + } } return true } @@ -101,10 +106,12 @@ override fun onConnected() { ForegroundRunningService.weakReferenceHandler?.sendEmptyMessage(2024110501) - //定时查询甲烷浓度 - weakReferenceHandler?.post(methaneRunnable) //查询一次激光芯片温度 tcpClient.sendMessage(CommandCreator.createCpuTemperatureCommand()) + //查询主控板IP、子网掩码、网关IP + tcpClient.sendMessage(CommandCreator.createControlBoardConfigCommand()) + //定时查询甲烷浓度 + weakReferenceHandler?.post(methaneRunnable) } override fun onDisconnected() { @@ -117,44 +124,51 @@ weakReferenceHandler?.removeCallbacks(methaneRunnable) } + /** + * 激光开返回:[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, 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] + * */ override fun onMessageReceived(bytes: ByteArray?) { if (bytes == null) { return } Log.d(kTag, bytes.contentToString()) + if (bytes.size == 13) { + //取前6位解析设备编号 + val deviceCode = bytes.take(6).toByteArray().toHex() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.DEVICE_RESPONSE_CODE + message.obj = deviceCode + weakReferenceHandler.sendMessage(message) + } - /** - * 激光开返回:[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, 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] - * */ - if (bytes.size < 6) { - Log.d(kTag, "onMessageReceived: 数据异常,长度不够") - return - } - - //取前6位解析设备编号 - val deviceCode = bytes.take(6).toByteArray().toHex() - if (BaseSettingsFragment.weakReferenceHandler != null) { - val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! - val message = weakReferenceHandler.obtainMessage() - message.what = LocaleConstant.DEVICE_RESPONSE_CODE - message.obj = deviceCode - weakReferenceHandler.sendMessage(message) - } - - //取数据类型标志位,根据标志位解析不同的数据 - when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { - "AA" -> { - //甲烷浓度 - if (bytes.size == 13) { + //取数据类型标志位,根据标志位解析不同的数据 + when ((bytes[6].toInt() and 0xFF).toString(16).uppercase()) { + "AA" -> { + //甲烷浓度 val dataArray = bytes.copyOfRange(7, bytes.size) val concentration = dataArray.handleGasConcentration() val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -163,10 +177,8 @@ message.obj = concentration weakReferenceHandler.sendMessage(message) } - } - "BB" -> { - if (bytes.size == 13) { + "BB" -> { when ((bytes[9].toInt() and 0xFF).toString(16).uppercase()) { "90" -> { //语音源模式 @@ -214,11 +226,9 @@ } } } - } - "CC" -> { - //激光温度 - if (bytes.size == 13) { + "CC" -> { + //激光温度 val dataArray = bytes.copyOfRange(10, bytes.size) val temperature = (dataArray[0] * 256 + dataArray[1]) / 10f val weakReferenceHandler = MethaneMonitorFragment.weakReferenceHandler ?: return @@ -228,6 +238,24 @@ weakReferenceHandler.sendMessage(message) } } + } else { + val dataHeadArray = bytes.copyOfRange(0, 7) + if (dataHeadArray.toAsciiCode() == "GetData") { + //判断类型 + when (Char(bytes[10].toInt())) { + '1' -> { + val dataArray = bytes.copyOfRange(10, bytes.size) + val data = dataArray.toAsciiCode() + if (BaseSettingsFragment.weakReferenceHandler != null) { + val weakReferenceHandler = BaseSettingsFragment.weakReferenceHandler!! + val message = weakReferenceHandler.obtainMessage() + message.what = LocaleConstant.BOARD_CONFIG_RESPONSE_CODE + message.obj = data + weakReferenceHandler.sendMessage(message) + } + } + } + } } } 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 d4179eb..a9e5b05 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 @@ -67,6 +67,13 @@ } /** + * 查询主控板主控板IP、子网掩码、网关IP指令 + * */ + fun createControlBoardConfigCommand(): ByteArray { + return "GetData:1\r\n".toByteArray() + } + + /** * 音量增大指令 * */ fun createIncreaseVoiceCommand(): 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 bf3c4b8..f8f1324 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 @@ -26,6 +26,7 @@ const val CLOSE_METHANE_ALARM_CODE = 20240010 const val OPEN_DEVICE_STATE_TIPS_CODE = 20240011 const val CLOSE_DEVICE_STATE_TIPS_CODE = 20240012 + const val QUERY_BOARD_CONFIG_CODE = 20240013 /** * Handler Response Code @@ -33,6 +34,7 @@ const val QUERY_CPU_TEMPERATURE_RESPONSE_CODE = 20241001 const val QUERY_METHANE_RESPONSE_CODE = 20241002 const val DEVICE_RESPONSE_CODE = 20241003 + const val BOARD_CONFIG_RESPONSE_CODE = 20241004 /*** * SP Key diff --git a/app/src/main/res/layout/fragment_base_settings.xml b/app/src/main/res/layout/fragment_base_settings.xml index 68b09c5..919116a 100644 --- a/app/src/main/res/layout/fragment_base_settings.xml +++ b/app/src/main/res/layout/fragment_base_settings.xml @@ -42,15 +42,27 @@ android:layout_marginVertical="@dimen/dp_5" android:background="#CCC" /> - + android:paddingHorizontal="@dimen/dp_20"> + + + +