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 04ee65b1..3e474af7 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 @@ -153,15 +153,15 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { @Override public void calSingleDone(Device device, GnssGroupCalc groupCalc, LocalDateTime resultTime) { - // executor已经在线程处理了 - /* ThreadManager.getScheduledThreadPool().schedule(() -> { - try { - calCycleResult(device, groupCalc, resultTime); - } catch (Exception e) { - logger.error(e.toString()); - } - },50, TimeUnit.MILLISECONDS); -*/ + ScheduledFuture future = timerMap.get(device.getDeviceId()); + if (future != null && !future.isDone()) { + future.cancel(true); + future = null; + } + if(null == groupCalc){ + groupCalc = getGroupCalc(device.getCalcGroupId()); + if(groupCalc == null) return; + } calCycleResult(device, groupCalc, resultTime); } @@ -181,7 +181,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { } catch (Exception e) { logger.error(e.toString()); } - },30, TimeUnit.SECONDS); + },90, TimeUnit.SECONDS); timerMap.put(device.getDeviceId(), future); } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java index b6be25d7..8a6d425a 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F2StopIndicationMessageExecutor.java @@ -3,6 +3,7 @@ package com.imdroid.sideslope.executor; import com.imdroid.common.util.ThreadManager; import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.dto.GnssTrxMsg; +import com.imdroid.sideslope.calc.GNSSDataCalcService; import com.imdroid.sideslope.calc.MultiLineGNSSCalcService; import com.imdroid.sideslope.message.D3F2StopIndicationMessage; import com.imdroid.sideslope.sal.Device; @@ -34,6 +35,8 @@ public class D3F2StopIndicationMessageExecutor implements Executor