diff --git a/app/build.gradle b/app/build.gradle index e69b6a0..797dc46 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.example.iot_controlhost" minSdkVersion 25 targetSdkVersion 30 - versionCode 159 - versionName "3.5.0.159" + versionCode 160 + versionName "3.5.0.160" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { moduleName "mcu" diff --git a/app/src/main/java/com/example/iot_controlhost/model/sensor/THSensor.kt b/app/src/main/java/com/example/iot_controlhost/model/sensor/THSensor.kt index 0f95a27..5b95d1e 100644 --- a/app/src/main/java/com/example/iot_controlhost/model/sensor/THSensor.kt +++ b/app/src/main/java/com/example/iot_controlhost/model/sensor/THSensor.kt @@ -1,6 +1,8 @@ package com.example.iot_controlhost.model.sensor import com.blankj.utilcode.util.StringUtils +import com.example.iot_controlhost.model.Device.getCRC +import com.example.iot_controlhost.model.sensor.Sensor.serialPortUtil import com.example.iot_controlhost.utils.DataUtils @@ -25,7 +27,7 @@ class THSensor(name: String?) : Sensor(name) { //获得指令 var str = address + "0300000002" val crc = getCRC(str) - str = str + crc + str += crc //利用指令获得数据 val data = serialPortUtil.sendAndReceiveSerialData( this, str @@ -41,8 +43,14 @@ class THSensor(name: String?) : Sensor(name) { initData() } if (DataUtils.CRC16Check(wsd)) { - wd = WDTransform(wsd[3] + wsd[4]) - sd = WDTransform(wsd[5] + wsd[6]) + if (model == models[0]) { + wd = WDTransform(wsd[3] + wsd[4]) + sd = WDTransform(wsd[5] + wsd[6]) + } else if (model == models[1]) { + // HR-DGWS-485 与 TH10S-B 命令基本一致,只是温湿度解析位置不同 + wd = WDTransform(wsd[5] + wsd[6]) + sd = WDTransform(wsd[3] + wsd[4]) + } } if (wd > 100 || sd > 100) { initData() @@ -60,7 +68,7 @@ class THSensor(name: String?) : Sensor(name) { } override fun getModels(): Array { - return arrayOf("TH10S-B") + return arrayOf("TH10S-B", "HR-DGWS-485") } override fun toString(): String { @@ -81,8 +89,15 @@ class THSensor(name: String?) : Sensor(name) { newAddress: String ): Boolean { //修改地址指令 - var editAddress = oldAddress + "06006400" + newAddress - editAddress = editAddress + getCRC(editAddress) + var editAddress = if (model == models[0]) { + oldAddress + "06006400" + newAddress + } else if (model == models[1]) { + oldAddress + "06010000" + newAddress + } else { + // 不会出现这种 + oldAddress + } + editAddress += getCRC(editAddress) return editAddress == serialPortUtil.sendAndReceiveSerialData( this, editAddress )