修改非使用状态下推送d331的bug

This commit is contained in:
weidong 2024-02-04 19:40:50 +08:00
parent 440d8aebb2
commit cbcaca046c

View File

@ -30,11 +30,21 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
@Override
public Void execute(D331RtcmMessage message) {
String id = message.getId();
// 补齐tenantId
Device device1 = deviceService.findByDeviceId(id);
if(device1 == null || device1.getOpMode() == GnssDevice.OP_MODE_UNUSE) return null;
message.setTenantId(device1.getTenantId());
device1.updateD331Bytes(message.getLen());
if (logger.isDebugEnabled()) {
logger.debug("receive d331 rtcm message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
if(device1.getOpMode() == GnssDevice.OP_MODE_USE) {
byte[] forwardBytes = message.getSrcData();
// 要求快速转发因此用缓存不要每次都查数据库
List<Device> deviceList = deviceService.findByParentId(id);
for (Device device : deviceList) {
if(device.getOpMode()!=GnssDevice.OP_MODE_USE) continue;
if (device.getOpMode() != GnssDevice.OP_MODE_USE) continue;
String deviceId = device.getDeviceId();
OnlineChannels.INSTANCE.get(deviceId).ifPresent(deviceChannel -> {
if (logger.isDebugEnabled()) {
@ -45,16 +55,8 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
deviceChannel.writeAndFlush(buf);
});
}
// 补齐tenantId
Device device1 = deviceService.findByDeviceId(message.getId());
if(device1 == null || device1.getOpMode()!= GnssDevice.OP_MODE_USE) return null;
message.setTenantId(device1.getTenantId());
device1.updateD331Bytes(message.getLen());
if (logger.isDebugEnabled()) {
logger.debug("receive d331 rtcm message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
Gga gga = message.getGga();
if(gga != null) {
device1.updateSatelitesNum(gga.getSatellitesInUsed());