rts-sim-testing-message/protos/device_state.proto

248 lines
6.4 KiB
Protocol Buffer
Raw Normal View History

2023-07-07 10:37:29 +08:00
syntax = "proto3";
package state;
option java_package = "club.joylink.bjrtss.ats.verify.protos";
option java_outer_classname = "DeviceStateProto";
2023-07-28 16:02:32 +08:00
option go_package = "./ats/verify/protos/state";
2023-07-07 10:37:29 +08:00
//状态定义面向物理层即只定义物理状态,不定义逻辑层状态
//区段类型
enum SectionType{
Any=0;
//计轴区段
Axle=1;
//逻辑区段
Logic=2;
//物理区段
Physic=3;
}
2023-07-07 17:20:29 +08:00
//相邻端点定义的link的状态
message LinkState{
//link索引
string id = 1;
//link上的列车id列表
repeated string trainId = 2;
}
2023-07-07 10:37:29 +08:00
//区段状态
message SectionState{
//区段索引
string id = 1;
//区段类型
SectionType type = 2;
//区段占用
//true-占用false-出清
bool occupied = 3;
}
//道岔状态
message SwitchState{
//道岔索引
string id = 1;
//道岔处于定位
bool normal = 2;
//道岔处于反位
bool reverse = 3;
}
2023-07-18 10:57:07 +08:00
//信号机状态
message SignalState{
//信号机索引
string id = 1;
}
2023-07-20 17:19:58 +08:00
//站台状态
message PlatformState{
//站台索引
string id = 1;
}
//车站状态
message StationState{
//车站索引
string id = 1;
}
2023-07-07 10:37:29 +08:00
//列车状态
message TrainState{
//列车索引
2023-07-20 16:05:40 +08:00
string id = 1;
2023-08-25 15:37:55 +08:00
//列车初始link运行方向
2023-07-20 16:05:40 +08:00
bool up = 2;
2023-08-25 15:43:56 +08:00
// 列车初始速度
2023-08-25 15:45:06 +08:00
float speed = 3;
2023-07-25 11:02:51 +08:00
//列车长度,1=1mm
2023-08-25 15:43:56 +08:00
int64 trainLength = 4;
2023-08-02 09:06:55 +08:00
//列车是否显示
2023-08-25 15:43:56 +08:00
bool show = 5;
// 列车车头所在设备ID
2023-08-25 15:43:56 +08:00
string headDeviceId = 6;
// 列车车头所在设备偏移量
2023-08-25 15:43:56 +08:00
int64 headOffset = 7;
2023-08-09 17:30:44 +08:00
// 设备端口
2023-08-25 15:43:56 +08:00
string devicePort = 8;
2023-08-14 10:39:18 +08:00
// 运行方向指向(区段A-B,道岔:-> 岔心)
2023-08-25 15:43:56 +08:00
bool pointTo = 9;
2023-08-14 10:39:18 +08:00
// 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小)
2023-08-25 15:43:56 +08:00
bool runDirection = 10;
// 列车车头方向
2023-08-25 15:43:56 +08:00
bool headDirection = 11;
2023-08-25 15:37:55 +08:00
// 动力学信息
2023-08-25 15:43:56 +08:00
TrainDynamicState dynamicState = 12;
2023-08-25 15:37:55 +08:00
// 半实物信息
2023-08-25 15:43:56 +08:00
TrainVobcState vobcState = 13;
2023-09-12 16:11:41 +08:00
// 所在公里标
int64 trainKilometer = 14;
2023-08-25 15:37:55 +08:00
}
// 动力学列车状态
message TrainDynamicState {
// 生命信号 每个周期+1
int32 heartbeat = 1;
//车头所在link的索引
string headLinkId = 2;
//车头所在link内的偏移量单位为mm
int64 headLinkOffset = 3;
//车尾所在link的索引
string tailLinkId = 4;
//车尾所在link内的偏移量单位为mm
int64 tailLinkOffset = 5;
//列车所占用的link的索引的列表
//顺序为从车头到车尾
repeated string occupiedLinkIndex = 6;
//列车所在位置坡度值,1=1‰
int32 slope = 7;
//列车所在位置坡度走势,1=上坡true0=下坡false
bool upslope = 8;
//列车当前运行方向,1 =上行true 0 =下行false
bool runningUp = 9;
//实际运行阻力NtotalResistance,1=1KN
float runningResistanceSum = 10;
//阻力1空气阻力NairResistance,1=1KN
2023-08-25 15:54:52 +08:00
float airResistance = 11;
2023-08-25 15:37:55 +08:00
//阻力2坡道阻力NslopeResistance,1=1KN
2023-08-25 15:54:52 +08:00
float rampResistance = 12;
2023-08-25 15:37:55 +08:00
//阻力3曲线阻力NcurveResistance,1=1KN
2023-08-25 15:54:52 +08:00
float curveResistance = 13;
2023-08-25 15:37:55 +08:00
//列车运行速度m/sspeed,1=1km/h
2023-09-05 15:06:51 +08:00
int32 speed = 14;
2023-08-25 15:57:57 +08:00
//头车速传1速度值m/sheadSpeed1,1=1km/h
2023-09-05 15:06:51 +08:00
int32 headSensorSpeed1 = 15;
2023-08-25 15:57:57 +08:00
//头车速度2速度值m/sheadSpeed2,1=1km/h
2023-09-05 15:06:51 +08:00
int32 headSensorSpeed2 = 16;
2023-08-25 15:57:57 +08:00
//尾车速传1速度值m/stailSpeed1,1=1km/h
2023-09-05 15:06:51 +08:00
int32 tailSensorSpeed1 = 17;
2023-08-25 15:57:57 +08:00
//尾车速度2速度值m/stailSpeed2,1=1km/h
2023-09-05 15:06:51 +08:00
int32 tailSensorSpeed2 = 18;
2023-08-25 15:37:55 +08:00
//头车雷达速度值m/sheadRadarSpeed,1=1km/h
2023-09-05 15:06:51 +08:00
int32 headRadarSpeed = 19;
2023-08-25 15:37:55 +08:00
//尾车雷达速度值m/stailRadarSpeed,1=1km/h
2023-09-05 15:06:51 +08:00
int32 tailRadarSpeed = 20;
2023-09-12 08:55:20 +08:00
// 通讯终端
bool udpInterruption = 21;
}
// vobc发过来的列车信息
message TrainVobcState {
// 生命信号 每个周期+1
int32 lifeSignal = 1;
// TC1激活状态 1=激活
bool tc1Active = 2;
// TC2激活状态 1=激活
bool tc2Active = 3;
// 列车方向向前 1=方向向前
bool directionForward = 4;
// 列车方向向后 1=方向向后
bool directionBackward = 5;
// 列车牵引状态 1=牵引
bool tractionStatus = 6;
// 列车制动状态 1=制动
bool brakingStatus = 7;
// 列车紧急制动状态 1=紧急制动
bool emergencyBrakingStatus = 8;
// 列车折返状态AR 1=折返
bool turnbackStatus = 9;
// 跳跃状态 1=跳跃
bool jumpStatus = 10;
// ATO模式 1=ATO模式
bool ato = 11;
// FAM模式 1=FAM模式
bool fam = 12;
// CAM模式 1=CAM模式
bool cam = 13;
// 牵引安全回路 1=牵引安全切除
bool tractionSafetyCircuit = 14;
// 停放制动状态 1=停放施加
bool parkingBrakeStatus = 15;
// 保持制动状态 1=保持制动施加
bool maintainBrakeStatus = 16;
// 列车牵引力 100=1KN
int64 tractionForce = 17;
// 列车制动力 100=1KN
int64 brakeForce = 18;
//【列车载荷 100=1ton
int64 trainLoad = 19;
// 列车开左门指令 1=开门
bool leftDoorOpenCommand = 20;
// 列车开右门指令 1=开门
bool rightDoorOpenCommand = 21;
// 列车关左门指令 1=关门
bool leftDoorCloseCommand = 22;
// 列车关右门指令 1=关门
bool rightDoorCloseCommand = 23;
// 整列车门关好 1=门关好
bool allDoorClose = 24;
2023-09-12 08:55:20 +08:00
// 通讯终端
bool udpInterruption = 25;
2023-07-07 10:37:29 +08:00
}
2023-07-11 16:06:34 +08:00
2023-07-11 16:11:49 +08:00
////////////////////////////////////////////////////////////////////////////
2023-07-11 16:06:34 +08:00
//仿真运行时状态变化量,当前时刻与上一时刻比较得到
message VariationStatus{
//新增或变化的列车的状态
repeated TrainState updatedTrain = 1;
//移除的列车的索引
repeated string removedTrainId = 2;
//状态发生变化的道岔
repeated SwitchState updatedSwitch = 3;
//状态发生变化的区段
repeated SectionState updatedSection = 4;
}
2023-07-11 16:11:49 +08:00
//仿真运行时的所有设备的状态
message AllDevicesStatus{
//所有列车状态
repeated TrainState trainState = 1;
//所有道岔状态
repeated SwitchState switchState = 2;
//所有类型区段状态
repeated SectionState sectionState = 3;
}
2023-07-13 18:13:43 +08:00
//服务器端向前端推送的设备状态信息
message PushedDevicesStatus{
//true-全量设备状态信息此时allStatus有效
//false - 增量设备状态消息此时varStatus有效
bool all = 1;
//增量设备状态消息
VariationStatus varStatus = 2;
//全量设备状态信息
AllDevicesStatus allStatus = 3;
}
2023-08-30 10:26:35 +08:00
// 仿真信息状态
message SimulationStatus {
string simulationId = 1;
int32 mapId = 2;
int32 projectId = 3;
}
// 变更信息状态
message MemoryDataStatus {
2023-08-30 10:30:38 +08:00
repeated SimulationStatus allSimulations = 1;
2023-08-30 10:26:35 +08:00
2023-08-30 10:30:38 +08:00
repeated SimulationStatus addSimulations = 2;
repeated SimulationStatus removeSimulations = 3;
2023-08-30 10:26:35 +08:00
}