diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/Gga.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/Gga.java index 2f5b0ee6..09b7ef2a 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/Gga.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/Gga.java @@ -37,6 +37,11 @@ public class Gga { private int quality=0; private int satellitesInUsed=0; + /** + * 大地水准面相对椭球面的高度 + */ + private double geoidSeparation = 0; + public Gga() { } @@ -94,8 +99,8 @@ public class Gga { } } if(ggaStr != null){ - String[] params = ggaStr.split(",",11); - if(params.length == 11){ + String[] params = ggaStr.split(",", 14); + if(params.length >= 12){ Gga gga = new Gga(); try { gga.setLatitude(transGGAPos(Double.parseDouble(params[2]))); @@ -103,6 +108,7 @@ public class Gga { gga.setAltitude(Double.parseDouble(params[9])); gga.setQuality(Integer.parseInt(params[6])); gga.setSatellitesInUsed(Integer.parseInt(params[7])); + gga.setGeoidSeparation(Double.parseDouble(params[11])); return gga; } catch (Exception e){ 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 0af518ef..ff66573e 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 @@ -116,10 +116,10 @@ public class D331RtcmMessageExecutor implements Executor deviceBs.setLatitude(gga.getLatitude()); deviceBs.setLongitude(gga.getLongitude()); deviceBs.setAltitude(gga.getAltitude()); + deviceBs.setGeoidSeparation(gga.getGeoidSeparation()); } // 添加NTRIP处理 - if(deviceBs.getForwardToNtrip()) { byte[] srcdata = message.getSrcData(); String rtcm = ByteUtil.bytesToHexString(srcdata); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/Device.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/Device.java index fcc1cffa..73197a14 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/Device.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/Device.java @@ -62,6 +62,12 @@ public class Device { Double latitude; Double longitude; Double altitude; + + // 大地水准面相对椭球面的高度差 + // 博通 GGA 此处可能非零,影响 RTK 运算,故需通过此属性判断。 + Double geoidSeparation = 0.0; + + Double ecefx; Double ecefy; Double ecefz; @@ -69,6 +75,7 @@ public class Device { Double iPose; Double iPosn; Double iPosd; + private BigDecimal remaining; private BigDecimal total; private BigDecimal used; @@ -78,10 +85,10 @@ public class Device { LocalDateTime lastD3f2Time; short noFixedAndFloatResult=0; - // 日志记录控制 - Short loggingmode; - // NtripCaster 推送控制 - Boolean forwardToNtrip = false; + + Short loggingmode;// 日志记录控制 + Boolean forwardToNtrip = false;// NtripCaster 推送控制 + int lastRxHead = 0; int fixedNum = 0;