From 0155d29daa54c4e6419ae368570a3a3dc23b23a0 Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 29 Nov 2024 09:27:21 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E5=86=B7=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E5=8A=A8=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sideslope/executor/D3F0SelfCheckMessageExecutor.java | 9 +++------ .../src/main/java/com/imdroid/sideslope/sal/Device.java | 2 ++ .../imdroid/sideslope/service/WarningServiceImpl.java | 6 ++++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java index 53e84877..c24b20cf 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java @@ -4,10 +4,7 @@ import com.imdroid.common.util.DataTypeUtil; import com.imdroid.common.util.HexUtil; import com.imdroid.common.util.ThreadManager; import com.imdroid.secapi.client.BeidouClient; -import com.imdroid.secapi.dto.GnssDevice; -import com.imdroid.secapi.dto.GnssMsg; -import com.imdroid.secapi.dto.GnssMsgMapper; -import com.imdroid.secapi.dto.GnssStatus; +import com.imdroid.secapi.dto.*; import com.imdroid.sideslope.message.D3F0SelfCheckMessage; import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.DeviceService; @@ -104,8 +101,8 @@ public class D3F0SelfCheckMessageExecutor implements Executor= 6){ - //sendF9PColdStartCommand(device); + if((device.getWarningcode()&WarningCfg.TYPE_NO_FIXED_RESULT) !=0){ + sendF9PColdStartCommand(device); logger.info("{}: 连续{}次无固定解和浮点解,发送 F9P 冷启动指令",device.getDeviceId(), device.getNoFixedAndFloatResult()); device.clearNoResultStat(); } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java index cbf8c365..ad270ba0 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/Device.java @@ -74,6 +74,7 @@ public class Device { int fixedNum = 0; int floatNum = 0; LocalDateTime lastValidCalcDataTime; //最近一次有效解 + int warningcode = 0; public void updateRx(int head, int bytes,int count){ lastRxHead = head; @@ -144,6 +145,7 @@ public class Device { public void clearNoResultStat(){ noFixedAndFloatResult = 0; + warningcode = 0; } } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java index d1a17424..2f6f4559 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java @@ -108,6 +108,7 @@ public class WarningServiceImpl implements WarningService { // 根据告警码确定告警级别 status.setWarning(getWarningLevel(status.getWarningcode())); gnssStatusMapper.updateById(status); + device.setWarningcode(status.getWarningcode()); } } /*** @@ -237,6 +238,10 @@ public class WarningServiceImpl implements WarningService { if(status != null) { boolean isUpdated = false; // 清除b562告警 + if((status.getWarningcode() & WarningCfg.TYPE_CONT_INVALID_RESULT) !=0 ) { + status.setWarningcode(status.getWarningcode() & ~WarningCfg.TYPE_CONT_INVALID_RESULT); + isUpdated = true; + } if((status.getWarningcode() & WarningCfg.TYPE_NO_FIXED_RESULT) !=0 ) { status.setWarningcode(status.getWarningcode() & ~WarningCfg.TYPE_NO_FIXED_RESULT); isUpdated = true; @@ -253,6 +258,7 @@ public class WarningServiceImpl implements WarningService { if(isUpdated) { status.setWarning(getWarningLevel(status.getWarningcode())); gnssStatusMapper.updateById(status); + device.setWarningcode(status.getWarningcode()); } } }