diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/AtpSectionService.java b/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/AtpSectionService.java index f09c4245d..a52761d95 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/AtpSectionService.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/AtpSectionService.java @@ -178,13 +178,11 @@ public class AtpSectionService { * @param sectionList */ public void sectionARBCheck(Simulation simulation, Section section, List
sectionList) { - if (!simulation.getRepository().getConfig().isNoARB()) { - if (!section.isInvalid() && section.isNctOccupied()) { - if (!sectionList.contains(section)) { - log.debug(String.format("区段[%s(%s)]检测为ARB故障", - section.getName(), section.getCode())); - section.judgeAsInvalid(); - } + if (!section.isInvalid() && section.isNctOccupied()) { + if (!sectionList.contains(section)) { + log.debug(String.format("区段[%s(%s)]检测为ARB故障", + section.getName(), section.getCode())); + section.judgeAsInvalid(); } } } diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/ZCLogicLoop.java b/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/ZCLogicLoop.java index 570c231e4..68f6baee7 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/ZCLogicLoop.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/ATP/ground/ZCLogicLoop.java @@ -126,20 +126,15 @@ public class ZCLogicLoop { endList.add(end1); return endList; } -// // 检查车头区段是否故障 -// if (headPosition.getSection().isFault()) { -// endList.add(new MovementAuthority.End(headPosition.getSection(), MovementAuthority.EndType.FAULT_SECTION)); -// } -// //非通信车占用区段 -// if (section.isNonCbtcOccupy()) { -// endList.add(new MovementAuthority.End(section, MovementAuthority.EndType.NCT_OCCUPIED_SECTION)); -// return endList; -// } + // 检查车头区段是否故障 + if (headPosition.getSection().isFault()) { + endList.add(new MovementAuthority.End(headPosition.getSection(), MovementAuthority.EndType.FAULT_SECTION)); + } //非通信车占用区段 - MovementAuthority.End nctOccupied = checkNctOccupied(train, section); - if (nctOccupied != null) - endList.add(nctOccupied); - + if (section.isNonCbtcOccupy()) { + endList.add(new MovementAuthority.End(section, MovementAuthority.EndType.NCT_OCCUPIED_IN_FRONT_OF_SECTION)); + return endList; + } int count = 0; while (count < 50) { ++count; @@ -184,16 +179,12 @@ public class ZCLogicLoop { break; } //非通信车占用区段 - MovementAuthority.End end = checkNctOccupied(train, temp); - if (end != null) - endList.add(end); -// //非通信车占用区段 -// if (temp.isNonCbtcOccupy()) { -// SectionPosition headPosition1 = train.getHeadPosition(); -// if (!temp.isSamePhysical(headPosition1.getSection().getCode())) { -// endList.add(new MovementAuthority.End(temp, MovementAuthority.EndType.NCT_OCCUPIED_SECTION)); -// } -// } + if (temp.isNonCbtcOccupy()) { + SectionPosition headPosition1 = train.getHeadPosition(); + if (!temp.isSamePhysical(headPosition1.getSection().getCode())) { + endList.add(new MovementAuthority.End(temp, MovementAuthority.EndType.NCT_OCCUPIED_IN_FRONT_OF_SECTION)); + } + } //检查关闭的区段 MovementAuthority.End cs = checkClosedSection(section); if (cs != null) @@ -221,20 +212,6 @@ public class ZCLogicLoop { return endList; } - /** - * 检查非通信车占用的区段 - */ - private MovementAuthority.End checkNctOccupied(VirtualRealityTrain train, Section section) { - if (train.isCBTC()) { //通信车 - if (section.isNonCbtcOccupy() && !section.isInvalid()) - return new MovementAuthority.End(section, MovementAuthority.EndType.NCT_OCCUPIED_SECTION); - } else { //非通信车 - if (section.isNonCbtcOccupy()) - return new MovementAuthority.End(section, MovementAuthority.EndType.NCT_OCCUPIED_SECTION); - } - return null; - } - private MovementAuthority.End checkClosedSection(Section section) { if (section.isClosed()) { return new MovementAuthority.End(section, MovementAuthority.EndType.CLOSED_SECTION); diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/MapConfig.java b/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/MapConfig.java index fce5beb7e..3dcb867dc 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/MapConfig.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/data/map/MapConfig.java @@ -204,9 +204,6 @@ public class MapConfig { /** 服务号的位数 */ private int figuresOfServiceNumber; - /** 没有ARB判定 */ - private boolean noARB; - private Set needConfirmConnectMembers = Stream.of(DISPATCHER, STATION_SUPERVISOR, MAINTAINER, ELECTRIC_DISPATCHER).collect(Collectors.toSet()); @@ -254,7 +251,6 @@ public class MapConfig { setDelayWhenCancelRouteWithAbnormalInterlock(configVO.isDelayWhenCancelRouteWithAbnormalInterlock()); setFiguresOfTripNumber(configVO.getFiguresOfTripNumber()); setFiguresOfServiceNumber(configVO.getFiguresOfServiceNumber()); - setNoARB(noARB); } } 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 5e09548e6..82c509711 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 @@ -727,20 +727,20 @@ public class Section extends MayOutOfOrderDevice { if (!this.isAxleCounter()) { return; } - this.setInvalid(true); + this.setNctOccupied(true); if (this.isSwitchAxleCounterSection()) { // 道岔计轴区段 List relSwitchList = this.getRelSwitchList(); for (Switch aSwitch : relSwitchList) { - aSwitch.getA().setInvalid(true); + aSwitch.getA().setNctOccupied(true); if (aSwitch.isNormalPosition()) { - aSwitch.getB().setInvalid(true); - aSwitch.getC().setInvalid(false); + aSwitch.getB().setNctOccupied(true); + aSwitch.getC().setNctOccupied(false); } else if (aSwitch.isReversePosition()) { - aSwitch.getC().setInvalid(true); - aSwitch.getB().setInvalid(false); + aSwitch.getC().setNctOccupied(true); + aSwitch.getB().setNctOccupied(false); } else { - aSwitch.getB().setInvalid(true); - aSwitch.getC().setInvalid(true); + aSwitch.getB().setNctOccupied(true); + aSwitch.getC().setNctOccupied(true); } } Section cross = queryCross(); @@ -749,7 +749,7 @@ public class Section extends MayOutOfOrderDevice { } } else if (!CollectionUtils.isEmpty(this.logicList)) { for (Section logic : this.logicList) { - logic.setInvalid(true); + logic.setNctOccupied(true); } } @@ -796,7 +796,7 @@ public class Section extends MayOutOfOrderDevice { boolean leftSectionNctOccupied = leftSection.isNctOccupied() && leftSection.getParent().equals(this.parent); Section rightSection = logic.getRightSection(); boolean rightSectionNctOccupied = rightSection.isNctOccupied() && rightSection.getParent().equals(this.parent); - logic.setInvalid(leftSectionNctOccupied || rightSectionNctOccupied); + logic.setNctOccupied(leftSectionNctOccupied || rightSectionNctOccupied); }); } diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/data/support/MovementAuthority.java b/src/main/java/club/joylink/rtss/simulation/cbtc/data/support/MovementAuthority.java index ec9c7f652..71e3a6cbb 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/data/support/MovementAuthority.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/data/support/MovementAuthority.java @@ -5,6 +5,7 @@ import club.joylink.rtss.simulation.cbtc.data.CalculateService; import club.joylink.rtss.simulation.cbtc.data.map.MapNamedElement; import club.joylink.rtss.simulation.cbtc.data.map.Section; import club.joylink.rtss.simulation.cbtc.data.map.Signal; +import club.joylink.rtss.simulation.cbtc.data.map.Stand; import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityTrain; import club.joylink.rtss.simulation.cbtc.exception.SimulationException; import club.joylink.rtss.simulation.cbtc.exception.SimulationExceptionType; @@ -152,7 +153,7 @@ public class MovementAuthority { // float offset = right ? 0 : baseSection.getLen(); // return new SectionPosition(baseSection, offset); // } - case NCT_OCCUPIED_SECTION:{ + case NCT_OCCUPIED_IN_FRONT_OF_SECTION:{ Section section = (Section) this.device; Section previous = section.getNextRunningSectionOf(!right); float offset = right ? 0 : previous.getLen(); @@ -212,9 +213,9 @@ public class MovementAuthority { UNLOCKED_OVERLAP, UNLOCK_SECTION, /** - * 非通信车占用区段 + * 区段前方有非通信车占用 */ - NCT_OCCUPIED_SECTION, + NCT_OCCUPIED_IN_FRONT_OF_SECTION, /** * 故障区段 */ diff --git a/src/main/java/club/joylink/rtss/vo/map/RealLineConfigVO.java b/src/main/java/club/joylink/rtss/vo/map/RealLineConfigVO.java index 1ce7d53f7..dbe233ec0 100644 --- a/src/main/java/club/joylink/rtss/vo/map/RealLineConfigVO.java +++ b/src/main/java/club/joylink/rtss/vo/map/RealLineConfigVO.java @@ -159,9 +159,6 @@ public class RealLineConfigVO { /** 服务号的位数 */ private int figuresOfServiceNumber = 3; - /** 没有ARB判定 */ - private boolean noARB; - public static RealLineConfigVO parseJsonStr(String configData) { if (StringUtils.hasText(configData)) { return JsonUtils.read(configData, RealLineConfigVO.class);