适配”HR-DGWS-485“型温湿度传感器,支持修改温湿度、更改传感器地址
This commit is contained in:
@@ -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<String> {
|
||||
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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user