Pārlūkot izejas kodu

调整演示界面

Frankensteinly 1 gadu atpakaļ
vecāks
revīzija
ea41a97698

+ 1 - 0
app/src/main/java/com/grkj/iscs/activity/ModbusActivity.kt

@@ -78,6 +78,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
                                         ModBusController.readPortalCaseCardRfid(dockBean.addr.toInt() - 1) { res ->
                                             val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
                                             println("卡片RFID : $rfid")
+                                            ToastUtils.tip("卡片RFID : $rfid")
                                         }
                                     }
                                     DEVICE_TYPE_FINGERPRINT -> {

+ 7 - 8
app/src/main/java/com/grkj/iscs/model/DeviceConst.kt

@@ -1,17 +1,16 @@
 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 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          // 锁具
     const val DEVICE_TYPE_CARD = 2          // 卡

+ 48 - 0
app/src/main/java/com/grkj/iscs/presentation/PresentationPresenter.kt

@@ -1,7 +1,18 @@
 package com.grkj.iscs.presentation
 
 import com.grkj.iscs.base.BasePresenter
+import com.grkj.iscs.extentions.removeLeadingZeros
+import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.ModBusController
+import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_CARD
+import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_FINGERPRINT
+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_KEY
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
+import com.grkj.iscs.util.ToastUtils
+import com.grkj.iscs.util.log.LogUtil
 
 class PresentationPresenter : BasePresenter<IPresentationView>() {
     fun initModbus() {
@@ -12,5 +23,42 @@ class PresentationPresenter : BasePresenter<IPresentationView>() {
 
 
         ModBusController.initDevicesStatus()
+
+        ModBusController.registerStatusListener(this) { res ->
+            LogUtil.i("设备状态:${(res as List<ByteArray>).map { it.toHexStrings() }}")
+            res.forEach { bytes ->
+                val dockBean = ModBusController.updateStatus(bytes) ?: return@forEach
+                when (dockBean.type) {
+                    DOCK_TYPE_PORTABLE -> {
+                        // TODO 便携式待完善
+                        dockBean.deviceList.forEach { deviceBean ->
+                            if (deviceBean.isExist) {
+                                when (deviceBean.type) {
+                                    DEVICE_TYPE_KEY -> {
+
+                                    }
+                                    DEVICE_TYPE_LOCK -> {
+                                        ModBusController.readLockRfid(dockBean.addr.toInt() - 1, deviceBean.idx) { res ->
+                                            val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
+                                            ModBusController.updateLockRfid(dockBean.addr.toInt(), deviceBean.idx, rfid)
+                                        }
+                                    }
+                                    DEVICE_TYPE_CARD -> {
+                                        ModBusController.readPortalCaseCardRfid(dockBean.addr.toInt() - 1) { res ->
+                                            val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
+                                            println("卡片RFID : $rfid")
+                                            ToastUtils.tip("卡片RFID : $rfid")
+                                        }
+                                    }
+                                    DEVICE_TYPE_FINGERPRINT -> {
+
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
     }
 }

+ 11 - 7
app/src/main/res/layout/activity_presentation.xml

@@ -8,7 +8,7 @@
     android:orientation="vertical"
     android:overScrollMode="never"
     android:paddingHorizontal="100px"
-    android:paddingTop="100px"
+    android:paddingTop="20px"
     android:scrollbars="none"
     tools:context=".presentation.PresentationActivity">
 
@@ -130,32 +130,36 @@
             android:orientation="horizontal">
 
             <TextView
-                android:layout_width="@dimen/selectable_input_width"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:layout_marginLeft="20px"
+                android:layout_weight="1"
+                android:gravity="center"
                 android:text="@string/start_time"
                 android:textColor="@color/main_color"
                 android:textSize="@dimen/common_text_size" />
 
             <TextView
                 android:id="@+id/tv_start_time"
-                android:layout_width="400px"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
+                android:layout_weight="2"
                 android:background="@drawable/selectable_input_text_bg"
                 android:textSize="@dimen/common_text_size" />
 
             <TextView
-                android:layout_width="@dimen/selectable_input_width"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:layout_marginLeft="100px"
+                android:layout_weight="1"
+                android:gravity="center"
                 android:text="@string/end_time"
                 android:textColor="@color/main_color"
                 android:textSize="@dimen/common_text_size" />
 
             <TextView
                 android:id="@+id/tv_end_time"
-                android:layout_width="400px"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
+                android:layout_weight="2"
                 android:background="@drawable/selectable_input_text_bg"
                 android:textSize="@dimen/common_text_size" />
         </LinearLayout>