修改站台轨限速判定;人工车处理站台跳停;联锁数据生成时给计轴区段偏移量赋值
This commit is contained in:
parent
27e2f456fc
commit
6c3ac11caa
@ -172,6 +172,8 @@ public class MapDeviceBuilder {
|
||||
Map<String, MapSectionNewVO> sectionVOMap = sectionList.stream()
|
||||
.collect(Collectors.toMap(MapSectionNewVO::getCode, Function.identity()));
|
||||
physicalSectionList.forEach(section -> {
|
||||
section.setMinOffset(0);
|
||||
section.setMaxOffset(section.getLen());
|
||||
List<Section> logicList = section.getLogicList();
|
||||
if (!CollectionUtils.isEmpty(logicList)) {
|
||||
boolean offsetExist = true;
|
||||
|
@ -976,7 +976,7 @@ public class Section extends MayOutOfOrderDevice {
|
||||
return this.getSpeedUpLimit() / 3.6f;
|
||||
} else if (this.isSwitchTrack() && this.getRelSwitch().isReversePosition()) {
|
||||
return 30 / 3.6f;
|
||||
} else if (isLogicStandTrack()) { //站台逻辑区段默认限速
|
||||
} else if (this.isStandTrack() || isLogicStandTrack()) { //站台逻辑区段默认限速
|
||||
return 45 / 3.6f;
|
||||
}
|
||||
return null;
|
||||
|
@ -298,14 +298,14 @@ public class SpeedCurve {
|
||||
}
|
||||
Section base = tailPosition.getSection();
|
||||
Float tailLimitSpeed = tailPosition.getLogicSection().getNeedLimitSpeed();
|
||||
float limitSpeed = tailLimitSpeed == null ? recommendedSpeedMax : Math.min(tailLimitSpeed, recommendedSpeedMax);
|
||||
float limitSpeed = tailLimitSpeed == null ? recommendedSpeedMax : Math.min(tailLimitSpeed * 0.9f, recommendedSpeedMax);
|
||||
SectionPosition endPosition;
|
||||
SpeedCurve speedCurve = buildTargetSpeedCurve(totalLen, v0, 0, limitSpeed);
|
||||
for (int i = 0; i < 20; i++) {
|
||||
if (base == null)
|
||||
break;
|
||||
List<Section> logicSections = base.getLogicList();
|
||||
if (logicSections == null) {
|
||||
if (CollectionUtils.isEmpty(logicSections)) {
|
||||
logicSections = Collections.singletonList(base);
|
||||
}
|
||||
int index = right ? 0 : logicSections.size() - 1;
|
||||
|
@ -58,6 +58,12 @@ public class TrainTargetUpdateService {
|
||||
break;
|
||||
}
|
||||
if (temp.isNormalStandTrack() || temp.isTransferTrack()) {
|
||||
if (temp.isNormalStandTrack()) {
|
||||
if (temp.getStandList().stream().anyMatch(stand -> stand.isJumpStop(train.getGroupNumber()))) { //该列车应在站台跳停
|
||||
temp = temp.getNextRunningSectionBaseRealSwitch(right);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (!temp.equals(headPosition.getSection())) { //列车还未到达该区段
|
||||
newTarget = temp;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user