From 05a83e33a1b39f2da04f032a0997b54bb7e78ba8 Mon Sep 17 00:00:00 2001 From: weidong Date: Mon, 17 Mar 2025 13:49:32 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=A3=E7=AE=97=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=9A=E6=98=AF=E5=90=A6=E7=A8=B3=E5=AE=9A=E3=80=82=E6=AF=8F?= =?UTF-8?q?=E6=AC=A1=E6=BB=A4=E6=B3=A2=E6=97=B6=E6=A3=80=E6=9F=A5=E6=BB=A4?= =?UTF-8?q?=E6=B3=A2=E7=AA=97=E5=8F=A3=E5=86=85=E7=9A=84=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=97=B6=E9=97=B4=EF=BC=8C=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=B7=9D=E7=A6=BB=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E6=97=B6=E9=97=B4=E8=B6=85=E8=BF=87=E6=BB=A4=E6=B3=A2?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E7=9A=842/3=E6=97=B6=EF=BC=8C=E7=A8=B3?= =?UTF-8?q?=E5=AE=9A=E5=AD=97=E6=AE=B5=E8=AE=BE=E4=B8=BAtrue=EF=BC=8C?= =?UTF-8?q?=E5=90=A6=E5=88=99false=202=E3=80=81=E5=91=A8=E8=B7=B3=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=94=B9=E4=B8=BA=E4=B8=9C+=E5=8C=97=E7=9A=84?= =?UTF-8?q?=E4=BD=8D=E7=A7=BB=E4=B9=8B=E5=92=8C=E4=B8=8E=E9=97=A8=E9=99=90?= =?UTF-8?q?=E6=AF=94=E8=BE=83=EF=BC=8C=E9=97=A8=E9=99=90=E6=94=B9=E4=B8=BA?= =?UTF-8?q?800mm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/imdroid/sideslope/calc/GNSSCalcFilterService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java index f8427846..ef0a6775 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java @@ -213,6 +213,7 @@ public class GNSSCalcFilterService { int xyCount = 1; int zCount = 1; int minCount = 1; + LocalDateTime lastRecordTime = null; for (GnssCalcData record : gnssHistoryRecords) { if (record.getEnabled()) {//只选取好点参与滤波 @@ -225,8 +226,10 @@ public class GNSSCalcFilterService { sumD += record.getB562d(); zCount++; } + //记录最后一条有效解的时间 + lastRecordTime = record.getCreatetime(); // 计算短周期 - if(record.getCreatetime().isAfter(minCycleTime)){ + if(lastRecordTime.isAfter(minCycleTime)){ msumE = sumE; msumN = sumN; msumD = sumD; @@ -242,6 +245,8 @@ public class GNSSCalcFilterService { newRecord.setAuxe(NumberUtils.scaleTwo(msumE / minCount)); newRecord.setAuxn(NumberUtils.scaleTwo(msumN / minCount)); newRecord.setAuxd(NumberUtils.scaleTwo(msumD / minCount)); + //滤波窗口里的时间跨度超过滤波时间的2/3才认为稳定 + newRecord.setStabled(lastRecordTime.isBefore(newRecordTime.minusHours(filterCycleHour * 2 / 3))); return true; } }