Browse Source

1. 补充仓位状态防抖功能
2. 对外提供设备列表直接获取的方法

bjb 3 tháng trước cách đây
mục cha
commit
8e023b3f14

+ 2 - 2
.idea/deploymentTargetSelector.xml

@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2026-02-03T02:16:51.316874600Z">
+        <DropdownSelection timestamp="2026-02-03T05:12:38.541006400Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="Default" identifier="serial=192.168.1.150:5555;connection=46f07cc6" />
+              <DeviceId pluginId="PhysicalDevice" identifier="serial=9bbbb43d745c4330" />
             </handle>
           </Target>
         </DropdownSelection>

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

@@ -21,6 +21,7 @@ import androidx.compose.runtime.Composable
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.mutableStateListOf
+import androidx.compose.runtime.remember
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
@@ -42,7 +43,6 @@ import com.iscs.comm.intf.IDeviceListener
 import com.iscs.comm.manager.BleManager
 import com.iscs.comm.ui.theme.CommDemoTheme
 import com.iscs.comm.utils.ISCSLog
-import kotlinx.coroutines.delay
 
 class MainActivity : ComponentActivity() {
 
@@ -55,15 +55,15 @@ class MainActivity : ComponentActivity() {
         setContent {
             CommDemoTheme {
                 Scaffold(modifier = Modifier.fillMaxSize()) { pv ->
-                    buildDeviceList(pv)
+                    BuildDeviceList(pv)
                 }
             }
         }
     }
 
     @Composable
-    fun buildDeviceList(pv: PaddingValues) {
-        val list = mutableStateListOf<Device>()
+    fun BuildDeviceList(pv: PaddingValues) {
+        val list = remember { mutableStateListOf<Device>() }
         val listener = object : IDeviceListener() {
 
             override fun onDeviceList(devices: List<Device>) {

+ 7 - 0
transport/src/main/java/com/iscs/comm/CommManager.kt

@@ -68,6 +68,13 @@ object CommManager {
         this.deviceChangeListeners.remove(listener)
     }
 
+    /**
+     * 对外提供直接获取设备列表的方式
+     */
+    fun getDeviceList(): List<Device> {
+        return ArrayList(deviceList)
+    }
+
     /**
      * 发送数据帧,不带响应
      *

+ 2 - 0
transport/src/main/java/com/iscs/comm/entity/device/status/DeviceStatusKeySlot.kt

@@ -37,6 +37,8 @@ class DeviceStatusKeySlot : DeviceStatus() {
                 val isNotEmpty = data[7] == '1'
                 val find = slotList.find { it.ch == ch }
                 find?.isUsed = isNotEmpty
+                // 防止二次跳动,这里认为只要仓内无设备,自动清除rfid
+                if (find?.isUsed != true) find?.rfid = ""
             }
         }
     }

+ 2 - 0
transport/src/main/java/com/iscs/comm/entity/device/status/DeviceStatusLockSlot.kt

@@ -37,6 +37,8 @@ class DeviceStatusLockSlot() : DeviceStatus() {
                 val isNotEmpty = data[i] == '1'
                 val find = slotList.find { it.ch == ch }
                 find?.isUsed = isNotEmpty
+                // 防止二次跳动,这里认为只要仓内无设备,自动清除rfid
+                if (find?.isUsed != true) find?.rfid = ""
             }
         }
     }