From aaa1740f138d0c4f587b7d50d6333ac259207bb0 Mon Sep 17 00:00:00 2001 From: weidong Date: Thu, 18 Jan 2024 00:25:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E6=96=AD=E7=82=B9?= =?UTF-8?q?=E7=BB=AD=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calc/MultiLineGNSSCalcService.java | 5 +- .../calc/SingleLineGNSSCalcService.java | 47 ++++++++++++------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java index cac86855..5ebf3cd5 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java @@ -76,10 +76,8 @@ public class MultiLineGNSSCalcService { } // 处理d341 - logger.info(deviceId + " D342 msg time: " + msgTime); lastD342Time.createTime = msgTime; lastD342Time.uploadTime = LocalDateTime.now(); - logger.info(deviceId + " lastD342Time: " + lastD342Time.createTime); for(BaseMessage message: d342Message.getMessageList()){ D341LocationMessage d341Message = (D341LocationMessage)message; @@ -147,7 +145,8 @@ public class MultiLineGNSSCalcService { d342SessionDone(deviceId,tenantId,lastD342Time.createTime); return null; } + return lastD342Time.createTime; } - return lastD342Time.createTime; + else return null; } } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java index 023af5a8..517c92ec 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java @@ -72,6 +72,35 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { @Override public void calSingleDone(String deviceId, Integer tenantId, LocalDateTime resultTime) { + executorService.schedule(() -> { + try { + calCycleResult(deviceId, tenantId, resultTime); + } catch (Exception e) { + logger.error(e.toString()); + } + },50, TimeUnit.MILLISECONDS); + + } + + private void resultOutputTimer(String deviceId, Integer tenantId, LocalDateTime date){ + //40秒没数据后输出结果 + ScheduledFuture future = timerMap.get(deviceId); + if (future != null && !future.isDone()) { + future.cancel(true); + future = null; + } + + future = executorService.schedule(() -> { + try { + calCycleResult(deviceId, tenantId, date); + } catch (Exception e) { + logger.error(e.toString()); + } + },40, TimeUnit.SECONDS); + timerMap.put(deviceId, future); + } + + private void calCycleResult(String deviceId, Integer tenantId, LocalDateTime resultTime) { FocusCalculator1 focusCalculator = calculatorMap.get(deviceId); if(focusCalculator == null) return; // 1.检查b562有效数,如果过少,产生告警 @@ -128,24 +157,6 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { } - private void resultOutputTimer(String deviceId, Integer tenantId, LocalDateTime date){ - //40秒没数据后输出结果 - ScheduledFuture future = timerMap.get(deviceId); - if (future != null && !future.isDone()) { - future.cancel(true); - future = null; - } - - future = executorService.schedule(() -> { - try { - calSingleDone(deviceId, tenantId, date); - } catch (Exception e) { - logger.error(e.toString()); - } - },40, TimeUnit.SECONDS); - timerMap.put(deviceId, future); - } - private void postLocationRecord(String deviceId, double[] b562Result, double[] r9250Result, double[] result, LocalDateTime resultTime, int delay, boolean isShocked) { GnssCalcData locationRecord = new GnssCalcData();