|
|
@@ -29,8 +29,29 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
|
|
|
ModBusController.registerStatusListener(this) { res ->
|
|
|
LogUtil.i("设备状态:${(res as List<ByteArray>).map { it.toHexStrings() }}")
|
|
|
res.forEach { bytes ->
|
|
|
- val rst = ModBusController.updateStatus(bytes)
|
|
|
- println("设备状态变化 : $rst")
|
|
|
+ val deviceBean = ModBusController.updateStatus(bytes) ?: return@forEach
|
|
|
+ if (deviceBean.type == 0x00.toByte()) {
|
|
|
+ deviceBean.keyList.forEach { keyBean ->
|
|
|
+ if (keyBean.hasKey) {
|
|
|
+ // 放回钥匙,读取rfid
|
|
|
+ ModBusController.readKeyRfid(deviceBean.addr.toInt() - 1, keyBean.isLeft) { isLeft, res ->
|
|
|
+ val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
|
|
|
+ ModBusController.updateKeyRfid(deviceBean.addr.toInt(), keyBean.isLeft, rfid)
|
|
|
+ // TODO 从HTTP读取Mac
|
|
|
+ // TODO 蓝牙通信
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (deviceBean.type == 0x01.toByte()) {
|
|
|
+ deviceBean.lockList.forEach { lockBean ->
|
|
|
+ if (lockBean.hasLock) {
|
|
|
+ ModBusController.readLockRfid(deviceBean.addr.toInt() - 1, lockBean.idx) { res ->
|
|
|
+ val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
|
|
|
+ ModBusController.updateLockRfid(deviceBean.addr.toInt(), lockBean.idx, rfid)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -96,12 +117,9 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
|
|
|
ModBusController.readDeviceType { res ->
|
|
|
LogUtil.i("设备类型数量 : ${res.size}")
|
|
|
LogUtil.i("设备类型 : ${res.map { it.toHexStrings()}}")
|
|
|
-// // TODO 暂时先清空
|
|
|
-// ModBusController.deviceList.clear()
|
|
|
res.forEach { bytes ->
|
|
|
if (bytes.size < 5) return@forEach
|
|
|
- // TODO 设备具体数据由0x0011寄存器提供
|
|
|
-// ModBusController.deviceList.add(DeviceBean(bytes[0], bytes[4], mutableListOf(), mutableListOf()))
|
|
|
+ // 设备具体数据由0x0011寄存器提供
|
|
|
ModBusController.updateDeviceType(bytes[0], bytes[4])
|
|
|
val type = when (bytes[4]) {
|
|
|
0x00.toByte() -> "钥匙底座"
|
|
|
@@ -207,7 +225,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
|
|
|
mBinding?.closeAllLockBuckles?.setOnClickListener {
|
|
|
ModBusController.deviceList.filter { it.type == 0x01.toByte() }.forEach { deviceBean ->
|
|
|
val list = deviceBean.lockList.stream().map { it.idx }.collect(Collectors.toList())
|
|
|
- ModBusController.controlLockBuckle(false, deviceBean.addr!!.toInt() - 1, list) {
|
|
|
+ ModBusController.controlLockBuckle(false, deviceBean.addr.toInt() - 1, list) {
|
|
|
LogUtil.i("关所有锁卡扣 : ${it.toHexStrings()}")
|
|
|
}
|
|
|
}
|
|
|
@@ -216,7 +234,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
|
|
|
mBinding?.openAllLockBuckles?.setOnClickListener {
|
|
|
ModBusController.deviceList.filter { it.type == 0x01.toByte() }.forEach { deviceBean ->
|
|
|
val list = deviceBean.lockList.stream().map { it.idx }.collect(Collectors.toList())
|
|
|
- ModBusController.controlLockBuckle(true, deviceBean.addr!!.toInt() - 1, list) {
|
|
|
+ ModBusController.controlLockBuckle(true, deviceBean.addr.toInt() - 1, list) {
|
|
|
LogUtil.i("开所有锁卡扣 : ${it.toHexStrings()}")
|
|
|
}
|
|
|
}
|