Преглед изворни кода

1. 添加蓝牙设备关机操作

bjb пре 3 месеци
родитељ
комит
0375088117

+ 4 - 0
app/src/main/java/com/iscs/comm/MainActivity.kt

@@ -31,6 +31,7 @@ import com.iscs.comm.enums.RunMode
 import com.iscs.comm.extension.BleFrameExt
 import com.iscs.comm.extension.BleFrameExt.buildBLEGetPowerCMD
 import com.iscs.comm.extension.BleFrameExt.buildBLEGetStatusCMD
+import com.iscs.comm.extension.BleFrameExt.buildBLEPowerOffCMD
 import com.iscs.comm.extension.BleFrameExt.buildBLESwitchRunModeCMD
 import com.iscs.comm.extension.BleFrameExt.buildBLETicketDataCMDList
 import com.iscs.comm.extension.BleFrameExt.getPower
@@ -78,6 +79,7 @@ class MainActivity : ComponentActivity() {
             // SDK初始化
             CommManager.init(CommConfig().setCommType(CommType.CAN).setPort("can0").setBitrate(1000000))
             // 蓝牙钥匙功能测试
+            bleKeyTest("CC:BA:97:21:72:C6")
 //            repeat(10) {
 //                ISCSLog.i("xiaoming", "------------ start ------------")
 //                bleKeyTest("CC:BA:97:21:71:E6")
@@ -161,6 +163,8 @@ class MainActivity : ComponentActivity() {
 //            var datas = byteArrayOf()
 //            pkgList.forEach { datas += it.pkgData }
 //            ISCSLog.i("xiaoming $mac", "读取作业票:${String(datas)}")
+            val powerOff = bm.writeByResponse(token.buildBLEPowerOffCMD())
+            ISCSLog.i("xiaoming $mac", "设备关机结果:$powerOff")
         } else {
             // 进行重连,这里可以封装尝试次数
             bleKeyTest(mac)

+ 8 - 0
transport/src/main/java/com/iscs/comm/extension/BleFrameExt.kt

@@ -1,5 +1,6 @@
 package com.iscs.comm.extension
 
+import android.util.Log
 import com.iscs.comm.entity.BleFrame
 import com.iscs.comm.entity.BleTicketDataPackage
 import com.iscs.comm.enums.RunMode
@@ -45,6 +46,13 @@ object BleFrameExt {
         return BleFrame(BleProtocol.REQ_SWITCH_MODE, byteArrayOf(mode.toByte()) + getUnixTime() + this, BleProtocol.RSP_SWITCH_MODE)
     }
 
+    /**
+     * 构建用于对蓝牙设备进行关机的命令,因为设备即关机无任何响应需要处理
+     */
+    fun ByteArray.buildBLEPowerOffCMD(): BleFrame {
+        return BleFrame(BleProtocol.REQ_POWER_OFF, byteArrayOf(0x02) + getUnixTime() + this, BleProtocol.RSP_POWER_OFF)
+    }
+
     /**
      * 构建用于作业票下发的指令集合
      */

+ 6 - 0
transport/src/main/java/com/iscs/comm/protocol/BleProtocol.kt

@@ -38,6 +38,12 @@ object BleProtocol {
     // 工作模式切换响应
     val RSP_SWITCH_MODE = byteArrayOf(0x02, 0x02, 0x03, 0x01)
 
+    // 设备关机
+    val REQ_POWER_OFF = byteArrayOf(0x02, 0x01, 0x02, 0xEE.toByte())
+
+    // 设备关机响应
+    val RSP_POWER_OFF = byteArrayOf(0x02, 0x02, 0x03, 0xEE.toByte())
+
     // 工作票下发
     val REQ_SEND_WORK_TICKET = byteArrayOf(0x02, 0x01)