延续保护中的设备状态不正确时,取消延续保护锁闭状态
This commit is contained in:
parent
bdb2777522
commit
f2de22e0d8
@ -423,7 +423,7 @@ public class RouteService {
|
|||||||
this.sectionLock(simulation, route);
|
this.sectionLock(simulation, route);
|
||||||
route.getStart().setLevel(Signal.LEVEL_2);
|
route.getStart().setLevel(Signal.LEVEL_2);
|
||||||
// 侧防检查
|
// 侧防检查
|
||||||
boolean flsOnPosition = this.isFlsSwitchOnPosition(route.getFlsList());
|
boolean flsOnPosition = this.isFlsCheckPass(route.getFlsList());
|
||||||
if (flsOnPosition) {
|
if (flsOnPosition) {
|
||||||
// 侧防锁闭
|
// 侧防锁闭
|
||||||
this.routeFlsLock(route.getFlsList());
|
this.routeFlsLock(route.getFlsList());
|
||||||
@ -455,9 +455,10 @@ public class RouteService {
|
|||||||
SwitchElement pSwitch = flsElement.getPSwitch();
|
SwitchElement pSwitch = flsElement.getPSwitch();
|
||||||
if (pSwitch != null) {
|
if (pSwitch != null) {
|
||||||
switchElementList.add(pSwitch);
|
switchElementList.add(pSwitch);
|
||||||
} else if (flsElement.getFpae() != null) {
|
|
||||||
switchElementList.add(flsElement.getFpae());
|
|
||||||
}
|
}
|
||||||
|
// else if (flsElement.getFpae() != null) {
|
||||||
|
// switchElementList.add(flsElement.getFpae());
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.routeSwitchTurn(simulation, switchElementList);
|
this.routeSwitchTurn(simulation, switchElementList);
|
||||||
@ -552,7 +553,7 @@ public class RouteService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 道岔是否转换到位置
|
// 道岔是否转换到位置
|
||||||
boolean onPosition = this.checkRouteSwitchPosition(switchList) && this.isFlsSwitchOnPosition(flsList);
|
boolean onPosition = this.checkRouteSwitchPosition(switchList) && this.isFlsCheckPass(flsList);
|
||||||
if (!onPosition) return; // 未到位,返回
|
if (!onPosition) return; // 未到位,返回
|
||||||
if (!overlap.getSection().isRouteLock()) {
|
if (!overlap.getSection().isRouteLock()) {
|
||||||
return;
|
return;
|
||||||
@ -562,7 +563,10 @@ public class RouteService {
|
|||||||
log.debug(String.format("进路延续保护[%s]办理成功", overlap.debugStr()));
|
log.debug(String.format("进路延续保护[%s]办理成功", overlap.debugStr()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isFlsSwitchOnPosition(List<RouteFls> flsList) {
|
/**
|
||||||
|
* 侧防检查是否通过
|
||||||
|
*/
|
||||||
|
private boolean isFlsCheckPass(List<RouteFls> flsList) {
|
||||||
if (!CollectionUtils.isEmpty(flsList)) {
|
if (!CollectionUtils.isEmpty(flsList)) {
|
||||||
for (RouteFls routeFls : flsList) {
|
for (RouteFls routeFls : flsList) {
|
||||||
List<RouteFls.FlsElement> level1List = routeFls.getLevel1List();
|
List<RouteFls.FlsElement> level1List = routeFls.getLevel1List();
|
||||||
@ -1293,11 +1297,22 @@ public class RouteService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RouteOverlap overlap = route.getOverlap();
|
||||||
if (route.isOpen()) {
|
if (route.isOpen()) {
|
||||||
if (this.checkCanOverlapSet(simulation, route) && !route.getOverlap().isLock()) {
|
if (this.checkCanOverlapSet(simulation, route) && !overlap.isLock()) {
|
||||||
this.checkAndSetLockedRouteOverlap(simulation, route);
|
this.checkAndSetLockedRouteOverlap(simulation, route);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//延续保护锁闭后持续监视
|
||||||
|
if (overlap != null && overlap.isLock()) {
|
||||||
|
SectionPath sectionPath = overlap.selectPath();
|
||||||
|
List<SwitchElement> switchList = sectionPath.getSwitchList();
|
||||||
|
List<RouteFls> flsList = sectionPath.getFlsList();
|
||||||
|
boolean onPosition = this.checkRouteSwitchPosition(switchList) && this.isFlsCheckPass(flsList);
|
||||||
|
if (!onPosition) {
|
||||||
|
overlap.setLock(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkAndSetLockedRouteOverlap(Simulation simulation, Route route) {
|
public void checkAndSetLockedRouteOverlap(Simulation simulation, Route route) {
|
||||||
|
@ -597,14 +597,14 @@ public class VirtualRealityTrain extends VirtualRealityDevice {
|
|||||||
if (Fault.DRIVE_FAULT.equals(fault) && fk > 0) {
|
if (Fault.DRIVE_FAULT.equals(fault) && fk > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isNeedDepartureCommand()) {
|
if (isNeedDepartureCommand() && fk > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
enforceUpdateTBForce(fk, fb);
|
enforceUpdateTBForce(fk, fb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 强制改变牵引制动力(暂时只用于连挂操作)
|
* 强制改变牵引制动力
|
||||||
*/
|
*/
|
||||||
public void enforceUpdateTBForce(float fk, float fb) {
|
public void enforceUpdateTBForce(float fk, float fb) {
|
||||||
this.fk = fk;
|
this.fk = fk;
|
||||||
|
Loading…
Reference in New Issue
Block a user