Selaa lähdekoodia

补充日志打印;485硬件放回的时候changeList不使用clone,只有拿走的时候才用clone,防止放回的时候repeat查mac等信息查不到;补充放回钥匙的时候缺失的蓝牙连接准备

Frankensteinly 8 kuukautta sitten
vanhempi
sitoutus
2d528ab0f3

+ 7 - 5
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -518,6 +518,7 @@ object BusinessManager {
         prepareDoneCallBack: ((Boolean, BleBean?) -> Unit)?
     ) {
         Executor.runOnMain {
+            // 如果是已经连上的设备,从indicate开始往下走,不需要再扫描了
             if (BleManager.getInstance().isConnected(mac)) {
                 deviceList.find { it.bleDevice.mac == mac }?.let { itBleDevice ->
                     indicate(itBleDevice, isNeedLoading, prepareDoneCallBack)
@@ -710,7 +711,7 @@ object BusinessManager {
     /**
      * 下发工作票
      */
-    fun sendTicketBusiness(
+    private fun sendTicketBusiness(
         mac: String,
         ticketDetail: TicketDetailRespVO,
         lockList: MutableList<String?>?,
@@ -954,13 +955,14 @@ object BusinessManager {
     }
 
     fun getCurrentStatus(bleDevice: BleDevice) {
+        LogUtil.i("getCurrentStatus - ${bleDevice.mac}")
         BleCmdManager.getCurrentStatus(bleDevice, object : CustomBleWriteCallback() {
             override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
-                LogUtil.i("getCurrentStatus success")
+                LogUtil.i("getCurrentStatus success : ${bleDevice.mac}")
             }
 
             override fun onWriteFailure(exception: BleException?) {
-                LogUtil.i("getCurrentStatus fail")
+                LogUtil.i("getCurrentStatus fail : ${bleDevice.mac}")
                 Executor.delayOnMain(500) {
                     getCurrentStatus(bleDevice)
                 }
@@ -972,7 +974,7 @@ object BusinessManager {
         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")
+                LogUtil.i("switch mode work success : ${bleDevice.mac}")
                 // 只能在这里断开,不能全部断开
                 BleManager.getInstance().disconnect(bleDevice)
 
@@ -1007,7 +1009,7 @@ object BusinessManager {
                 return@handleTicketStatus
             }
             if (isNeedLoading) mEventBus.postValue(MsgEvent(MSG_EVENT_LOADING, LoadingMsg(false, "工作票完成状态读取完成", null)))
-            LogUtil.i("Get ticket status complete")
+            LogUtil.i("Get ticket status complete : ${bleDevice.mac}")
             // TD:Ticket Done
             if (isNeedLoading) mEventBus.postValue(MsgEvent(MSG_EVENT_LOADING, LoadingMsg(false, "TD$ticketJson}", true)))
             // TODO 根据工作票完成情况,切换为待机模式

+ 10 - 3
app/src/main/java/com/grkj/iscs/modbus/DockBean.kt

@@ -48,22 +48,27 @@ class DockBean(
                             if (leftHasKey != keyBean.isExist) {
                                 keyBean.isExist = leftHasKey
                                 keyBean.isCharging = isLeftCharging
-                                changeList.add(keyBean.clone())
+
                                 // 拿走钥匙,移除钥匙信息
                                 if (!leftHasKey) {
+                                    changeList.add(keyBean.clone())
                                     keyBean.rfid = null
                                     keyBean.mac = null
+                                } else {
+                                    changeList.add(keyBean)
                                 }
                             }
                         } else {
                             if (rightHasKey != keyBean.isExist) {
                                 keyBean.isExist = rightHasKey
                                 keyBean.isCharging = isRightCharging
-                                changeList.add(keyBean.clone())
                                 // 拿走钥匙,移除钥匙信息
                                 if (!rightHasKey) {
+                                    changeList.add(keyBean.clone())
                                     keyBean.rfid = null
                                     keyBean.mac = null
+                                } else {
+                                    changeList.add(keyBean)
                                 }
                             }
                         }
@@ -89,10 +94,12 @@ class DockBean(
                     for (i in 0 until getLockList().size) {
                         if (getLockList()[i].isExist != tempList[i]) {
                             getLockList()[i].isExist = tempList[i]
-                            changeList.add(getLockList()[i].clone())
                             // 拿走锁具,移除锁具信息
                             if (!tempList[i]) {
+                                changeList.add(getLockList()[i].clone())
                                 getLockList()[i].rfid = null
+                            } else {
+                                changeList.add(getLockList()[i])
                             }
                         }
                     }

+ 5 - 1
app/src/main/java/com/grkj/iscs/view/presenter/HomePresenter.kt

@@ -16,7 +16,11 @@ class HomePresenter : BasePresenter<IHomeView>() {
                         if (keyBean.isExist) {
                             Executor.repeatOnMain({
                                 keyBean.mac?.let {
-                                    BusinessManager.getCurrentStatus(BusinessManager.getBleDeviceByMac(it)?.bleDevice!!)
+                                    BusinessManager.registerConnectListener(it) { isDone, bleBean ->
+                                        if (isDone && bleBean != null) {
+                                            BusinessManager.getCurrentStatus(BusinessManager.getBleDeviceByMac(bleBean.bleDevice.mac)?.bleDevice!!)
+                                        }
+                                    }
                                 }
                                 return@repeatOnMain keyBean.mac == null
                             }, 1000, true)