Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test1
This commit is contained in:
commit
0a126f41a6
7
src/main/java/club/joylink/rtss/simulation/Debug.java
Normal file
7
src/main/java/club/joylink/rtss/simulation/Debug.java
Normal file
@ -0,0 +1,7 @@
|
||||
package club.joylink.rtss.simulation;
|
||||
|
||||
public interface Debug {
|
||||
|
||||
String debugStr();
|
||||
|
||||
}
|
@ -415,11 +415,19 @@ public class AtsTrainLoadService {
|
||||
for (int i = 1; i < stationPlanList.size(); i++) {
|
||||
StationPlan startStationPlan = stationPlanList.get(i - 1);
|
||||
StationPlan endStationPlan = stationPlanList.get(i);
|
||||
if (this.isOnSectionStopPoint(headPosition, startStationPlan.getSection(), right)) {
|
||||
// 在计划停车点
|
||||
trainInfo.updatePlanInfo(startStationPlan);
|
||||
trainInfo.updateEstimatedArriveInfo(startStationPlan.getSection(), startStationPlan.getArriveTime());
|
||||
train.updateNextStationPlan(startStationPlan.getStation(), startStationPlan.getSection(), tripPlan.isPlanParking(startStationPlan));
|
||||
Section startSection = startStationPlan.getSection();
|
||||
if (this.isOnSectionStopPoint(headPosition, startSection, right)) {
|
||||
if (startSection.isTransferTrack()) {
|
||||
// 列车出库
|
||||
trainInfo.updatePlanInfo(endStationPlan);
|
||||
trainInfo.updateEstimatedArriveInfo(endStationPlan.getSection(), endStationPlan.getArriveTime());
|
||||
train.updateNextStationPlan(endStationPlan.getStation(), endStationPlan.getSection(), tripPlan.isPlanParking(endStationPlan));
|
||||
} else {
|
||||
// 在计划停车点
|
||||
trainInfo.updatePlanInfo(startStationPlan);
|
||||
trainInfo.updateEstimatedArriveInfo(startSection, startStationPlan.getArriveTime());
|
||||
train.updateNextStationPlan(startStationPlan.getStation(), startSection, tripPlan.isPlanParking(startStationPlan));
|
||||
}
|
||||
break;
|
||||
} else if (this.isOnSectionStopPoint(headPosition, endStationPlan.getSection(), right)) {
|
||||
trainInfo.updatePlanInfo(endStationPlan);
|
||||
@ -427,7 +435,7 @@ public class AtsTrainLoadService {
|
||||
train.updateNextStationPlan(endStationPlan.getStation(), endStationPlan.getSection(), tripPlan.isPlanParking(endStationPlan));
|
||||
break;
|
||||
} else {
|
||||
RoutePath routePath = this.selectDefaultRoutePath(repository, startStationPlan.getSection(), endStationPlan.getSection());
|
||||
RoutePath routePath = this.selectDefaultRoutePath(repository, startSection, endStationPlan.getSection());
|
||||
if (routePath.containsPosition(headPosition)) {
|
||||
// 站间运行
|
||||
train.setSpeed(0.1f);
|
||||
|
@ -4,10 +4,12 @@ import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
|
||||
import club.joylink.rtss.simulation.rt.RtSimulation;
|
||||
import club.joylink.rtss.simulation.rt.srd.bo.*;
|
||||
import club.joylink.rtss.vo.client.map.MapVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SrdService {
|
||||
public static final int TRAIN_RUN_RATE = 20;
|
||||
@ -29,8 +31,7 @@ public class SrdService {
|
||||
if (!srTrain.isUsing()) {
|
||||
continue;
|
||||
}
|
||||
TrackPosition position = srTrain.getPosition();
|
||||
long speed = srTrain.getSpeed();
|
||||
TrackPosition position = srTrain.getHeadPosition();
|
||||
boolean right = srTrain.isRight();
|
||||
int cv = this.calculateSpeed(srTrain);
|
||||
int s = this.calculateLen(cv, TRAIN_RUN_RATE);
|
||||
@ -77,7 +78,8 @@ public class SrdService {
|
||||
SrTrack base = track;
|
||||
while (offset < 0 || offset > base.getLen()) {
|
||||
SrTrack nextTrack = base.queryNextTrack(right);
|
||||
if (nextTrack == null) {
|
||||
if (nextTrack == null) { // 下一区段为空,到达尽头或道岔失表处
|
||||
log.debug(String.format("区段[%s][%s]区段不存在",base.debugStr(), right?"右向":"左向"));
|
||||
if (offset < 0) {
|
||||
offset = 0;
|
||||
} else {
|
||||
@ -86,10 +88,10 @@ public class SrdService {
|
||||
break;
|
||||
} else {
|
||||
if (right) {
|
||||
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotTrue(offset < 0);
|
||||
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(offset > base.getLen());
|
||||
offset -= base.getLen();
|
||||
} else {
|
||||
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotTrue(offset > base.getLen());
|
||||
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(offset < 0);
|
||||
offset += nextTrack.getLen();
|
||||
}
|
||||
base = nextTrack;
|
||||
|
@ -1,12 +1,13 @@
|
||||
package club.joylink.rtss.simulation.rt.srd.bo;
|
||||
|
||||
import club.joylink.rtss.simulation.Debug;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 虚拟真实设备抽象父类
|
||||
*/
|
||||
@Getter
|
||||
public abstract class SrDevice {
|
||||
public abstract class SrDevice implements Debug {
|
||||
String id;
|
||||
DeviceType deviceType;
|
||||
|
||||
@ -16,4 +17,9 @@ public abstract class SrDevice {
|
||||
this.id = id;
|
||||
this.deviceType = deviceType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String debugStr() {
|
||||
return String.format("%s:%s", this.deviceType, this.id);
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
package club.joylink.rtss.simulation.rt.srd.bo;
|
||||
|
||||
import club.joylink.rtss.simulation.Debug;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 虚拟真实轨道区段
|
||||
*/
|
||||
@Getter
|
||||
public class SrTrack extends SrDevice {
|
||||
public class SrTrack extends SrDevice implements Debug {
|
||||
|
||||
String name;
|
||||
/**
|
||||
* 轨道长度,单位mm
|
||||
*/
|
||||
@ -101,4 +103,9 @@ public class SrTrack extends SrDevice {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String debugStr() {
|
||||
return String.format("%s(%s)", this.name, this.id);
|
||||
}
|
||||
}
|
||||
|
@ -56,11 +56,14 @@ public class SrTrain extends SrDevice {
|
||||
public static final int FORWARD = 1; //前进挡
|
||||
public static final int REVERSE = -1; //后退档
|
||||
/**
|
||||
* 列车位置
|
||||
* 列车头位置
|
||||
*/
|
||||
TrackPosition position;
|
||||
|
||||
public SrTrain(String id, int len) {
|
||||
TrackPosition headPosition;
|
||||
/**
|
||||
* 列车尾位置
|
||||
*/
|
||||
TrackPosition tailPosition;
|
||||
public SrTrain(String id, int len) {
|
||||
super(id, DeviceType.TRAIN);
|
||||
this.len = len;
|
||||
}
|
||||
@ -70,7 +73,7 @@ public class SrTrain extends SrDevice {
|
||||
}
|
||||
|
||||
public void updatePositionAndSpeed(TrackPosition position, int v) {
|
||||
this.position = position;
|
||||
this.headPosition = position;
|
||||
this.speed = v;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user