|
|
@ -443,11 +443,15 @@ public class OxUDP { |
|
|
|
// Log.d(TAG, "门禁状态 - A门: " + (gateAState ? "开启" : "关闭") + |
|
|
|
// ", B门: " + (gateBState ? "开启" : "关闭")); |
|
|
|
|
|
|
|
Log.e(TAG, "parseGateState: isFirstStateUpdate:"+isFirstStateUpdate +" |lastGateAState:"+lastGateAState+" |lastGateBState:"+lastGateBState); |
|
|
|
Log.e(TAG, "parseGateState: isFirstStateUpdate:" + isFirstStateUpdate + |
|
|
|
" |lastGateAState:" + lastGateAState + " |lastGateBState:" + lastGateBState + |
|
|
|
" |currentGateAState:" + gateAState + " |currentGateBState:" + gateBState); |
|
|
|
|
|
|
|
// 检查状态是否发生变化,只有变化时才通知监听器 |
|
|
|
if (isFirstStateUpdate || gateAState != lastGateAState || gateBState != lastGateBState) { |
|
|
|
Log.i(TAG, "门禁状态变化 - A门: " + (lastGateAState ? "开启" : "关闭") + " -> " + (gateAState ? "开启" : "关闭") + |
|
|
|
", B门: " + (lastGateBState ? "开启" : "关闭") + " -> " + (gateBState ? "开启" : "关闭")); |
|
|
|
", B门: " + (lastGateBState ? "开启" : "关闭") + " -> " + (gateBState ? "开启" : "关闭") + |
|
|
|
" [首次更新: " + isFirstStateUpdate + "]"); |
|
|
|
|
|
|
|
// 更新状态缓存 |
|
|
|
lastGateAState = gateAState; |
|
|
@ -457,9 +461,9 @@ public class OxUDP { |
|
|
|
// 通知监听器状态变化 |
|
|
|
notifyGateStateUpdate(gateAState, gateBState, response); |
|
|
|
} else { |
|
|
|
// 状态无变化,不通知监听器,只记录调试日志 |
|
|
|
// Log.d(TAG, "门禁状态无变化 - A门: " + (gateAState ? "开启" : "关闭") + |
|
|
|
// ", B门: " + (gateBState ? "开启" : "关闭")); |
|
|
|
// 状态无变化,记录调试日志 |
|
|
|
Log.d(TAG, "门禁状态无变化 - A门: " + (gateAState ? "开启" : "关闭") + |
|
|
|
", B门: " + (gateBState ? "开启" : "关闭") + " [跳过通知]"); |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
@ -592,6 +596,19 @@ public class OxUDP { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 重置门状态缓存(用于恢复监听器链条) |
|
|
|
*/ |
|
|
|
public void resetGateStateCache() { |
|
|
|
Log.i(TAG, "重置前的门状态缓存 - A门: " + lastGateAState + ", B门: " + lastGateBState + ", 首次更新: " + isFirstStateUpdate); |
|
|
|
|
|
|
|
lastGateAState = false; |
|
|
|
lastGateBState = false; |
|
|
|
isFirstStateUpdate = true; |
|
|
|
|
|
|
|
Log.i(TAG, "门状态缓存已重置,下次状态更新将被视为首次更新,确保能正常触发状态变化检测"); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 停止UDP服务 |
|
|
|
*/ |
|
|
|
public void stop() { |
|
|
|