syntax = "proto3"; package state; option java_package = "club.joylink.bjrtss.ats.verify.protos"; option java_outer_classname = "DeviceStateProto"; option go_package = "./ats/verify/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; //区段类型 SectionType type = 2; //区段占用 //true-占用;false-出清 bool occupied = 3; } //道岔状态 message SwitchState{ //道岔索引 string id = 1; //道岔处于定位 bool normal = 2; //道岔处于反位 bool reverse = 3; } //信号机状态 message SignalState{ //信号机索引 string id = 1; } //站台状态 message PlatformState{ //站台索引 string id = 1; } //车站状态 message StationState{ //车站索引 string id = 1; } //列车状态 message TrainState{ //列车索引 string id = 1; //列车初始link运行方向 bool up = 2; //列车长度,1=1mm int64 trainLength = 3; //列车是否显示 bool show = 4; // 列车车头所在设备ID string headDeviceId = 5; // 列车车头所在设备偏移量 int64 headOffset = 6; // 设备端口 string devicePort = 7; // 运行方向指向(区段:A-B,道岔:-> 岔心) bool pointTo = 8; // 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小) bool runDirection = 9; // 列车车头方向 bool headDirection = 10; // 动力学信息 TrainDynamicState dynamicState = 11; // 半实物信息 TrainVobcState vobcState = 12; } // 动力学列车状态 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 int32 airResistance = 11; //阻力2(坡道阻力)(N)slopeResistance,1=1KN int32 rampResistance = 11; //阻力3(曲线阻力)(N)curveResistance,1=1KN int32 curveResistance = 12; //列车运行速度(m/s)speed,1=1km/h float speed = 13; //头车速传1速度值(m/s)headSensorSpeed1,1=1km/h float headSpeed1 = 14; //头车速度2速度值(m/s)headSensorSpeed2,1=1km/h float headSpeed2 = 15; //尾车速传1速度值(m/s)tailSensorSpeed1,1=1km/h float tailSpeed1 = 16; //尾车速度2速度值(m/s)tailSensorSpeed2,1=1km/h float tailSpeed2 = 17; //头车雷达速度值(m/s)headRadarSpeed,1=1km/h float headRadarSpeed = 18; //尾车雷达速度值(m/s)tailRadarSpeed,1=1km/h float tailRadarSpeed = 19; } // 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; } //////////////////////////////////////////////////////////////////////////// //仿真运行时状态变化量,当前时刻与上一时刻比较得到 message VariationStatus{ //新增或变化的列车的状态 repeated TrainState updatedTrain = 1; //移除的列车的索引 repeated string removedTrainId = 2; //状态发生变化的道岔 repeated SwitchState updatedSwitch = 3; //状态发生变化的区段 repeated SectionState updatedSection = 4; } //仿真运行时的所有设备的状态 message AllDevicesStatus{ //所有列车状态 repeated TrainState trainState = 1; //所有道岔状态 repeated SwitchState switchState = 2; //所有类型区段状态 repeated SectionState sectionState = 3; } //服务器端向前端推送的设备状态信息 message PushedDevicesStatus{ //true-全量设备状态信息,此时allStatus有效; //false - 增量设备状态消息,此时varStatus有效 bool all = 1; //增量设备状态消息 VariationStatus varStatus = 2; //全量设备状态信息 AllDevicesStatus allStatus = 3; }