1、优化自适应周期的判断
This commit is contained in:
parent
c769c41184
commit
2132f0b4ad
27
sec-beidou-fwd/src/test/java/DataTest.java
Normal file
27
sec-beidou-fwd/src/test/java/DataTest.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import com.imdroid.beidou_fwd.entity.KingMaData;
|
||||||
|
import com.imdroid.common.util.GsonUtil;
|
||||||
|
import com.imdroid.secapi.dto.GnssCalcData;
|
||||||
|
import com.imdroid.secapi.utils.HexUtil;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class DataTest {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<KingMaData> dataList = new ArrayList<>(3);
|
||||||
|
|
||||||
|
for(int i=0;i<3;i++) {
|
||||||
|
KingMaData data = new KingMaData();
|
||||||
|
data.setDataTime(LocalDateTime.now().toString());
|
||||||
|
data.setProjectId("12345");
|
||||||
|
data.setPointId("2350123");
|
||||||
|
data.setFlag(1);
|
||||||
|
data.setPhys(new KingMaData.Phys(100.23+i*3, 1234.56+i*2, 555.66+i));
|
||||||
|
dataList.add(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
String json = GsonUtil.toJson(dataList);
|
||||||
|
System.out.println(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -171,23 +171,6 @@ public class GNSSCalcFilterService {
|
|||||||
|
|
||||||
void refreshFilterCycle(String deviceId, GnssGroupCalc groupCalc, GnssCalcData curCalcData){
|
void refreshFilterCycle(String deviceId, GnssGroupCalc groupCalc, GnssCalcData curCalcData){
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
VaryFilterCycle varyCycle = autoCycleDevices.get(deviceId);
|
|
||||||
// 如果当前处于变周期阶段,则根据时间调整周期
|
|
||||||
if(varyCycle != null){
|
|
||||||
if(varyCycle.filterCycleHour >= groupCalc.getFilter_hour()){
|
|
||||||
//变周期结束
|
|
||||||
autoCycleDevices.remove(deviceId);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (now.isAfter(varyCycle.startTime.plusHours(1))) {
|
|
||||||
varyCycle.filterCycleHour++;
|
|
||||||
varyCycle.startTime = now;
|
|
||||||
logger.info(deviceId + ": refresh filter cycle "+varyCycle.filterCycleHour);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 否则判断是否将进入变周期
|
|
||||||
else{
|
|
||||||
// 比较当前均值和FilterMinHour前的均值之差是否超过门限
|
// 比较当前均值和FilterMinHour前的均值之差是否超过门限
|
||||||
LocalDateTime cmpTime = now.minusHours(groupCalc.getFilter_min_hour());
|
LocalDateTime cmpTime = now.minusHours(groupCalc.getFilter_min_hour());
|
||||||
QueryWrapper<GnssCalcData> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<GnssCalcData> queryWrapper = new QueryWrapper<>();
|
||||||
@ -202,11 +185,26 @@ public class GNSSCalcFilterService {
|
|||||||
double gapE = Math.abs(gnssCalcData.getAuxe() - curCalcData.getAuxe());
|
double gapE = Math.abs(gnssCalcData.getAuxe() - curCalcData.getAuxe());
|
||||||
double gapN = Math.abs(gnssCalcData.getAuxn() - curCalcData.getAuxn());
|
double gapN = Math.abs(gnssCalcData.getAuxn() - curCalcData.getAuxn());
|
||||||
if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) {
|
if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) {
|
||||||
VaryFilterCycle varyCycle1 = new VaryFilterCycle();
|
VaryFilterCycle varyCycle = new VaryFilterCycle();
|
||||||
varyCycle1.startTime = now;
|
varyCycle.startTime = now;
|
||||||
varyCycle1.filterCycleHour = groupCalc.getFilter_min_hour();
|
varyCycle.filterCycleHour = groupCalc.getFilter_min_hour();
|
||||||
autoCycleDevices.put(deviceId, varyCycle1);
|
autoCycleDevices.put(deviceId, varyCycle);
|
||||||
logger.info(deviceId + ": filter cycle change to " + varyCycle1.filterCycleHour);
|
logger.info(deviceId + ": filter cycle change to " + varyCycle.filterCycleHour);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
VaryFilterCycle varyCycle = autoCycleDevices.get(deviceId);
|
||||||
|
if(varyCycle != null){
|
||||||
|
if(varyCycle.filterCycleHour >= groupCalc.getFilter_hour()){
|
||||||
|
//变周期结束
|
||||||
|
autoCycleDevices.remove(deviceId);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (now.isAfter(varyCycle.startTime.plusHours(1))) {
|
||||||
|
varyCycle.filterCycleHour++;
|
||||||
|
varyCycle.startTime = now;
|
||||||
|
logger.info(deviceId + ": refresh filter cycle "+varyCycle.filterCycleHour);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user