Selaa lähdekoodia

精简蓝牙写入回调;补充TODO事项

Frankensteinly 11 kuukautta sitten
vanhempi
sitoutus
46eb0da788

+ 11 - 47
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -312,7 +312,7 @@ object BusinessManager {
 
                 override fun onIndicateSuccess() {
                     LogUtil.i("监听成功")
-                    val testStr = "{\"cardNo\":\"80A8C0F4EA\",\"password\":\"12345678\",\"effectiveTime\":24,\"data\":[{\"taskCode\":\"202401020001\",\"taskId\":\"71b49baa49b343bc84d7e6b829ac1bdc\",\"codeId\":1,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"049648B2E31690\",\"infoRfidNo\":\"04E3BCCA201290\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"0405982414C563\",\"target\":0,\"prevId\":1}]},{\"taskCode\":\"202401020002\",\"taskId\":\"145b5a4cc38c41e19943f4c8b48d12b0\",\"codeId\":2,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"045460F7F4F438\",\"infoRfidNo\":\"04BC6584C65009\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"042B99E449E795\",\"target\":0,\"prevId\":1},{\"dataId\":3,\"equipRfidNo\":\"04A312EE848B62\",\"infoRfidNo\":\"04220E86831289\",\"target\":1,\"prevId\":2}]}],\"lockList\":[{\"lockId\":\"1\",\"rfid\":\"040E21443010E9\"},{\"lockId\":\"2\",\"rfid\":\"0457505E5861C2\"}]}"
+//                    val testStr = "{\"cardNo\":\"80A8C0F4EA\",\"password\":\"12345678\",\"effectiveTime\":24,\"data\":[{\"taskCode\":\"202401020001\",\"taskId\":\"71b49baa49b343bc84d7e6b829ac1bdc\",\"codeId\":1,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"049648B2E31690\",\"infoRfidNo\":\"04E3BCCA201290\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"0405982414C563\",\"target\":0,\"prevId\":1}]},{\"taskCode\":\"202401020002\",\"taskId\":\"145b5a4cc38c41e19943f4c8b48d12b0\",\"codeId\":2,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"045460F7F4F438\",\"infoRfidNo\":\"04BC6584C65009\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"042B99E449E795\",\"target\":0,\"prevId\":1},{\"dataId\":3,\"equipRfidNo\":\"04A312EE848B62\",\"infoRfidNo\":\"04220E86831289\",\"target\":1,\"prevId\":2}]}],\"lockList\":[{\"lockId\":\"1\",\"rfid\":\"040E21443010E9\"},{\"lockId\":\"2\",\"rfid\":\"0457505E5861C2\"}]}"
 //                    sendTicket(testStr, it.bleDevice, loadingCallBack)
                     Executor.delayOnMain(200) {
                         getToken(bleBean, loadingCallBack)
@@ -339,18 +339,16 @@ object BusinessManager {
         loadingCallBack.invoke(true, "开始获取token...")
         bleBean?.let {
             BleCmdManager.getToken(it.bleDevice.mac, object : CustomBleWriteCallback() {
-                override fun onPrompt(promptStr: String?) {}
-
-                override fun onConnectPrompt(promptStr: String?) {}
-
-                override fun onDisConnectPrompt(promptStr: String?) {}
-
                 override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                     loadingCallBack.invoke(false, "token获取成功")
-                    println("getToken success")
+                    LogUtil.i("getToken success : ${bleBean.bleDevice.mac}")
                     Executor.delayOnMain(500) {
                         if (isSendTicket) {
-                            sendTicket(PresentationManager.getTicketJson(), it.bleDevice, loadingCallBack)
+                            // TODO 要改成正式的json
+                            bleBean.ticketSend?.let { itJson ->
+                                sendTicket(itJson, it.bleDevice, loadingCallBack)
+                            }
+//                            sendTicket(PresentationManager.getTicketJson(), it.bleDevice, loadingCallBack)
                         } else {
                             getTicketStatus(it.bleDevice, loadingCallBack)
                         }
@@ -359,7 +357,7 @@ object BusinessManager {
 
                 override fun onWriteFailure(exception: BleException?) {
                     loadingCallBack.invoke(false, "token获取失败")
-                    println("getToken fail")
+                    LogUtil.e("getToken fail : ${bleBean.bleDevice.mac}")
                 }
             })
         }
@@ -368,25 +366,20 @@ object BusinessManager {
     fun sendTicket(jsonStr: String, bleDevice: BleDevice, loadingCallBack: (Boolean, String?) -> Unit) {
         loadingCallBack.invoke(true, "开始下发工作票...")
         BleCmdManager.sendWorkTicket(jsonStr, bleDevice = bleDevice, callback = object : CustomBleWriteCallback() {
-            override fun onPrompt(promptStr: String?) {}
-
-            override fun onConnectPrompt(promptStr: String?) {}
-
-            override fun onDisConnectPrompt(promptStr: String?) {}
-
             override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                 println("sendTicket success")
                 loadingCallBack.invoke(true, "工作票下发中...")
             }
 
             override fun onWriteFailure(exception: BleException?) {
-                println("sendTicket fail")
+                LogUtil.e("sendTicket fail : ${bleDevice.mac}")
                 loadingCallBack.invoke(false, "工作票下发失败")
             }
         })
     }
 
     fun handleRsp(bleBean: BleBean, byteArray: ByteArray, loadingCallBack: (Boolean, String?) -> Unit) {
+        // TODO Token校验
 //        val len = byteArray[2].toInt()
 //        val token = byteArray.copyOfRange(len + 7, len + 11)
 //        if (token.contentEquals(bleBean.token)) {
@@ -455,12 +448,6 @@ object BusinessManager {
                     if (res == 0x00.toByte()) idx + 1 else idx,
                     bleBean.bleDevice,
                     object : CustomBleWriteCallback() {
-                        override fun onPrompt(promptStr: String?) {}
-
-                        override fun onConnectPrompt(promptStr: String?) {}
-
-                        override fun onDisConnectPrompt(promptStr: String?) {}
-
                         override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {}
 
                         override fun onWriteFailure(exception: BleException?) {}
@@ -471,13 +458,8 @@ object BusinessManager {
             LogUtil.i("Work ticket is done")
             // 下发完毕,切换工作模式
             loadingCallBack.invoke(true, "切换钥匙为工作模式")
+            // TODO 要用户确认或者判断工作票完成自动确认
             BleCmdManager.switchMode(byteArrayOf(0x01), bleBean.bleDevice, object : CustomBleWriteCallback() {
-                override fun onPrompt(promptStr: String?) {}
-
-                override fun onConnectPrompt(promptStr: String?) {}
-
-                override fun onDisConnectPrompt(promptStr: String?) {}
-
                 override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                     println("switch mode 1 success")}
                 override fun onWriteFailure(exception: BleException?) {
@@ -506,12 +488,6 @@ object BusinessManager {
         if (idx != total - 1) {
             loadingCallBack.invoke(true, "获取工作票分包")
             getTicketStatusPart((idx + 1).toByteArray(), total.toByteArray(), byteArrayOf(0x01.toByte()), bleDevice, object : CustomBleWriteCallback() {
-                override fun onPrompt(promptStr: String?) {}
-
-                override fun onConnectPrompt(promptStr: String?) {}
-
-                override fun onDisConnectPrompt(promptStr: String?) {}
-
                 override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                     println("getTicketStatusPart success")
                 }
@@ -529,12 +505,6 @@ object BusinessManager {
                 it.ticketStatus = byteArrayOf()
                 // 切换为待机模式
                 BleCmdManager.switchMode(byteArrayOf(0x02), bleDevice, object : CustomBleWriteCallback() {
-                    override fun onPrompt(promptStr: String?) {}
-
-                    override fun onConnectPrompt(promptStr: String?) {}
-
-                    override fun onDisConnectPrompt(promptStr: String?) {}
-
                     override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                         println("switch mode 1 success")}
                     override fun onWriteFailure(exception: BleException?) {
@@ -569,12 +539,6 @@ object BusinessManager {
     fun getTicketStatus(bleDevice: BleDevice, loadingCallBack: (Boolean, String?) -> Unit) {
         loadingCallBack.invoke(true, "开始获取工作票")
         BleCmdManager.getTicketStatus(bleDevice, object : CustomBleWriteCallback() {
-            override fun onPrompt(promptStr: String?) {}
-
-            override fun onConnectPrompt(promptStr: String?) {}
-
-            override fun onDisConnectPrompt(promptStr: String?) {}
-
             override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
                 loadingCallBack.invoke(false, "工作票获取成功")
                 println("getTicketStatus success")}

+ 3 - 3
app/src/main/java/com/grkj/iscs/ble/CustomBleWriteCallback.kt

@@ -3,7 +3,7 @@ package com.grkj.iscs.ble
 import com.clj.fastble.callback.BleWriteCallback
 
 abstract class CustomBleWriteCallback : BleWriteCallback() {
-    abstract fun onPrompt(promptStr: String?)
-    abstract fun onConnectPrompt(promptStr: String?)
-    abstract fun onDisConnectPrompt(promptStr: String?)
+    open fun onPrompt(promptStr: String?) {}
+    open fun onConnectPrompt(promptStr: String?) {}
+    open fun onDisConnectPrompt(promptStr: String?) {}
 }

+ 2 - 2
app/src/main/java/com/grkj/iscs/dialog/KeyReturnConfirmDialog.kt

@@ -14,12 +14,12 @@ class KeyReturnConfirmDialog(ctx: Context): BaseDialog<DialogKeyReturnConfirmBin
 
     override fun initView() {
         mBinding?.tvCancel?.setOnClickListener {
-            // TODO 打开钥匙卡扣
+            // TODO 打开钥匙卡扣、断开连接
             dismiss()
         }
 
         mBinding?.tvConfirm?.setOnClickListener {
-            // TODO 设置待机模式
+            // TODO 设置待机模式、断开连接
             dismiss()
         }
     }