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索引 string id = 1; //link上的列车id列表 repeated string trainId = 2; } //区段状态 message SectionState{ //区段索引 string id = 1; //区段占用 //true-占用;false-出清 bool occupied = 3; //计轴故障 bool axleFault = 4; } //道岔状态 message SwitchState{ //道岔索引 string 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; } //信号机状态 message SignalState{ //信号机索引 string 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{ //站台索引 string id = 1; // EMP继电器状态 bool empj = 2; // SPKS继电器状态 repeated ReplyState spksState = 3; // 门控箱继电器状态 MkxJState mkxJState = 4; } //车站状态 message StationState{ //车站索引 string id = 1; } //列车状态 message TrainState{ //列车索引 string id = 1; //列车初始link运行方向 bool up = 2; // 列车初始速度 float speed = 3; //列车长度,1=1mm int64 trainLength = 4; //列车是否显示 bool show = 5; // 列车车头所在设备ID string 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; } // 动力学列车状态 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=上坡true,0=下坡false bool upslope = 8; //列车当前运行方向,1 =上行true 0 =下行false bool runningUp = 9; //实际运行阻力(总)(N)totalResistance,1=1KN float runningResistanceSum = 10; //阻力1(空气阻力)(N)airResistance,1=1KN float airResistance = 11; //阻力2(坡道阻力)(N)slopeResistance,1=1KN float rampResistance = 12; //阻力3(曲线阻力)(N)curveResistance,1=1KN float curveResistance = 13; //列车运行速度(m/s)speed,1=1km/h int32 speed = 14; //头车速传1速度值(m/s)headSpeed1,1=1km/h int32 headSensorSpeed1 = 15; //头车速度2速度值(m/s)headSpeed2,1=1km/h int32 headSensorSpeed2 = 16; //尾车速传1速度值(m/s)tailSpeed1,1=1km/h int32 tailSensorSpeed1 = 17; //尾车速度2速度值(m/s)tailSpeed2,1=1km/h int32 tailSensorSpeed2 = 18; //头车雷达速度值(m/s)headRadarSpeed,1=1km/h int32 headRadarSpeed = 19; //尾车雷达速度值(m/s)tailRadarSpeed,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 { // 继电器索引 string id = 1; // 继电器吸合状态 bool xh = 2; // 继电器编号 string code = 3; } // 按钮状态 message ButtonState { string id = 1; bool down = 2; bool active = 3; // 带灯的按钮 } // 警铃状态 message AlarmState { string id = 1; bool active = 2; } // 灯状态 message LightState { string id = 1; bool active = 2; } // 屏蔽门状态 message PsdState { string 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 { string 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; }