diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/Section.java b/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/Section.java index ae1daa9ec..96c941c31 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/Section.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/Section.java @@ -466,9 +466,9 @@ public class Section extends DelayUnlockDevice { public void axleCounterOccupy(boolean right) { this.trainRight = right; this.setNctOccupied(true); - if (isSwitchAxleCounterSection()) { - nctOccupiedBySwitchPosition(); - } +// if (isSwitchAxleCounterSection()) { +// nctOccupiedBySwitchPosition(); +// } } /** @@ -1139,20 +1139,25 @@ public class Section extends DelayUnlockDevice { return; } this.setInvalid(true); - if (!CollectionUtils.isEmpty(this.logicList)) { - for (Section logic : this.logicList) { - logic.setInvalid(true); - } - } if (this.isSwitchAxleCounterSection()) { // 道岔计轴区段 List relSwitchList = this.getRelSwitchList(); for (Switch aSwitch : relSwitchList) { + aSwitch.getA().setInvalid(true); if (aSwitch.isPosN()) { + aSwitch.getB().setInvalid(true); aSwitch.getC().setInvalid(false); } else if (aSwitch.isPosR()) { + aSwitch.getC().setInvalid(true); aSwitch.getB().setInvalid(false); + } else { + aSwitch.getB().setInvalid(true); + aSwitch.getC().setInvalid(true); } } + } else if (!CollectionUtils.isEmpty(this.logicList)) { + for (Section logic : this.logicList) { + logic.setInvalid(true); + } } }