|
@@ -84,11 +84,30 @@ object BusinessManager {
|
|
|
ModBusController.stop()
|
|
ModBusController.stop()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ class DeviceListener(
|
|
|
|
|
+ val key: Any,
|
|
|
|
|
+ val callBack: (DockBean) -> Unit
|
|
|
|
|
+ )
|
|
|
|
|
+ private val listeners = ArrayList<DeviceListener>()
|
|
|
|
|
+
|
|
|
|
|
+ fun registerStatusListener(key: Any, listener: (DockBean) -> Unit) {
|
|
|
|
|
+ listeners.add(DeviceListener(key, listener))
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ fun unregisterListener(key: Any) {
|
|
|
|
|
+ val it = listeners.iterator()
|
|
|
|
|
+ while (it.hasNext()) {
|
|
|
|
|
+ if (it.next().key == key) {
|
|
|
|
|
+ it.remove()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
- * @param key 可null,null时用applicationContext做全局监听
|
|
|
|
|
|
|
+ * 总的监听,做预处理,其余的所有监听均使用本监听处理后的数据,只允许调用一次
|
|
|
*/
|
|
*/
|
|
|
- fun registerStatusListener(key: Any?, callBack: (DockBean) -> Unit) {
|
|
|
|
|
- ModBusController.registerStatusListener(key ?: MyApplication.instance!!.applicationContext) { res ->
|
|
|
|
|
|
|
+ fun registerMainListener() {
|
|
|
|
|
+ ModBusController.registerStatusListener(MyApplication.instance!!.applicationContext) { res ->
|
|
|
LogUtil.i("设备状态:${(res as List<ByteArray>).map { it.toHexStrings() }}")
|
|
LogUtil.i("设备状态:${(res as List<ByteArray>).map { it.toHexStrings() }}")
|
|
|
res.forEach { bytes ->
|
|
res.forEach { bytes ->
|
|
|
val dockBean = ModBusController.updateStatus(bytes) ?: return@forEach
|
|
val dockBean = ModBusController.updateStatus(bytes) ?: return@forEach
|
|
@@ -194,7 +213,7 @@ object BusinessManager {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- callBack.invoke(dockBean)
|
|
|
|
|
|
|
+ listeners.forEach { it.callBack(dockBean) }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -677,14 +696,14 @@ object BusinessManager {
|
|
|
println("switch mode 1 fail")}
|
|
println("switch mode 1 fail")}
|
|
|
})
|
|
})
|
|
|
// 打开钥匙卡扣
|
|
// 打开钥匙卡扣
|
|
|
- val keyBean = ModBusController.getKeyByRfid(bleBean.bleDevice.mac)
|
|
|
|
|
|
|
+ val keyBean = ModBusController.getKeyByMac(bleBean.bleDevice.mac)
|
|
|
if (keyBean == null) {
|
|
if (keyBean == null) {
|
|
|
loadingCallBack.invoke(false, "未找到钥匙信息", false)
|
|
loadingCallBack.invoke(false, "未找到钥匙信息", false)
|
|
|
ToastUtils.tip(R.string.key_not_exists)
|
|
ToastUtils.tip(R.string.key_not_exists)
|
|
|
} else {
|
|
} else {
|
|
|
loadingCallBack.invoke(false, null, true)
|
|
loadingCallBack.invoke(false, null, true)
|
|
|
val dock = ModBusController.getDockByKeyMac(bleBean.bleDevice.mac)
|
|
val dock = ModBusController.getDockByKeyMac(bleBean.bleDevice.mac)
|
|
|
- ModBusController.controlKeyBuckle(true, keyBean.isLeft, dock?.addr?.toInt())
|
|
|
|
|
|
|
+ ModBusController.controlKeyBuckle(true, keyBean.isLeft, dock?.addr!!.toInt() - 1)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|