Răsfoiți Sursa

485指令适配及通用化改造

Frankensteinly 1 an în urmă
părinte
comite
87aac4937b

+ 2 - 2
app/src/main/java/com/grkj/iscs/modbus/ModBusController.kt

@@ -256,7 +256,7 @@ object ModBusController {
      */
     fun readKeyRfid(slaveIdx: Int?, isLeft: Boolean, done: ((isLeft: Boolean, res: ByteArray) -> Unit)? = null) {
         slaveIdx?.let {
-            modBusManager?.generateKeyRfidCmd(isLeft)?.let { cmd ->
+            modBusManager?.generateRfidCmd(if (isLeft) 0 else 1)?.let { cmd ->
                 modBusManager?.sendTo(it, cmd) {
                     done?.invoke(isLeft, it)
                 }
@@ -269,7 +269,7 @@ object ModBusController {
      */
     fun readLockRfid(slaveIdx: Int?, lockIdx: Int, done: ((res: ByteArray) -> Unit)? = null) {
         slaveIdx?.let {
-            modBusManager?.generateLockRfidCmd(lockIdx)?.let { cmd ->
+            modBusManager?.generateRfidCmd(lockIdx)?.let { cmd ->
                 modBusManager?.sendTo(it, cmd) { res ->
                     done?.invoke(res)
                 }

+ 11 - 16
app/src/main/java/com/grkj/iscs/modbus/ModBusManager.kt

@@ -253,7 +253,7 @@ class ModBusManager(
     }
 
     /**
-     * 生成锁具卡扣开关指令
+     * 生成锁具/便携式底座 单个锁具卡扣开关指令
      */
     fun generateLockBuckleCmd(isOpen: Boolean, lockIndex: Int): MBFrame {
         var str = ""
@@ -277,6 +277,9 @@ class ModBusManager(
         )
     }
 
+    /**
+     * 生成多个锁具卡扣开关指令(只能针对同一个底座,不能跨底座)
+     */
     fun generateLockBuckleCmd(isOpen: Boolean, lockIndexList: MutableList<Int>): MutableList<MBFrame> {
         var str = ""
         val rstList = mutableListOf<MBFrame>()
@@ -306,15 +309,7 @@ class ModBusManager(
         return rstList
     }
 
-    /**
-     * 生成读钥匙RFID指令
-     */
-    fun generateKeyRfidCmd(isLeft: Boolean): MBFrame {
-        return MBFrame(
-            FRAME_TYPE_READ,
-            byteArrayOf(0x00, if (isLeft) 0x20 else 0x24, 0x00, 0x04)
-        )
-    }
+
 
     /**
      * 生成钥匙底座灯光指令
@@ -343,14 +338,14 @@ class ModBusManager(
     }
 
     /**
-     * 生成锁具 RFID 读指令
+     * 生成RFID 读指令
      *
-     * @param lockIdx 0-9
+     * @param idx 锁具底座锁具:0-9  钥匙底座钥匙:0(left)-1(right)  便携式底座锁具:0-2  便携式底座钥匙:3
      */
-    fun generateLockRfidCmd(lockIdx: Int): MBFrame {
+    fun generateRfidCmd(idx: Int): MBFrame {
         return MBFrame(
             FRAME_TYPE_READ,
-            byteArrayOf(0x00, (0x20 + lockIdx * 4).toByte(), 0x00, 0x04)
+            byteArrayOf(0x00, (0x20 + idx * 4).toByte(), 0x00, 0x04)
         )
     }
 }
@@ -466,7 +461,7 @@ class MBFrame(
         )
 
         /**
-         * 读钥匙/锁具底座状态
+         * 读钥匙/锁具/便携式底座状态
          */
         val READ_STATUS = MBFrame(
             FRAME_TYPE_READ,
@@ -474,7 +469,7 @@ class MBFrame(
         )
 
         /**
-         * 读卡扣状态(钥匙、锁的0-7)
+         * 读卡扣状态(钥匙、锁的0-7、便携式的锁和钥匙
          */
         val READ_BUCKLE_STATUS = MBFrame(
             FRAME_TYPE_READ,

+ 1 - 0
app/src/main/java/com/grkj/iscs/modbus/PortManager.kt

@@ -122,6 +122,7 @@ class PortManager private constructor(
          */
         @WorkerThread
         fun openCtrlBord(ctx: Context) : PortManager? {
+            // TODO 端口号待定:大屏调试设备-1,小屏调试设备-0
             val port = 1
             val bps = 115200
             val usb = false