rts-sim-testing-message/protos/device_state.proto
2023-12-13 16:18:29 +08:00

388 lines
8.9 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package state;
option java_package = "club.joylink.bjrtss.ats.verify.protos";
option java_outer_classname = "DeviceStateProto";
option go_package = "./ts/protos/state";
//状态定义面向物理层即只定义物理状态,不定义逻辑层状态
//区段类型
enum SectionType{
Any=0;
//计轴区段
Axle=1;
//逻辑区段
Logic=2;
//物理区段
Physic=3;
}
//相邻端点定义的link的状态
message LinkState{
//link索引
uint32 id = 1;
//link上的列车id列表
repeated string trainId = 2;
}
//区段状态
message SectionState{
//区段索引
uint32 id = 1;
//区段占用
//true-占用false-出清
bool occupied = 3;
//计轴故障
bool axleFault = 4;
}
//道岔状态
message SwitchState{
//道岔索引
uint32 id = 1;
//道岔处于定位(表示)
bool normal = 2;
//道岔处于反位(表示)
bool reverse = 3;
//道岔处于定位(实际)
bool dw = 4;
//道岔处于反位(实际)
bool fw = 5;
// 是否强制(屏蔽联锁驱动)
bool force = 6;
// 是否有失表故障
bool sb = 7;
// 是否有定位失表故障
bool dwsb = 8;
// 是否有反位失表故障
bool fwsb = 9;
// 是否有挤岔故障
bool jc = 10;
// 定操驱动
bool qdc = 11;
// 反操驱动
bool qfc = 12;
// 允许操驱动
bool qyc = 13;
// 是否定操
bool dc = 14;
// 是否反操
bool fc = 15;
// 是否允许操作
bool yc = 16;
// 是否占用
bool occupied = 17;
}
//信号机状态
message SignalState{
//信号机索引
uint32 id = 1;
//信号机的灯列表
Signal.Aspect aspect = 2;
}
//信号机显示定义
message Signal {
//信号机显示枚举
enum Aspect {
//无用值
Non = 0;
//物理灭灯
OFF = 1;
//绿灯亮
L = 2;
//红
H = 3;
//黄
U = 4;
//红黄
HU= 5;
//白
B=6;
//蓝
A=7;
}
}
//站台状态
message PlatformState{
//站台索引
uint32 id = 1;
// EMP继电器状态
bool empj = 2;
// SPKS继电器状态
repeated ReplyState spksState = 3;
// 门控箱继电器状态
MkxJState mkxJState = 4;
}
//车站状态
message StationState{
//车站索引
uint32 id = 1;
}
//列车状态
message TrainState{
//列车索引
string id = 1;
//列车初始link运行方向
bool up = 2;
// 列车初始速度
float speed = 3;
//列车长度,1=1mm
int64 trainLength = 4;
//列车是否显示
bool show = 5;
// 列车车头所在设备ID
uint32 headDeviceId = 6;
// 列车车头所在设备偏移量
int64 headOffset = 7;
// 设备端口
string devicePort = 8;
// 运行方向指向(区段A-B,道岔:-> 岔心)
bool pointTo = 9;
// 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小)
bool runDirection = 10;
// 列车车头方向
bool headDirection = 11;
// 动力学信息
TrainDynamicState dynamicState = 12;
// 半实物信息
TrainVobcState vobcState = 13;
// 所在公里标
int64 trainKilometer = 14;
// 控制响应延时
int64 controlDelayTime = 15;
// 列车轮径
int32 wheelDiameter = 16;
}
// 动力学列车状态
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
float airResistance = 11;
//阻力2坡道阻力NslopeResistance,1=1KN
float rampResistance = 12;
//阻力3曲线阻力NcurveResistance,1=1KN
float curveResistance = 13;
//列车运行速度m/sspeed,1=1km/h
int32 speed = 14;
//头车速传1速度值m/sheadSpeed1,1=1km/h
int32 headSensorSpeed1 = 15;
//头车速度2速度值m/sheadSpeed2,1=1km/h
int32 headSensorSpeed2 = 16;
//尾车速传1速度值m/stailSpeed1,1=1km/h
int32 tailSensorSpeed1 = 17;
//尾车速度2速度值m/stailSpeed2,1=1km/h
int32 tailSensorSpeed2 = 18;
//头车雷达速度值m/sheadRadarSpeed,1=1km/h
int32 headRadarSpeed = 19;
//尾车雷达速度值m/stailRadarSpeed,1=1km/h
int32 tailRadarSpeed = 20;
// 通讯中断
bool udpInterruption = 21;
// 加速
float acceleration = 22;
}
// 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;
// 通讯中断
bool udpInterruption = 25;
// 更新时间
int64 updateTime = 26;
}
// 继电器状态
message ReplyState {
// 继电器索引
uint32 id = 1;
// 继电器吸合状态
bool xh = 2;
// 继电器编号
string code = 3;
}
// 按钮状态
message ButtonState {
uint32 id = 1;
bool down = 2;
bool active = 3; // 带灯的按钮
}
// 警铃状态
message AlarmState {
uint32 id = 1;
bool active = 2;
}
// 灯状态
message LightState {
uint32 id = 1;
bool active = 2;
}
// 屏蔽门状态
message PsdState {
uint32 id = 1; //屏蔽门的id
repeated AsdState asdStates = 2; //滑动门状态
bool mgj = 3; //屏蔽门整体的关闭(继电器)状态
}
//滑动门状态
message AsdState {
int32 code = 1; //滑动门的编号
bool kmdw = 2; //开门到位(实际位置)
bool gmdw = 3; //关门到位(实际位置)
bool mgj = 4; //门关继电器
}
// 钥匙状态
message KeyState {
uint32 id = 1;
int32 gear = 2;
}
// 战场图门控箱继电器状态
message MkxJState {
string code = 1;
repeated ReplyState replyState = 2;
}
////////////////////////////////////////////////////////////////////////////
//仿真运行时状态变化量,当前时刻与上一时刻比较得到
message VariationStatus{
//新增或变化的列车的状态
repeated TrainState updatedTrain = 1;
//移除的列车的索引
repeated string removedTrainId = 2;
//状态发生变化的道岔
repeated SwitchState updatedSwitch = 3;
//状态发生变化的区段
repeated SectionState updatedSection = 4;
//状态发送变化的继电器
repeated ReplyState updatedReply = 5;
}
//仿真运行时的所有设备的状态
message AllDevicesStatus{
// 所有列车状态
repeated TrainState trainState = 1;
// 所有道岔状态
repeated SwitchState switchState = 2;
// 所有类型区段状态
repeated SectionState sectionState = 3;
// 所有继电器状态
repeated ReplyState replyState = 4;
// 所有信号机状态
repeated SignalState signalState = 5;
// 按钮状态
repeated ButtonState buttonState = 6;
// 警铃状态
repeated AlarmState AlarmState = 7;
// 灯状态
repeated LightState LightState = 8;
// 屏蔽门状态
repeated PsdState psdState = 9;
// 钥匙状态
repeated KeyState KeyState = 10;
// 站场图站台状态
repeated PlatformState platformState = 11;
}
//服务器端向前端推送的设备状态信息
message PushedDevicesStatus{
//true-全量设备状态信息此时allStatus有效
//false - 增量设备状态消息此时varStatus有效
bool all = 1;
//增量设备状态消息
VariationStatus varStatus = 2;
//全量设备状态信息
AllDevicesStatus allStatus = 3;
}
// 仿真信息状态
message SimulationStatus {
enum SimulationState {
PAUSE = 0;
START = 1;
ERROR = 2;
DESTROY = 3;
}
string simulationId = 1;
SimulationState state = 2;
string description = 3;
}