diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator3.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator3.java index a06a40e8..32a13028 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator3.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator3.java @@ -163,7 +163,7 @@ public class FocusCalculator3 extends FocusCalculator1{ logger.error("error!",e); return null; } - return resultB562Sub(); + return null; } @Override diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator7.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator7.java new file mode 100644 index 00000000..bbff0896 --- /dev/null +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/FocusCalculator7.java @@ -0,0 +1,36 @@ +package com.imdroid.sideslope.bd; + +import com.imdroid.sideslope.sal.Device; + + +/** + * 博通:用GGA绝对坐标代替相对位置 + */ +public class FocusCalculator7 extends FocusCalculator3{ + + final static long scale = 100000000L;//地球1°:111km,放大到mm乘以100,000,000 + + public FocusCalculator7(Device bsDevice) { + super(bsDevice); + } + + @Override + public void addGGA(Gga gga) { + if(gga == null) return; + + double[] xyz = new double[]{gga.getLongitude()*scale, gga.getLatitude()*scale, gga.getAltitude()*1000, gga.getQuality()}; + + if(gga.isFixed()) { + counterFixedResult++; + pointList.add(xyz); + } + else if(gga.getQuality() == 5) counterNoFixed++; + else counterNoB562 ++; + } + + @Override + public int getVer() { + return 7; + } + +} diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java index 7ac6213a..1905e490 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java @@ -79,13 +79,16 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { if(device == null) return; GnssGroupCalc groupCalc = getGroupCalc(device.getCalcGroupId()); if(groupCalc==null) return; - device.setB562AsCalc(groupCalc.getVer()!=3); + device.setB562AsCalc(groupCalc.getVer()!=3 && groupCalc.getVer()!=7); if(completeWhenIdle) resultOutputTimer(device, groupCalc, message.getCreateTime()); //todo 创建FocusCalculator对象需获取该测站的杆长度,上一小时的Tilt平均值,上一小时的测站相对坐标融合值ekfResult FocusCalculator focusCalculator; - if(groupCalc.getVer() == 6){ + if(groupCalc.getVer() == 7){ + focusCalculator = calculatorMap.computeIfAbsent(deviceId,s -> new FocusCalculator7(null)); + } + else if(groupCalc.getVer() == 6){ focusCalculator = calculatorMap.computeIfAbsent(deviceId,s -> new FocusCalculator6(deviceId, 50)); } else if(groupCalc.getVer() == 5){ @@ -236,7 +239,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { gnssCalcFilterService.calc(device, groupCalc, locationRecord, latestRpos); } else { - if(focusCalculator.getVer()==1 || focusCalculator.getVer()==3 || focusCalculator.getVer()==5){ + if(focusCalculator.getVer()==1 || focusCalculator.getVer()==3 || focusCalculator.getVer()==5 || focusCalculator.getVer()==7){ gnssCalcFilterService.calc(device, groupCalc, locationRecord, null); } else { @@ -272,7 +275,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { else focusCalculator.setReferPoint(b562Result); } } - else if(focusCalculator.getVer()==1 || focusCalculator.getVer()==3 || focusCalculator.getVer()==5) { + else if(focusCalculator.getVer()==1 || focusCalculator.getVer()==3 || focusCalculator.getVer()==5 || focusCalculator.getVer()==7) { focusCalculator.setReferPoint(b562Result); } else { diff --git a/sec-beidou/src/main/resources/templates/page/table/gnss_add_group_calc.html b/sec-beidou/src/main/resources/templates/page/table/gnss_add_group_calc.html index 902f3485..16697eea 100644 --- a/sec-beidou/src/main/resources/templates/page/table/gnss_add_group_calc.html +++ b/sec-beidou/src/main/resources/templates/page/table/gnss_add_group_calc.html @@ -39,6 +39,7 @@ +