diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl2.java b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl2.java index 8fa19e8ca..f867cf62f 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl2.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl2.java @@ -472,7 +472,10 @@ public class CiApiServiceImpl2 implements CiApiService { } } if (repository.getConfig().isHasCTC() && signal.isHigherThanGuideLevel()) { - signal.guideDelayStart(); + Route lockedRoute = signal.getLockedRoute(); + if (lockedRoute != null && lockedRoute.getFirstLogicSection().isOccupied()) { + signal.guideDelayStart(); + } } } diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiLogic.java b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiLogic.java index 192d9a7d1..51eeda118 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiLogic.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiLogic.java @@ -108,6 +108,7 @@ public class CiLogic { * @param route */ public void interlockMonitor(Simulation simulation, Route route) { + MapConfig config = simulation.getRepository().getConfig(); if (route.isCiControl()) { // 进路联锁自动触发 if (!route.isLock() && !route.isSetting() && ciService.isCiRouteTrigger(simulation, route)) { routeService.setRoute(simulation, route); @@ -153,6 +154,8 @@ public class CiLogic { CiLogic.log.info("进路[{}]联锁条件不满足,关闭信号", route.debugStr()); signalControlService.tryControlSignalAspectAccordingLevel(simulation, start, start.getDefaultAspect()); + if (config.isHasCTC()) //大铁线路暂时限制自动重开信号 + start.setForbidden(true); } else if (start.isDefaultAspect() && !start.isForbidden() && !start.isBlockade() && start.isSupportMainAspect()) { CiLogic.log.info("进路[{}]联锁条件满足,开放信号", route.debugStr()); signalControlService.tryControlSignalAspectAccordingLevel(simulation,