Frankensteinly 1 سال پیش
والد
کامیت
94a3b9da41

+ 13 - 9
app/src/main/java/com/grkj/iscs/activity/ModbusActivity.kt

@@ -6,6 +6,10 @@ import com.grkj.iscs.extentions.removeLeadingZeros
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.iview.IModbusView
 import com.grkj.iscs.modbus.ModBusController
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_ELEC_LOCK_BOARD
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
 import com.grkj.iscs.presenter.ModBusPresenter
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
@@ -29,7 +33,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
             res.forEach { bytes ->
                 val dockBean = ModBusController.updateStatus(bytes) ?: return@forEach
                 when (dockBean.type) {
-                    0x00.toByte() -> {
+                    DOCK_TYPE_KEY -> {
                         dockBean.getKeyList().forEach { keyBean ->
                             if (keyBean.isExist) {
                                 // 放回钥匙,读取rfid
@@ -42,7 +46,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
                             }
                         }
                     }
-                    0x01.toByte() -> {
+                    DOCK_TYPE_LOCK -> {
                         dockBean.getLockList().forEach { lockBean ->
                             if (lockBean.isExist) {
                                 ModBusController.readLockRfid(dockBean.addr.toInt() - 1, lockBean.idx) { res ->
@@ -52,7 +56,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
                             }
                         }
                     }
-                    0x03.toByte() -> {
+                    DOCK_TYPE_PORTABLE -> {
                         // TODO 便携式待完善
                     }
                 }
@@ -126,10 +130,10 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
                     // 设备具体数据由0x0011寄存器提供
                     ModBusController.updateDeviceType(bytes[0], bytes[4])
                     val type = when (bytes[4]) {
-                        0x00.toByte() -> "钥匙底座"
-                        0x01.toByte() -> "锁具底座"
-                        0x02.toByte() -> "电磁锁控制板"
-                        0x03.toByte() -> "便携式底座"
+                        DOCK_TYPE_KEY -> "钥匙底座"
+                        DOCK_TYPE_LOCK -> "锁具底座"
+                        DOCK_TYPE_ELEC_LOCK_BOARD -> "电磁锁控制板"
+                        DOCK_TYPE_PORTABLE -> "便携式底座"
                         else -> "未知"
                     }
                     LogUtil.i("设备(${bytes[0].toInt()})类型:$type")
@@ -228,7 +232,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
         }
 
         mBinding?.closeAllLockBuckles?.setOnClickListener {
-            ModBusController.dockList.filter { it.type == 0x01.toByte() }.forEach { dockBean ->
+            ModBusController.dockList.filter { it.type == DOCK_TYPE_LOCK }.forEach { dockBean ->
                 val list = dockBean.getLockList().stream().map { it.idx }.collect(Collectors.toList())
                 ModBusController.controlLockBuckle(false, dockBean.addr.toInt() - 1, list) {
                     LogUtil.i("关所有锁卡扣 : ${it.toHexStrings()}")
@@ -237,7 +241,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
         }
 
         mBinding?.openAllLockBuckles?.setOnClickListener {
-            ModBusController.dockList.filter { it.type == 0x01.toByte() }.forEach { dockBean ->
+            ModBusController.dockList.filter { it.type == DOCK_TYPE_LOCK }.forEach { dockBean ->
                 val list = dockBean.getLockList().stream().map { it.idx }.collect(Collectors.toList())
                 ModBusController.controlLockBuckle(true, dockBean.addr.toInt() - 1, list) {
                     LogUtil.i("开所有锁卡扣 : ${it.toHexStrings()}")

+ 6 - 16
app/src/main/java/com/grkj/iscs/modbus/DockBean.kt

@@ -1,5 +1,11 @@
 package com.grkj.iscs.modbus
 
+import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_KEY
+import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_ELEC_LOCK_BOARD
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
 import com.grkj.iscs.util.log.LogUtil
 
 /**
@@ -15,22 +21,6 @@ class DockBean(
     var deviceList: MutableList<DeviceBean>
 ) {
 
-    companion object {
-        // 底座类型常量
-        // 钥匙底座
-        const val DOCK_TYPE_KEY = 0x00.toByte()
-        // 锁具底座
-        const val DOCK_TYPE_LOCK = 0x01.toByte()
-        // 电磁锁控制板
-        const val DOCK_TYPE_ELEC_LOCK_BOARD = 0x02.toByte()
-        // 便携式底座
-        const val DOCK_TYPE_PORTABLE = 0x03.toByte()
-
-        // 设备类型常量
-        const val DEVICE_TYPE_KEY = 0
-        const val DEVICE_TYPE_LOCK = 1
-    }
-
     fun parseStatus(byteArray: ByteArray): DockBean? {
         if (byteArray.isEmpty()) {
             return null

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

@@ -3,6 +3,10 @@ package com.grkj.iscs.modbus
 import android.content.Context
 import com.grkj.iscs.extentions.removeLeadingZeros
 import com.grkj.iscs.extentions.toHexStrings
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_ELEC_LOCK_BOARD
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.log.LogUtil
 import java.util.concurrent.Executors
@@ -110,10 +114,10 @@ object ModBusController {
                 // TODO 设备具体数据由0x0011寄存器提供
                 updateDeviceType(bytes[0], bytes[4])
                 val type = when (bytes[4]) {
-                    0x00.toByte() -> "钥匙底座"
-                    0x01.toByte() -> "锁具底座"
-                    0x02.toByte() -> "电磁锁控制板"
-                    0x03.toByte() -> "便携式底座"
+                    DOCK_TYPE_KEY -> "钥匙底座"
+                    DOCK_TYPE_LOCK -> "锁具底座"
+                    DOCK_TYPE_ELEC_LOCK_BOARD -> "电磁锁控制板"
+                    DOCK_TYPE_PORTABLE -> "便携式底座"
                     else -> "未知"
                 }
                 LogUtil.i("initDevicesStatus 设备(${bytes[0].toInt()})类型:$type")
@@ -133,7 +137,7 @@ object ModBusController {
      */
     private fun initLock() {
         LogUtil.i("initLock : $dockList")
-        dockList.filter { it.type == 0x01.toByte() }.forEach { dockBean ->
+        dockList.filter { it.type == DOCK_TYPE_LOCK }.forEach { dockBean ->
             val hasLockIdxList = dockBean.getLockList().filter { it.isExist }.map { it.idx }
             val noLockIdxList = dockBean.getLockList().filter { !it.isExist }.map { it.idx } as MutableList<Int>
 
@@ -154,7 +158,7 @@ object ModBusController {
      */
     private fun initKey() {
         LogUtil.i("initKey : $dockList")
-        dockList.filter { it.type == 0x00.toByte() }.forEach { dockBean ->
+        dockList.filter { it.type == DOCK_TYPE_KEY }.forEach { dockBean ->
             controlKeyLight(dockBean.addr.toInt() - 1, 2, 2)
             dockBean.getKeyList().forEach { key ->
                 if (key.isExist) {
@@ -284,7 +288,7 @@ object ModBusController {
      * 通过RFID更新对应的Mac
      */
     fun updateKeyMacByRfid(rfid: String, mac: String) {
-        dockList.find { it.type == 0x00.toByte() }?.getKeyList()?.find { it.rfid == rfid }?.mac = mac
+        dockList.find { it.type == DOCK_TYPE_KEY }?.getKeyList()?.find { it.rfid == rfid }?.mac = mac
     }
 
     /**
@@ -329,13 +333,13 @@ object ModBusController {
      * 根据RFID找钥匙
      */
     fun getKeyByRfid(rfid: String): DockBean.KeyBean? {
-        return dockList.find { it.type == 0x00.toByte() }?.getKeyList()?.find { it.rfid == rfid }
+        return dockList.find { it.type == DOCK_TYPE_KEY }?.getKeyList()?.find { it.rfid == rfid }
     }
 
     /**
      * 根据RFID找锁具
      */
     fun getLockByRfid(rfid: String): DockBean.LockBean? {
-        return dockList.find { it.type == 0x01.toByte() }?.getLockList()?.find { it.rfid == rfid }
+        return dockList.find { it.type == DOCK_TYPE_LOCK }?.getLockList()?.find { it.rfid == rfid }
     }
 }

+ 17 - 0
app/src/main/java/com/grkj/iscs/model/DeviceConst.kt

@@ -0,0 +1,17 @@
+package com.grkj.iscs.model
+
+object DeviceConst {
+    /***********************  底座类型  ***********************/
+    // 钥匙底座
+    const val DOCK_TYPE_KEY = 0x00.toByte()
+    // 锁具底座
+    const val DOCK_TYPE_LOCK = 0x01.toByte()
+    // 电磁锁控制板
+    const val DOCK_TYPE_ELEC_LOCK_BOARD = 0x02.toByte()
+    // 便携式底座
+    const val DOCK_TYPE_PORTABLE = 0x03.toByte()
+
+    /***********************  底座设备类型  ***********************/
+    const val DEVICE_TYPE_KEY = 0
+    const val DEVICE_TYPE_LOCK = 1
+}