From f2ef68a9ae945a4daaec1fbbc4edf295b5a2a8e8 Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 28 Oct 2025 10:06:15 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9d331=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E8=A7=92=E5=BA=A6=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sideslope/message/D331RtcmMessage.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/message/D331RtcmMessage.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/message/D331RtcmMessage.java index a0d80e7d..63b72a48 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/message/D331RtcmMessage.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/message/D331RtcmMessage.java @@ -20,21 +20,22 @@ public class D331RtcmMessage extends BaseMessage { @Override public void decodeBody(ByteBuf src) { // get操作不会移动指针,这样可以确保整个全转发出去 + int pos = 0; this.packetNum = 1; this.len = src.readableBytes();//this.len & 0x7FF;//有可能两个d331粘包 - this.header = src.getUnsignedShort(0); // flag - int onePacketLen = src.getUnsignedShort(2); // length:11 bits + this.header = src.getUnsignedShort(pos); pos+=2;// flag + int onePacketLen = src.getUnsignedShort(pos); pos+=2;// length:11 bits this.seq = onePacketLen >> 11; onePacketLen = onePacketLen&0x7FF; - this.id = String.valueOf(src.getUnsignedInt(4)); //id - int pos = onePacketLen + 4; - while(pos < this.len){ - if(src.getUnsignedShort(pos) == 0xd331){ - onePacketLen = src.getUnsignedShort(pos+2)&0x7FF; - pos = pos+4+onePacketLen; - packetNum ++; + this.id = String.valueOf(src.getUnsignedInt(pos)); pos+=4;//id + if(onePacketLen + 4