|
@@ -829,27 +829,40 @@ object BusinessManager {
|
|
|
// 下发完毕,切换工作模式
|
|
// 下发完毕,切换工作模式
|
|
|
LogUtil.i("工作票下发完毕")
|
|
LogUtil.i("工作票下发完毕")
|
|
|
loadingCallBack?.invoke(true, "切换钥匙为工作模式", null)
|
|
loadingCallBack?.invoke(true, "切换钥匙为工作模式", null)
|
|
|
- BleCmdManager.switchMode(STATUS_WORK, bleBean.bleDevice, object : CustomBleWriteCallback() {
|
|
|
|
|
- override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
|
|
|
|
|
- println("switch mode 1 success")
|
|
|
|
|
- // TODO 只能在这里断开,不能全部断开
|
|
|
|
|
-// BleManager.getInstance().disconnect(bleBean.bleDevice)
|
|
|
|
|
- }
|
|
|
|
|
- override fun onWriteFailure(exception: BleException?) {
|
|
|
|
|
- println("switch mode 1 fail")}
|
|
|
|
|
- })
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Executor.delayOnIO(800) {
|
|
|
|
|
+ switchWorkMode(bleBean.bleDevice, loadingCallBack)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private fun switchWorkMode(bleDevice: BleDevice, loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?) {
|
|
|
|
|
+ LogUtil.i("switchWorkMode - ${bleDevice.mac}")
|
|
|
|
|
+ BleCmdManager.switchMode(STATUS_WORK, bleDevice, object : CustomBleWriteCallback() {
|
|
|
|
|
+ override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
|
|
|
|
|
+ LogUtil.i("switch mode work success")
|
|
|
|
|
+ // 只能在这里断开,不能全部断开
|
|
|
|
|
+ BleManager.getInstance().disconnect(bleDevice)
|
|
|
|
|
+
|
|
|
// 打开钥匙卡扣
|
|
// 打开钥匙卡扣
|
|
|
- val keyBean = ModBusController.getKeyByMac(bleBean.bleDevice.mac)
|
|
|
|
|
|
|
+ val keyBean = ModBusController.getKeyByMac(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(bleDevice.mac)
|
|
|
ModBusController.controlKeyBuckle(true, keyBean.isLeft, dock?.addr!!.toInt() - 1)
|
|
ModBusController.controlKeyBuckle(true, keyBean.isLeft, dock?.addr!!.toInt() - 1)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ override fun onWriteFailure(exception: BleException?) {
|
|
|
|
|
+ LogUtil.e("switch mode work fail : ${exception?.code} - ${exception?.description}")
|
|
|
|
|
+ Executor.delayOnMain(500) {
|
|
|
|
|
+ switchWorkMode(bleDevice, loadingCallBack)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|