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 6918e503..04dcb8f1 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 @@ -7,6 +7,7 @@ import com.imdroid.sideslope.bd.Gga; import com.imdroid.sideslope.message.D331RtcmMessage; import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.DeviceService; +import com.imdroid.sideslope.server.DeviceChannel; import com.imdroid.sideslope.server.OnlineChannels; import com.imdroid.sideslope.service.DataPersistService; import io.netty.buffer.ByteBuf; @@ -52,17 +53,27 @@ public class D331RtcmMessageExecutor implements Executor 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()) { - logger.debug("forward d331 rtcm message to device {}", deviceId); + if(deviceId.equals("2419385")){ + DeviceChannel channel = OnlineChannels.INSTANCE.getConfigChannel(deviceId); + if(channel != null && channel.isOnline()){ + ByteBuf buf = Unpooled.buffer(); + buf.writeBytes(forwardBytes); + channel.writeAndFlush(buf); } - if(deviceId.startsWith("2307")){ - forwardBytes[2] = (byte) (forwardBytes[2]&0x07);//兼容不带序号的测站 - } - ByteBuf buf = Unpooled.buffer(); - buf.writeBytes(forwardBytes); - deviceChannel.writeAndFlush(buf); - }); + } + else { + OnlineChannels.INSTANCE.get(deviceId).ifPresent(deviceChannel -> { + if (logger.isDebugEnabled()) { + logger.debug("forward d331 rtcm message to device {}", deviceId); + } + if (deviceId.startsWith("2307")) { + forwardBytes[2] = (byte) (forwardBytes[2] & 0x07);//兼容不带序号的测站 + } + ByteBuf buf = Unpooled.buffer(); + buf.writeBytes(forwardBytes); + deviceChannel.writeAndFlush(buf); + }); + } } }