diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/onboard/ATP/ATPLogicLoop.java b/src/main/java/club/joylink/rtss/simulation/cbtc/onboard/ATP/ATPLogicLoop.java index 11437cc98..cbe1d45da 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/onboard/ATP/ATPLogicLoop.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/onboard/ATP/ATPLogicLoop.java @@ -85,7 +85,13 @@ public class ATPLogicLoop { atpService.updateRunLevel(train, RunLevel.IL, preselectionMode); atpService.triggerSignalEB(train); } else if (!train.isCBTC() && !train.isCbtcMaMiss() && defaultRunLevel.equals(RunLevel.CBTC)) { - atpService.updateRunLevel(train, RunLevel.CBTC, preselectionMode); + boolean headSectionAxleFault = Section.AxleFault.FAULT + .equals(train.getHeadPosition().getSection().getFault()); //车头区段计轴故障 + boolean tailSectionAxleFault = Section.AxleFault.FAULT + .equals(train.calculateTailPosition().getSection().getFault()); //车尾区段计轴故障 + if (!headSectionAxleFault && !tailSectionAxleFault) { + atpService.updateRunLevel(train, RunLevel.CBTC, preselectionMode); + } } } }