From 918fe5452dd001a442e449fe2192e47273de58e5 Mon Sep 17 00:00:00 2001 From: zms Date: Thu, 27 Feb 2025 15:10:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=A4=87=E9=80=89=E5=9F=BA?= =?UTF-8?q?=E7=AB=99=E6=8E=A8=E9=80=81bug=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sideslope/executor/D331RtcmMessageExecutor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java index 36c01c88..ef5c0094 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java @@ -25,7 +25,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; /** @@ -37,6 +39,7 @@ public class D331RtcmMessageExecutor implements Executor private final Logger logger = LoggerFactory.getLogger(this.getClass()); + private static final Map deviceBackupStatus = new ConcurrentHashMap<>(); @Resource(name = "local") private DeviceService deviceService; @Autowired @@ -83,11 +86,18 @@ public class D331RtcmMessageExecutor implements Executor Device primaryBase = deviceService.findByDeviceId(primaryBaseId); // 如果主基站仍然在线,则跳过备选基站的数据 if (primaryBase != null && isBaseStationOnline(primaryBase)) { + if(deviceBackupStatus.remove(deviceId) != null){ + logger.info("设备 {} 从备用基站 {} 切换回主基站 {}", + deviceId, id, primaryBaseId); + } continue; } else { String hexPrimaryBase = String.format("%06x",Integer.parseInt(primaryBaseId)); - System.out.println(hexPrimaryBase); + if(deviceBackupStatus.putIfAbsent(deviceId,true) == null){ + logger.info("设备 {} 从主基站 {} 切换到备用基站 {}", + deviceId, primaryBaseId, id); + } modifyData[5] = (byte) Integer.parseInt(hexPrimaryBase.substring(0,2),16); modifyData[6] = (byte) Integer.parseInt(hexPrimaryBase.substring(2,4),16);