Răsfoiți Sursa

优化性能;补充日志打印记录;修正显示逻辑

Frankensteinly 9 luni în urmă
părinte
comite
11825aac5f

+ 25 - 12
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -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)
+                }
+            }
+        })
     }
     }
 
 
     /**
     /**

+ 3 - 1
app/src/main/java/com/grkj/iscs/MyApplication.kt

@@ -33,7 +33,9 @@ class MyApplication : Application() {
         SPUtils.clearLoginUser(this)
         SPUtils.clearLoginUser(this)
         Token.clear(this)
         Token.clear(this)
 
 
-        BusinessManager.registerMainListener()
+        Executor.runOnIO {
+            BusinessManager.registerMainListener()
+        }
     }
     }
 
 
     override fun attachBaseContext(base: Context?) {
     override fun attachBaseContext(base: Context?) {

+ 1 - 1
app/src/main/java/com/grkj/iscs/ble/BleCmdManager.kt

@@ -169,7 +169,7 @@ object BleCmdManager {
         LogUtil.d("debug3 : ${cmd.toHexStrings()}")
         LogUtil.d("debug3 : ${cmd.toHexStrings()}")
 
 
         BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
         BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
-            BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, cmd), writeCallback = callback)
+            BleUtil.instance?.write(it.bleDevice, writeUUID = WRITE_UUID, cmd = assembleData(it, cmd), writeCallback = callback)
         }
         }
     }
     }
 
 

+ 1 - 0
app/src/main/java/com/grkj/iscs/view/activity/test/BleActivity.kt

@@ -326,6 +326,7 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                     gatt: BluetoothGatt?,
                     gatt: BluetoothGatt?,
                     status: Int
                     status: Int
                 ) {
                 ) {
+                    LogUtil.i("onDisConnected : ${device?.mac} - $isActiveDisConnected")
                     handleLoading(false)
                     handleLoading(false)
                     ToastUtils.tip("连接断开了,请重试!")
                     ToastUtils.tip("连接断开了,请重试!")
                     mBinding?.rvBle?.adapter?.notifyItemChanged(position)
                     mBinding?.rvBle?.adapter?.notifyItemChanged(position)

+ 2 - 0
app/src/main/java/com/grkj/iscs/view/fragment/StepFragment.kt

@@ -153,6 +153,8 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
             } else if (mStep == 8) {
             } else if (mStep == 8) {
                 mBinding?.cbAction?.visibility = View.VISIBLE
                 mBinding?.cbAction?.visibility = View.VISIBLE
                 mBinding?.cbAction?.setText(getString(R.string.finish_the_job))
                 mBinding?.cbAction?.setText(getString(R.string.finish_the_job))
+            } else {
+                mBinding?.cbAction?.visibility = View.GONE
             }
             }
         }
         }