增加算法7,国产GGA
This commit is contained in:
parent
89e58eb38e
commit
84ab55bcf6
@ -163,7 +163,7 @@ public class FocusCalculator3 extends FocusCalculator1{
|
|||||||
logger.error("error!",e);
|
logger.error("error!",e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return resultB562Sub();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -79,13 +79,16 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService {
|
|||||||
if(device == null) return;
|
if(device == null) return;
|
||||||
GnssGroupCalc groupCalc = getGroupCalc(device.getCalcGroupId());
|
GnssGroupCalc groupCalc = getGroupCalc(device.getCalcGroupId());
|
||||||
if(groupCalc==null) return;
|
if(groupCalc==null) return;
|
||||||
device.setB562AsCalc(groupCalc.getVer()!=3);
|
device.setB562AsCalc(groupCalc.getVer()!=3 && groupCalc.getVer()!=7);
|
||||||
|
|
||||||
if(completeWhenIdle) resultOutputTimer(device, groupCalc, message.getCreateTime());
|
if(completeWhenIdle) resultOutputTimer(device, groupCalc, message.getCreateTime());
|
||||||
|
|
||||||
//todo 创建FocusCalculator对象需获取该测站的杆长度,上一小时的Tilt平均值,上一小时的测站相对坐标融合值ekfResult
|
//todo 创建FocusCalculator对象需获取该测站的杆长度,上一小时的Tilt平均值,上一小时的测站相对坐标融合值ekfResult
|
||||||
FocusCalculator focusCalculator;
|
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));
|
focusCalculator = calculatorMap.computeIfAbsent(deviceId,s -> new FocusCalculator6(deviceId, 50));
|
||||||
}
|
}
|
||||||
else if(groupCalc.getVer() == 5){
|
else if(groupCalc.getVer() == 5){
|
||||||
@ -236,7 +239,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService {
|
|||||||
gnssCalcFilterService.calc(device, groupCalc, locationRecord, latestRpos);
|
gnssCalcFilterService.calc(device, groupCalc, locationRecord, latestRpos);
|
||||||
}
|
}
|
||||||
else {
|
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);
|
gnssCalcFilterService.calc(device, groupCalc, locationRecord, null);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -272,7 +275,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService {
|
|||||||
else focusCalculator.setReferPoint(b562Result);
|
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);
|
focusCalculator.setReferPoint(b562Result);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -39,6 +39,7 @@
|
|||||||
<option value="4">4</option>
|
<option value="4">4</option>
|
||||||
<option value="5">5</option>
|
<option value="5">5</option>
|
||||||
<option value="6">6</option>
|
<option value="6">6</option>
|
||||||
|
<option value="7">7</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user