增加算法7,国产GGA

This commit is contained in:
weidong 2024-10-20 21:12:24 +08:00
parent 89e58eb38e
commit 84ab55bcf6
4 changed files with 45 additions and 5 deletions

View File

@ -163,7 +163,7 @@ public class FocusCalculator3 extends FocusCalculator1{
logger.error("error!",e);
return null;
}
return resultB562Sub();
return null;
}
@Override

View File

@ -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;
}
}

View File

@ -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 {

View File

@ -39,6 +39,7 @@
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
</div>
</div>