修改【人工驾驶默认停车】配置的生效逻辑

This commit is contained in:
joylink_zhangsai 2023-11-30 17:01:41 +08:00
parent 659b537f75
commit 5e5a17d79a
4 changed files with 1674 additions and 1482 deletions

View File

@ -1,40 +1,43 @@
package club.joylink.rtss.simulation.cbtc.constant;
import lombok.Getter;
/**
* 驾驶模式
*/
public enum DriveMode {
/**
* 列车自动驾驶模式司机监控下的列车自动驾驶
*/
AM("列车自动驾驶模式", false),
/**
* ATP防护下的人工驾驶模式司机在列车自动防护设备监控下驾驶列车
*/
CM("ATP防护下的人工驾驶模式", true),
/**
* 限制人工驾驶模式地面设备故障或未设置地面信息设备的线路列车按规定限速运行超速时实时制动直至停车
*/
RM("限制人工驾驶模式", true),
/**
* 无限制人工驾驶模式列车在运行中没有车载ATP的保护司机根据行车调度员的指示按地面信号机的显示或手信号口令指示行车
*/
NRM("无限制人工驾驶模式", true);
/**
* 列车自动驾驶模式司机监控下的列车自动驾驶
*/
AM("列车自动驾驶模式", false),
/**
* ATP防护下的人工驾驶模式司机在列车自动防护设备监控下驾驶列车
*/
CM("ATP防护下的人工驾驶模式", true),
/**
* 限制人工驾驶模式地面设备故障或未设置地面信息设备的线路列车按规定限速运行超速时实时制动直至停车
*/
RM("限制人工驾驶模式", true),
/**
* 无限制人工驾驶模式列车在运行中没有车载ATP的保护司机根据行车调度员的指示按地面信号机的显示或手信号口令指示行车
*/
NRM("无限制人工驾驶模式", true);
private final String label;
//是否人工驾驶模式
private final boolean manual;
DriveMode(String label, boolean manual) {
this.label = label;
this.manual = manual;
}
private final String label;
//是否人工驾驶模式
@Getter
private final boolean manual;
public boolean isNotLowerThan(DriveMode driveMode) {
return this.ordinal() <= driveMode.ordinal();
}
DriveMode(String label, boolean manual) {
this.label = label;
this.manual = manual;
}
public boolean isHigherThan(DriveMode driveMode) {
return this.ordinal() < driveMode.ordinal();
}
public boolean isNotLowerThan(DriveMode driveMode) {
return this.ordinal() <= driveMode.ordinal();
}
public boolean isHigherThan(DriveMode driveMode) {
return this.ordinal() < driveMode.ordinal();
}
}

View File

@ -609,7 +609,6 @@ public class VirtualRealityTrain extends VirtualRealityDevice {
this.robotDriveParam = new DriveParamVO();
if (defaultStop) {
this.robotDriveParam.setDefaultStop(true);
this.robotDriveParam.setStop(true);
this.robotDriveParam.setRun(false);
}
}
@ -711,7 +710,6 @@ public class VirtualRealityTrain extends VirtualRealityDevice {
this.robotDriveParam = new DriveParamVO();
if (defaultStop) {
this.robotDriveParam.setDefaultStop(true);
this.robotDriveParam.setStop(true);
this.robotDriveParam.setRun(false);
}
}

View File

@ -176,8 +176,14 @@ public class SimulationRobotService {
if (train.isTakeOver() || !repository.isVrTrainOnline(train.getGroupNumber())) { //如果列车被接管或不在线
continue;
}
//校验后开启ATO
robotOpenATOAfterCheck(train);
//非人工驾驶模式时重置[人工驾驶默认不运行的列车]的运行状态
if (!train.getDriveMode().isManual() && train.getRobotDriveParam().isDefaultStop()) {
train.getRobotDriveParam().setRun(false);
}
//没有下令停车的情况下校验后开启ATO
if (!train.isRobotNeedStop()) {
robotOpenATOAfterCheck(train);
}
//准备发车
robotReadyForDeparture(simulation, train);
//机器人人工驾驶