From d2c85d6d3baecfd5f470bfde6ea6ff8a271bef52 Mon Sep 17 00:00:00 2001 From: yarnom Date: Tue, 28 Oct 2025 16:45:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=96=AD=E8=81=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/D331RtcmMessageExecutor.java | 8 +------- .../sideslope/rtkcluster/RtkClusterService.java | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) 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 e8bf4a19..6ac8f14c 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 @@ -127,16 +127,10 @@ public class D331RtcmMessageExecutor implements Executor byte[] srcdata = message.getSrcData(); String rtcm = ByteUtil.bytesToHexString(srcdata); sendToNtrip(id, rtcm); + rtkClusterService.sendRtcm(id, rtcm); - try { - rtkClusterService.sendRtcm(id, rtcm); - } catch (Exception e) { - logger.debug("send to rtkCluster failed for {}: {}", id, e.getMessage()); - } } - - ThreadManager.getFixedThreadPool().submit(() -> { // 原始码流输出到日志文件 -- INFO 级别 // 只有测站开了日志记录,或者消息来自基站,才将原码记录到日志文件 diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/rtkcluster/RtkClusterService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/rtkcluster/RtkClusterService.java index 4a76f87e..2d333eae 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/rtkcluster/RtkClusterService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/rtkcluster/RtkClusterService.java @@ -5,6 +5,7 @@ import com.imdroid.secapi.dto.RtkrcvProfile; import com.imdroid.secapi.dto.RtkrcvProfileMapper; import com.imdroid.secapi.dto.RtkrcvSession; import com.imdroid.secapi.dto.RtkrcvSessionMapper; +import com.imdroid.sideslope.bd.RtcmGgaUtil; import com.imdroid.sideslope.ntrip.RtkrcvConfigService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -151,9 +152,17 @@ public class RtkClusterService implements ApplicationRunner { public void sendRtcm(String deviceId, String hexRtcm) { DeviceEndpoint ep = endpoints.get(deviceId); - if (ep == null) return; - byte[] data = ByteUtil.hexStringTobyte(hexRtcm); - ep.enqueueRtcm(data); + if (ep == null || hexRtcm == null || hexRtcm.isEmpty()) return; + try { + java.util.List frames = RtcmGgaUtil.getRtcms(hexRtcm); + if (frames != null && !frames.isEmpty()) { + for (String f : frames) { + if (f != null && !f.isEmpty()) { + ep.enqueueRtcm(ByteUtil.hexStringTobyte(f)); + } + } + } + } catch (Exception ignore) {} } public void sendRtcmBytes(String deviceId, byte[] data) {