|
@@ -81,13 +81,16 @@ class CtrlActivity : ComponentActivity() {
|
|
|
val cmd = intent.getIntExtra("cmd_id", -1)
|
|
val cmd = intent.getIntExtra("cmd_id", -1)
|
|
|
val device = CommManager.deviceList.find { it.frame.cmd == cmd }
|
|
val device = CommManager.deviceList.find { it.frame.cmd == cmd }
|
|
|
if (device == null) return
|
|
if (device == null) return
|
|
|
- Box(modifier = Modifier.padding(10.dp, pv.calculateTopPadding())) {
|
|
|
|
|
|
|
+ Box(modifier = Modifier.padding(10.dp, pv.calculateTopPadding()).fillMaxSize()) {
|
|
|
when (device.deviceType) {
|
|
when (device.deviceType) {
|
|
|
DeviceType.SLOT_KEY -> CtrlKeySlot(device as DeviceKeySlot)
|
|
DeviceType.SLOT_KEY -> CtrlKeySlot(device as DeviceKeySlot)
|
|
|
DeviceType.SLOT_LOCK -> CtrlLock5Slot(device as DeviceLockSlot)
|
|
DeviceType.SLOT_LOCK -> CtrlLock5Slot(device as DeviceLockSlot)
|
|
|
// 未知设备
|
|
// 未知设备
|
|
|
else -> Text("未知设备,无法控制")
|
|
else -> Text("未知设备,无法控制")
|
|
|
}
|
|
}
|
|
|
|
|
+ Button({ finish() }, modifier = Modifier.align(Alignment.BottomEnd)) {
|
|
|
|
|
+ Text("返回")
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -115,7 +118,7 @@ class CtrlActivity : ComponentActivity() {
|
|
|
}) { Text("全关") }
|
|
}) { Text("全关") }
|
|
|
}
|
|
}
|
|
|
LazyVerticalGrid(
|
|
LazyVerticalGrid(
|
|
|
- columns = GridCells.Adaptive(minSize = 180.dp),
|
|
|
|
|
|
|
+ columns = GridCells.Adaptive(minSize = 160.dp),
|
|
|
contentPadding = PaddingValues(10.dp, 10.dp),
|
|
contentPadding = PaddingValues(10.dp, 10.dp),
|
|
|
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
|
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
|
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
|
@@ -129,18 +132,19 @@ class CtrlActivity : ComponentActivity() {
|
|
|
override fun onDeviceChanged(device: Device) {
|
|
override fun onDeviceChanged(device: Device) {
|
|
|
super.onDeviceChanged(device)
|
|
super.onDeviceChanged(device)
|
|
|
if (dev.frame.cmd == device.frame.cmd) {
|
|
if (dev.frame.cmd == device.frame.cmd) {
|
|
|
- (device.deviceStatus as DeviceStatusKeySlot).slotList.find { it.ch == state.ch && it.isChanged() }?.let {
|
|
|
|
|
- isLock.value = it.isSlotLock
|
|
|
|
|
- isUsed.value = it.isUsed
|
|
|
|
|
- rfid.value = it.rfid
|
|
|
|
|
- if (it.isChanged() && rfid.value.isNotEmpty() && rfid.value != lastRFID) {
|
|
|
|
|
- lastRFID = rfid.value
|
|
|
|
|
- // 硬件逻辑已经存在
|
|
|
|
|
- dev.ctrlSlotLockAndCharge(state.ch, true, true)
|
|
|
|
|
- } else if (rfid.value.isEmpty()) {
|
|
|
|
|
- lastRFID = ""
|
|
|
|
|
|
|
+ (device.deviceStatus as DeviceStatusKeySlot).slotList.find { it.ch == state.ch && it.isChanged() }
|
|
|
|
|
+ ?.let {
|
|
|
|
|
+ isLock.value = it.isSlotLock
|
|
|
|
|
+ isUsed.value = it.isUsed
|
|
|
|
|
+ rfid.value = it.rfid
|
|
|
|
|
+ if (it.isChanged() && rfid.value.isNotEmpty() && rfid.value != lastRFID) {
|
|
|
|
|
+ lastRFID = rfid.value
|
|
|
|
|
+ // 硬件逻辑已经存在
|
|
|
|
|
+ dev.ctrlSlotLockAndCharge(state.ch, true, true)
|
|
|
|
|
+ } else if (rfid.value.isEmpty()) {
|
|
|
|
|
+ lastRFID = ""
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -172,23 +176,35 @@ class CtrlActivity : ComponentActivity() {
|
|
|
Row {
|
|
Row {
|
|
|
Button(
|
|
Button(
|
|
|
{ dev.ctrlSlotLockAndCharge(state.ch, false, false) },
|
|
{ dev.ctrlSlotLockAndCharge(state.ch, false, false) },
|
|
|
- contentPadding = PaddingValues(horizontal = 6.dp, vertical = 0.dp)
|
|
|
|
|
|
|
+ contentPadding = PaddingValues(
|
|
|
|
|
+ horizontal = 6.dp,
|
|
|
|
|
+ vertical = 0.dp
|
|
|
|
|
+ )
|
|
|
) { Text("打开锁") }
|
|
) { Text("打开锁") }
|
|
|
Spacer(modifier = Modifier.weight(1f))
|
|
Spacer(modifier = Modifier.weight(1f))
|
|
|
Button(
|
|
Button(
|
|
|
{ dev.ctrlSlotLockAndCharge(state.ch, true, true) },
|
|
{ dev.ctrlSlotLockAndCharge(state.ch, true, true) },
|
|
|
- contentPadding = PaddingValues(horizontal = 6.dp, vertical = 0.dp)
|
|
|
|
|
|
|
+ contentPadding = PaddingValues(
|
|
|
|
|
+ horizontal = 6.dp,
|
|
|
|
|
+ vertical = 0.dp
|
|
|
|
|
+ )
|
|
|
) { Text("关闭锁") }
|
|
) { Text("关闭锁") }
|
|
|
}
|
|
}
|
|
|
Row {
|
|
Row {
|
|
|
Button(
|
|
Button(
|
|
|
{ dev.ctrlSlotCharge(state.ch, true) },
|
|
{ dev.ctrlSlotCharge(state.ch, true) },
|
|
|
- contentPadding = PaddingValues(horizontal = 6.dp, vertical = 0.dp)
|
|
|
|
|
|
|
+ contentPadding = PaddingValues(
|
|
|
|
|
+ horizontal = 6.dp,
|
|
|
|
|
+ vertical = 0.dp
|
|
|
|
|
+ )
|
|
|
) { Text("开充电") }
|
|
) { Text("开充电") }
|
|
|
Spacer(modifier = Modifier.weight(1f))
|
|
Spacer(modifier = Modifier.weight(1f))
|
|
|
Button(
|
|
Button(
|
|
|
{ dev.ctrlSlotCharge(state.ch, false) },
|
|
{ dev.ctrlSlotCharge(state.ch, false) },
|
|
|
- contentPadding = PaddingValues(horizontal = 6.dp, vertical = 0.dp)
|
|
|
|
|
|
|
+ contentPadding = PaddingValues(
|
|
|
|
|
+ horizontal = 6.dp,
|
|
|
|
|
+ vertical = 0.dp
|
|
|
|
|
+ )
|
|
|
) { Text("关充电") }
|
|
) { Text("关充电") }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -226,20 +242,21 @@ class CtrlActivity : ComponentActivity() {
|
|
|
override fun onDeviceChanged(device: Device) {
|
|
override fun onDeviceChanged(device: Device) {
|
|
|
super.onDeviceChanged(device)
|
|
super.onDeviceChanged(device)
|
|
|
if (dev.frame.cmd == device.frame.cmd) {
|
|
if (dev.frame.cmd == device.frame.cmd) {
|
|
|
- (device.deviceStatus as DeviceStatusLockSlot).slotList.find { it.ch == state.ch && it.isChanged() }?.let {
|
|
|
|
|
- isLock.value = it.isSlotLock
|
|
|
|
|
- isUsed.value = it.isUsed
|
|
|
|
|
- rfid.value = it.rfid
|
|
|
|
|
- // Log.d("xiaoming", "${state.ch} ${it.isChanged} ${rfid.value} ${lastRFID}")
|
|
|
|
|
- // 这里可以做一些其他逻辑,比如如果当前有锁存在,但是没上锁,这里可执行上锁操作
|
|
|
|
|
- if (it.isChanged() && rfid.value.isNotEmpty() && rfid.value != lastRFID) {
|
|
|
|
|
- lastRFID = rfid.value
|
|
|
|
|
- // 硬件逻辑已存在
|
|
|
|
|
- // dev.ctrlSlotLock(state.ch, true).writeByFrame()
|
|
|
|
|
- } else if (rfid.value.isEmpty()) {
|
|
|
|
|
- lastRFID = ""
|
|
|
|
|
|
|
+ (device.deviceStatus as DeviceStatusLockSlot).slotList.find { it.ch == state.ch && it.isChanged() }
|
|
|
|
|
+ ?.let {
|
|
|
|
|
+ isLock.value = it.isSlotLock
|
|
|
|
|
+ isUsed.value = it.isUsed
|
|
|
|
|
+ rfid.value = it.rfid
|
|
|
|
|
+ // Log.d("xiaoming", "${state.ch} ${it.isChanged} ${rfid.value} ${lastRFID}")
|
|
|
|
|
+ // 这里可以做一些其他逻辑,比如如果当前有锁存在,但是没上锁,这里可执行上锁操作
|
|
|
|
|
+ if (it.isChanged() && rfid.value.isNotEmpty() && rfid.value != lastRFID) {
|
|
|
|
|
+ lastRFID = rfid.value
|
|
|
|
|
+ // 硬件逻辑已存在
|
|
|
|
|
+ // dev.ctrlSlotLock(state.ch, true).writeByFrame()
|
|
|
|
|
+ } else if (rfid.value.isEmpty()) {
|
|
|
|
|
+ lastRFID = ""
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|