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();