Explorar el Código

补充使用工作模式的钥匙的后续处理触发

Frankensteinly hace 8 meses
padre
commit
ad0aff644b
Se han modificado 1 ficheros con 24 adiciones y 6 borrados
  1. 24 6
      app/src/main/java/com/grkj/iscs/BusinessManager.kt

+ 24 - 6
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -986,12 +986,14 @@ object BusinessManager {
             // TD:Ticket Done
             if (isNeedLoading) mEventBus.postValue(MsgEvent(MSG_EVENT_LOADING, LoadingMsg(false, "TD$ticketJson}", true)))
             // TODO 根据工作票完成情况,切换为待机模式
-            BleCmdManager.switchMode(STATUS_READY, bleDevice, object : CustomBleWriteCallback() {
-                override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
-                    LogUtil.i("switch mode ready success")}
-                override fun onWriteFailure(exception: BleException?) {
-                    LogUtil.e("switch mode ready fail")}
-            })
+            switchReadyMode(bleDevice) { isSuccess ->
+                if (isSuccess) {
+                    // 延时再次获取当前状态,触发handleCurrentMode里工作票下发状态检查
+                    Executor.delayOnMain(500) {
+                        getCurrentStatus(bleDevice)
+                    }
+                }
+            }
 
             // TODO 和confirm dialog冲突,待定
             val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
@@ -1030,6 +1032,22 @@ object BusinessManager {
         }
     }
 
+    private fun switchReadyMode(bleDevice: BleDevice, processCallback: ((Boolean) -> Unit)) {
+        BleCmdManager.switchMode(STATUS_READY, bleDevice, object : CustomBleWriteCallback() {
+            override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
+                LogUtil.i("switch mode ready success : ${bleDevice.mac}")
+                processCallback.invoke(true)
+            }
+
+            override fun onWriteFailure(exception: BleException?) {
+                LogUtil.e("switch mode ready fail : ${bleDevice.mac}")
+                Executor.delayOnMain(300) {
+                    switchReadyMode(bleDevice, processCallback)
+                }
+            }
+        })
+    }
+
     /**
      * 获取工作票完成情况
      */