|
@ -955,6 +955,8 @@ public class GateABController { |
|
|
public void updateGateState(boolean gateAOpen, boolean gateBOpen, boolean udpConnected, String errorMessage) { |
|
|
public void updateGateState(boolean gateAOpen, boolean gateBOpen, boolean udpConnected, String errorMessage) { |
|
|
boolean stateChanged = false; |
|
|
boolean stateChanged = false; |
|
|
boolean shouldShowDialog = false; |
|
|
boolean shouldShowDialog = false; |
|
|
|
|
|
boolean oldShouldShow = false; |
|
|
|
|
|
boolean newShouldShow = false; |
|
|
|
|
|
|
|
|
// 检查状态是否发生变化 |
|
|
// 检查状态是否发生变化 |
|
|
if (currentGateState.gateAOpen != gateAOpen || |
|
|
if (currentGateState.gateAOpen != gateAOpen || |
|
@ -963,18 +965,14 @@ public class GateABController { |
|
|
stateChanged = true; |
|
|
stateChanged = true; |
|
|
|
|
|
|
|
|
// 检查是否需要触发门禁不可用弹窗 |
|
|
// 检查是否需要触发门禁不可用弹窗 |
|
|
boolean oldShouldShow = currentGateState.shouldShowUnavailableDialog(); |
|
|
|
|
|
|
|
|
|
|
|
// 暂时更新状态以检查新状态 |
|
|
|
|
|
boolean tempGateAOpen = currentGateState.gateAOpen; |
|
|
|
|
|
boolean tempGateBOpen = currentGateState.gateBOpen; |
|
|
|
|
|
boolean tempUdpConnected = currentGateState.udpConnected; |
|
|
|
|
|
|
|
|
oldShouldShow = currentGateState.shouldShowUnavailableDialog(); |
|
|
|
|
|
|
|
|
|
|
|
// 更新状态信息 |
|
|
currentGateState.gateAOpen = gateAOpen; |
|
|
currentGateState.gateAOpen = gateAOpen; |
|
|
currentGateState.gateBOpen = gateBOpen; |
|
|
currentGateState.gateBOpen = gateBOpen; |
|
|
currentGateState.udpConnected = udpConnected; |
|
|
currentGateState.udpConnected = udpConnected; |
|
|
|
|
|
|
|
|
boolean newShouldShow = currentGateState.shouldShowUnavailableDialog(); |
|
|
|
|
|
|
|
|
newShouldShow = currentGateState.shouldShowUnavailableDialog(); |
|
|
|
|
|
|
|
|
// 如果从正常状态变为需要显示弹窗状态,则触发弹窗 |
|
|
// 如果从正常状态变为需要显示弹窗状态,则触发弹窗 |
|
|
if (!oldShouldShow && newShouldShow) { |
|
|
if (!oldShouldShow && newShouldShow) { |
|
@ -983,12 +981,14 @@ public class GateABController { |
|
|
} else if (oldShouldShow && !newShouldShow) { |
|
|
} else if (oldShouldShow && !newShouldShow) { |
|
|
LogManager.logInfo(TAG, "门状态已恢复正常,可以隐藏门禁不可用弹窗"); |
|
|
LogManager.logInfo(TAG, "门状态已恢复正常,可以隐藏门禁不可用弹窗"); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 更新状态信息 |
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
// 即使状态没有变化,也要更新状态信息 |
|
|
currentGateState.gateAOpen = gateAOpen; |
|
|
currentGateState.gateAOpen = gateAOpen; |
|
|
currentGateState.gateBOpen = gateBOpen; |
|
|
currentGateState.gateBOpen = gateBOpen; |
|
|
currentGateState.udpConnected = udpConnected; |
|
|
currentGateState.udpConnected = udpConnected; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 更新其他状态信息 |
|
|
currentGateState.lastUpdateTime = System.currentTimeMillis(); |
|
|
currentGateState.lastUpdateTime = System.currentTimeMillis(); |
|
|
currentGateState.errorMessage = errorMessage != null ? errorMessage : ""; |
|
|
currentGateState.errorMessage = errorMessage != null ? errorMessage : ""; |
|
|
|
|
|
|
|
|