diff --git a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java index 33301bfa..d127d578 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java +++ b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java @@ -18,6 +18,10 @@ public class GnssDevice { public static final short TYPE_ROVER = 0; public static final short TYPE_REFERENCE_STATION = 1; + public static final short OP_MODE_USE = 0; + public static final short OP_MODE_CHECK = 1; + public static final short OP_MODE_UNUSE = 2; + @TableId(value = "id", type = IdType.AUTO) private Long id; private Integer tenantid; 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 1c201174..84b68235 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 @@ -1,5 +1,6 @@ package com.imdroid.sideslope.executor; +import com.imdroid.secapi.dto.GnssDevice; import com.imdroid.sideslope.message.D331RtcmMessage; import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.DeviceService; @@ -32,7 +33,7 @@ public class D331RtcmMessageExecutor implements Executor } // 补齐tenantId Device device1 = deviceService.findByDeviceId(message.getId()); - if(device1 == null) return null; + if(device1 == null || device1.getOpMode()!= GnssDevice.OP_MODE_USE) return null; message.setTenantId(device1.getTenantId()); device1.updateD331Bytes(message.getLen()); @@ -41,6 +42,7 @@ public class D331RtcmMessageExecutor implements Executor // 要求快速转发,因此用缓存,不要每次都查数据库 List deviceList = deviceService.findByParentId(id); for (Device device : deviceList) { + if(device.getOpMode()!=GnssDevice.OP_MODE_USE) continue; String deviceId = device.getDeviceId(); OnlineChannels.INSTANCE.get(deviceId).ifPresent(deviceChannel -> { if (logger.isDebugEnabled()) { diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/DbDeviceServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/DbDeviceServiceImpl.java index 39082c28..767ee01a 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/DbDeviceServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/DbDeviceServiceImpl.java @@ -34,6 +34,7 @@ public class DbDeviceServiceImpl implements DeviceService { device.setName(gnssDevice.getName()); device.setProjectId(gnssDevice.getProject_id()); device.setCalcGroupId(gnssDevice.getCalc_group_id()); + device.setOpMode(gnssDevice.getOpmode()); return device; } @@ -51,6 +52,7 @@ public class DbDeviceServiceImpl implements DeviceService { device.setName(gnssDevice.getName()); device.setProjectId(gnssDevice.getProject_id()); device.setCalcGroupId(gnssDevice.getCalc_group_id()); + device.setOpMode(gnssDevice.getOpmode()); deviceList.add(device); } return deviceList; 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 c14f0f70..66848ef8 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 @@ -32,6 +32,7 @@ public class Device { private Integer deviceType; private Integer calcGroupId; + private Short opMode; int d3xxbytes = 0; int b562bytes = 0;