优化高程跟踪算法

This commit is contained in:
weidong 2024-09-09 21:01:33 +08:00
parent 3f4745030a
commit cf86c1392c

View File

@ -104,7 +104,6 @@ public class AbnormalDeviceProcessor{
}
void insertData(String noDataDeviceId,double refGnssData1[],double refGnssData2[]){
logger.debug("{} abnormal process");
if(refGnssData1!=null && refGnssData2!=null){
logger.debug("{} delta: {},{},{}",noDataDeviceId,
(refGnssData1[0]+refGnssData2[0])/2,
@ -150,7 +149,7 @@ public class AbnormalDeviceProcessor{
queryWrapper.eq("deviceid",deviceId);
queryWrapper.eq("enabled",true);
queryWrapper.isNotNull("rpose");
queryWrapper.ge("createtime",now.minusHours(24));
queryWrapper.ge("createtime",now.minusHours(2));
queryWrapper.orderByDesc("createtime");
queryWrapper.last("limit 2");
@ -158,9 +157,17 @@ public class AbnormalDeviceProcessor{
}
void checkNotGoodDevice(String deviceId, String refDeviceId1){
LocalDateTime validTime = LocalDateTime.now().minusMinutes(10);
// 待修改的点
List<GnssCalcData> calcDataList = getLastTwo(deviceId);
if(calcDataList.size() == 2){
if(calcDataList.get(0).getCreatetime().isBefore(validTime)) return;
}
else return;
// 参考点
List<GnssCalcData> calcDataList1 = getLastTwo(refDeviceId1);
if(calcDataList.size() == 2 && calcDataList1.size()==2){
if(calcDataList1.size()==2){
if(calcDataList1.get(0).getCreatetime().isBefore(validTime)) return;
double deltaU = calcDataList1.get(0).getRposd() - calcDataList1.get(1).getRposd();
GnssCalcData calcData = calcDataList.get(0);
calcData.setRposd(calcDataList.get(1).getRposd()+deltaU);