瀏覽代碼

同步Simple Demo分支部分修改:1.移除钥匙底座灯控 2.刷卡卡号修正 3.开关所有挂锁卡扣指令合并优化

Frankensteinly 10 月之前
父節點
當前提交
2ac8452b15

+ 2 - 19
app/src/main/java/com/grkj/iscs/activity/test/ModbusActivity.kt

@@ -92,23 +92,6 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
             }
         }
 
-        mBinding?.keyLight?.setOnClickListener {
-            if (mBinding?.leftLight?.text.toString().isEmpty()) {
-                ToastUtils.tip("请输入左灯操作")
-                return@setOnClickListener
-            }
-            if (mBinding?.rightLight?.text.toString().isEmpty()) {
-                ToastUtils.tip("请输入右灯操作")
-                return@setOnClickListener
-            }
-            mBinding?.keyLight?.setOnClickListener {
-                // TODO 暂时写死,调试用
-                ModBusController.controlKeyLight(1, mBinding?.leftLight?.text.toString().toInt(), mBinding?.rightLight?.text.toString().toInt()) {
-                    LogUtil.i("钥匙灯操作 : ${it.toHexStrings()}")
-                }
-            }
-        }
-
         mBinding?.openKeyBuckle?.setOnClickListener {
             println("____________________________________")
             // TODO 暂时写死,调试用
@@ -128,11 +111,11 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
         }
 
         mBinding?.closeAllLockBuckles?.setOnClickListener {
-            ModBusController.closeAllLockBuckles()
+            ModBusController.controlAllLockBuckles(false)
         }
 
         mBinding?.openAllLockBuckles?.setOnClickListener {
-            ModBusController.openAllLockBuckles()
+            ModBusController.controlAllLockBuckles(true)
         }
 
         mBinding?.deviceList?.setOnClickListener {

+ 3 - 0
app/src/main/java/com/grkj/iscs/dialog/CardLoginDialog.kt

@@ -5,6 +5,8 @@ import android.view.InputDevice
 import android.view.KeyEvent
 import com.grkj.iscs.base.BaseDialog
 import com.grkj.iscs.databinding.DialogCardLoginBinding
+import com.grkj.iscs.extentions.toByteArrays
+import com.grkj.iscs.extentions.toHexStrings
 
 class CardLoginDialog(ctx: Context, private var callBack: ((String) -> Unit)? = null) :
     BaseDialog<DialogCardLoginBinding>(ctx) {
@@ -30,6 +32,7 @@ class CardLoginDialog(ctx: Context, private var callBack: ((String) -> Unit)? =
 //            }
             // 检测到回车开始处理
             if (event.keyCode == 66) {
+                cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
                 callBack?.invoke(cardNo)
                 // 重置cardNo
                 cardNo = ""

+ 10 - 0
app/src/main/java/com/grkj/iscs/extentions/Long.kt

@@ -7,4 +7,14 @@ fun Long.toByteArray(): ByteArray {
     return ByteBuffer.allocate(java.lang.Long.BYTES)
         .order(ByteOrder.LITTLE_ENDIAN)
         .putLong(this).array()
+}
+
+fun Long.toByteArrays(capability: Int = 4): ByteArray {
+//    require(capability in 1..4) { "Length must be between 1 and 4" }
+    val bytes = ByteArray(capability)
+    for (i in 0 until capability) {
+//        bytes[capability - i - 1] = ((this ushr (i * 8)) and 0xFF).toByte() // 大端模式
+        bytes[i] = ((this ushr (i * 8)) and 0xFF).toByte()  // 小端模式
+    }
+    return bytes
 }

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

@@ -166,7 +166,6 @@ object ModBusController {
     private fun initKey() {
         LogUtil.i("initKey : $dockList")
         dockList.filter { it.type == DOCK_TYPE_KEY || it.type == DOCK_TYPE_PORTABLE }.forEach { dockBean ->
-            controlKeyLight(dockBean.addr.toInt() - 1, 2, 2)
             dockBean.getKeyList().forEach { key ->
                 if (key.isExist) {
                     LogUtil.i("initKey : ${dockBean.addr.toInt() - 1} : ${key.isLeft}")
@@ -402,20 +401,11 @@ object ModBusController {
         }
     }
 
-    fun openAllLockBuckles() {
+    fun controlAllLockBuckles(isOpen: Boolean) {
         dockList.filter { it.type == DOCK_TYPE_LOCK || it.type == DOCK_TYPE_PORTABLE }.forEach { dockBean ->
             val list = dockBean.getLockList().stream().map { it.idx }.collect(Collectors.toList())
-            controlLockBuckle(true, dockBean.addr.toInt() - 1, list) {
-                LogUtil.i("开所有锁卡扣 : ${it.toHexStrings()}")
-            }
-        }
-    }
-
-    fun closeAllLockBuckles() {
-        dockList.filter { it.type == DOCK_TYPE_LOCK || it.type == DOCK_TYPE_PORTABLE }.forEach { dockBean ->
-            val list = dockBean.getLockList().stream().map { it.idx }.collect(Collectors.toList())
-            controlLockBuckle(false, dockBean.addr.toInt() - 1, list) {
-                LogUtil.i("关所有锁卡扣 : ${it.toHexStrings()}")
+            controlLockBuckle(isOpen, dockBean.addr.toInt() - 1, list) {
+                LogUtil.i("${if (isOpen) "开启" else "关闭"}所有锁卡扣 : ${it.toHexStrings()}")
             }
         }
     }

+ 0 - 35
app/src/main/res/layout/activity_modbus.xml

@@ -145,41 +145,6 @@
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:gravity="center_vertical">
-
-        <EditText
-            android:id="@+id/leftLight"
-            android:layout_width="100dp"
-            android:layout_height="40dp"
-            android:background="#852852"
-            android:hint="Key Left Light"
-            android:text="0"
-            android:inputType="number"
-            android:textColorHint="@color/white"
-            android:textColor="@color/white"
-            android:layout_margin="10dp"/>
-
-        <EditText
-            android:id="@+id/rightLight"
-            android:layout_width="100dp"
-            android:layout_height="40dp"
-            android:background="#852852"
-            android:hint="Key Right Light"
-            android:text="0"
-            android:inputType="number"
-            android:textColorHint="@color/white"
-            android:textColor="@color/white"
-            android:layout_margin="10dp"/>
-
-        <Button
-            android:id="@+id/keyLight"
-            android:layout_width="100dp"
-            android:layout_height="40dp"
-            android:minWidth="0dp"
-            android:minHeight="0dp"
-            android:text="Key Light"
-            android:textSize="8sp"
-            android:layout_margin="5dp"/>
-
         <Button
             android:id="@+id/openKeyBuckle"
             android:layout_width="100dp"