rts-sim-testing-message/protos/device_state.proto
2024-08-06 11:24:43 +08:00

956 lines
26 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";
import "stationLayoutGraphics.proto";
import "common_data.proto";
import "request.proto";
package state;
option java_package = "club.joylink.bjrtss.ats.verify.protos";
option java_outer_classname = "DeviceStateProto";
option go_package = "joylink.club/bj-rtsts-server/dto/state_proto";
//option go_package = "dto/state_proto;";
//状态定义面向物理层即只定义物理状态,不定义逻辑层状态
//区段类型
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;
// 计轴复位
bool axleDrst = 5;
// 计轴预复位
bool axlePdrst = 6;
}
//道岔状态
message SwitchState{
//道岔索引
uint32 id = 1;
//道岔处于定位(表示)
bool normal = 2;
//道岔处于反位(表示)
bool reverse = 3;
//道岔处于定位(实际)
bool dw = 4;
//道岔处于反位(实际)
bool fw = 5;
// 道岔设置参数
request.PointsParam param = 6;
// 定操驱动
bool qdc = 7;
// 反操驱动
bool qfc = 8;
// 允许操驱动
bool qyc = 9;
// 定操采集
bool dc = 10;
// 反操采集
bool fc = 11;
// 允许操作采集
bool yc = 12;
// 是否占用
bool occupied = 13;
}
//信号机状态
message SignalState{
//信号机索引
uint32 id = 1;
//信号机的灯列表
Signal.Aspect aspect = 2;
// 信号机设置参数
request.SignalParam param = 3;
// 信号机继电器状态
map<string, bool> relayStateMap = 4;
}
//信号机显示定义
message Signal {
//信号机显示枚举
enum Aspect {
//灭灯
OFF = 0;
//红
H = 1;
//绿灯亮
L = 2;
//黄
U = 3;
//红黄
HU = 4;
//白
B = 5;
//蓝
A = 6;
}
}
//站台状态
message PlatformState{
//站台索引
uint32 id = 1;
// EMP继电器状态
bool empj = 2;
// SPKS继电器状态
repeated ReplyState spksState = 3;
// 门控箱继电器状态
MkxJState mkxJState = 4;
}
//车站状态
message StationState{
//车站索引
uint32 id = 1;
}
//列车连接状态
message TrainConnState{
bool conn = 1;//连接状态
TrainConnType connType = 2;
uint32 TrainControlMapId = 3; //关联的列车控制mapId
string typeName = 4;//连接名称
enum TrainConnType{
NONE = 0;//未知连接
VOBC = 1; //半实物
PC_SIM = 2; //PC仿真
/*PC_SIM_A = 3; //PC仿真
PC_SIM_B = 4; //PC仿真*/
}
}
//列车状态
message TrainState{
//列车索引
string id = 1;
//列车初始link运行方向
bool up = 2;
// 列车初始速度
float speed = 3;
//列车长度,1=1mm
int64 trainLength = 4;
//列车是否显示此状态仅在列车被删除时为false若需更改用途需增加列车被删除状态
bool show = 5;
// 列车车头所在设备ID
uint32 headDeviceId = 6;
// 列车车头所在设备偏移量
int64 headOffset = 7;
// 设备端口
string devicePort = 8;
// 位移方向指向(区段A-B,道岔:-> 岔心)
bool driftTo = 9;
// 列车运营上下行(公里标 上行:小 -> 大,下行:大 -> 小)
bool trainRunUp = 10;
// 列车车头方向 0=未激活1= 小 -> 大,2=大 -> 小
uint32 trainActiveDirection = 11;
// 动力学信息
TrainDynamicState dynamicState = 12;
// 半实物信息
TrainVobcState vobcState = 13;
// 所在公里标
int64 trainKilometer = 14;
// 控制响应延时
int64 controlDelayTime = 15;
// 列车轮径
int32 wheelDiameter = 16;
//列车动力学配置
common.TrainDynamicConfig trainDynamicConfig = 17;
//列车A端
common.TrainEndsState trainEndsA = 18;
//列车B端
common.TrainEndsState trainEndsB = 19;
// 列车尾端所在设备ID
uint32 tailDeviceId = 20;
// 列车尾端所在设备偏移量
int64 tailOffset = 21;
// 列车尾端所在设备端口
string tailDevicePort = 22;
// BTM状态
BTMState btmState = 23;
TrainControlState tcc = 24;
TrainConnState connState = 25; //列车连接第三方状态
SensorSpeedPulseCount pluseCount = 26;
VobcBtmState vobcBtm = 27;//vobc btm 状态
string oldLink = 28;
int64 oldLinkOffset = 29;
}
message VobcBtmState{
//缓存应答器报文
repeated TelegramState telegramState = 1;
//key = 报文序列号
map<uint32,VobcBtmHistoryState> history = 2;
message TelegramState{
string baliseId = 1;
string telegram = 2;
//btm 和应答器的距离(mm)
// int64 arriveDistance = 3;
//btm 和应答器离开的距离(mm)
// int64 leaveDistance = 4;
int64 arriveTime = 5;
int64 leaveTime = 6;
}
message VobcBtmHistoryState{
//发送次数
uint32 sendCount = 1;
//报文序列号
uint32 packetSendId = 2;
uint32 vobcLifeNum = 3;
//给vobc发送的整体数据
string sendTelegram =4;
//应答器报文
string balisePacket = 5;
//是否是空包
bool isFreePacket = 6;
}
}
//速度传感器脉冲数
message SensorSpeedPulseCount{
uint32 pulseCount1 = 1;
uint32 pulseCount2 = 2;
repeated float pulseCount3 = 3;
repeated float pulseCount4 = 4;
}
// 动力学列车状态
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=1N
float runningResistanceSum = 10;
//阻力1空气阻力NairResistance,1=1N
float airResistance = 11;
//阻力2坡道阻力NslopeResistance,1=1N
float rampResistance = 12;
//阻力3曲线阻力NcurveResistance,1=1N
float curveResistance = 13;
//列车运行速度m/sspeed,1=1m/s 此处放置的是转换后的数据km/h
int32 speed = 14;
//头车速传1速度值m/sheadSpeed1,1=1m/s 此处放置的是转换后的数据km/h
int32 headSensorSpeed1 = 15;
//头车速度2速度值m/sheadSpeed2,1=1m/s 此处放置的是转换后的数据km/h
int32 headSensorSpeed2 = 16;
//尾车速传1速度值m/stailSpeed1,1=1m/s 此处放置的是转换后的数据km/h
int32 tailSensorSpeed1 = 17;
//尾车速度2速度值m/stailSpeed2,1=1m/s 此处放置的是转换后的数据km/h
int32 tailSensorSpeed2 = 18;
//头车雷达速度值m/sheadRadarSpeed,1=1m/s 此处放置的是转换后的数据km/h
int32 headRadarSpeed = 19;
//尾车雷达速度值m/stailRadarSpeed,1=1m/s 此处放置的是转换后的数据km/h
int32 tailRadarSpeed = 20;
// 通讯中断
bool udpInterruption = 21;
// 加速
float acceleration = 22;
//列车位移
// int32 Displacement = 23;
float Displacement = 23;
}
// 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;
//强制门允许
bool forceDoorAllow = 27;
// 模式降级按钮
bool modeLevelDownBtn = 28;
// 确认按钮
bool confirmBtn = 29;
// 模式升级按钮
bool modeLevelUpBtn = 30;
// ATO发车按钮
bool atoSendTrainBtn = 31;
// 列车完整性
// bool trainIntegrity = 32;
// 车载ATP/ATO旁路状态
bool atpOrAtoBypassState = 33;
// 车辆牵引已切除状态
bool trainTractionCuted = 34;
// 障碍物检测按钮
bool obstacleCheckBtn = 35;
// 驾驶室激活反馈
// bool driverActiveReportBtn = 36;
// 制动重故障按钮
bool brakeHeavyFault = 37;
// 左门状态
bool leftDoorState = 38;
// 右门状态
bool rightDoorState = 39;
// 唤醒按钮
bool wakeUpBtn = 40;
// 检修按钮
bool overhaulBtn = 41;
// 欠压按钮
bool undervoltageBtn = 42;
// 休眠按钮
bool sleepBtn = 43;
// 紧急手柄拉下
bool emergentHandleDown = 44;
// 车门锁闭状态
bool doorLockState =45;
// 逃生门状态
bool lifeDoorState=46;
// 车辆低压上电状态
bool trainLowPowerResetState=47;
// ATP上电按钮
bool atpPowerOnBtn=48;
// AA自动开关门
bool doorModeAA=49;
//AM自开人关
bool doorModeAM=50;
// MM人开人关
bool doorModeMM=51;
// 外部紧急制动反馈
// bool outerEmergentBrakeReport = 52;
// 车门外指示灯
bool trainDoorOutLed = 53;
//本端ATP控车
bool localAtpControl = 54;
//ATO制动命令输出
bool atoBrakeCommand = 55;
// ATO牵引命令输出
bool atoTractionCommandOut = 56;
//ATO惰行命令输出
bool atoLazyCommandOut = 57;
//// AR灯命令
// bool arLightCommand = 58;
//ATO保持制动
bool atoAlwaysBrake=59;
//ATO开左门
bool atoOpenLeftDoor=60;
//ATO开右门
bool atoOpenRightDoor=61;
//ATO关左门
bool atoCloseLeftDoor=62;
// 零速信号
bool noSpeedSigle = 63;
// 列车启动指示灯
bool trainStartedLed = 64;
// 常用制动
bool mostUseBrake = 65;
// 过分相输出
bool splittingOut = 66;
// 模式继电器
bool modeRelay = 67;
// 牵引有效
bool tractionEffective=68;
// 制动有效
bool brakeEffective=69;
// 制动隔离
bool brakeQuarantine=70;
// 停放制动缓解
bool stopNotAllBrake=71;
// ATO牵引指令1
bool atoTractionCommand1 = 72;
// ATO牵引指令2
bool atoTractionCommand2=73;
// ATO牵引指令3
bool atoTractionCommand3=74;
uint32 mockInfo = 75; //车载接口输出的模拟量信息
// atp 切除开关
bool atpCutSwitch = 76;
//紧急制动指示灯
bool lightEmergencyBrakingStatus = 77;
//切牵引指示灯
bool lightTractionSafetyCircuit = 78;
//车头方向指示灯1
bool lightDir1 = 79;
//车头方向指示灯2
bool lightDir2 = 80;
//驾驶室激活
bool lightDriverActive = 81;
// request.TrainControl.Direction historyDir = 76; //历史行驶方向,用于列车操控时,方向旋钮更改方向时使用,不在前端显示
}
// 发给前端的列车状态
message TrainMapState{
//列车索引
string id = 1;
//列车初始link运行方向
bool up = 2;
// 列车初始速度
float initialSpeed = 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 driftTo = 9;
// 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小)
// bool runDirection = 10;
bool trainRunUp = 10;
// 列车车头方向
// bool headDirection = 11;
// 列车车头方向 0= 均为激活1=向小2=向大
uint32 trainActiveDirection = 11;
// 所在公里标
int64 trainKilometer = 12;
// 控制响应延时
int64 controlDelayTime = 13;
// 列车轮径
int32 wheelDiameter = 14;
// 动力学信息
// 生命信号 每个周期+1
int32 dynamicHeartbeat = 15;
//车头所在link的索引
string headLinkId = 16;
//车头所在link内的偏移量单位为mm
int64 headLinkOffset = 17;
//车尾所在link的索引
string tailLinkId = 18;
//车尾所在link内的偏移量单位为mm
int64 tailLinkOffset = 19;
//列车所占用的link的索引的列表
//顺序为从车头到车尾
repeated string occupiedLinkIndex = 20;
//列车所在位置坡度值,1=1‰
int32 slope = 21;
//列车所在位置坡度走势,1=上坡true0=下坡false
bool upslope = 22;
//列车当前运行方向,1 =上行true 0 =下行false
bool runningUp = 23;
//实际运行阻力NtotalResistance,1=1KN
float runningResistanceSum = 24;
//阻力1空气阻力NairResistance,1=1KN
float airResistance = 25;
//阻力2坡道阻力NslopeResistance,1=1KN
float rampResistance = 26;
//阻力3曲线阻力NcurveResistance,1=1KN
float curveResistance = 27;
//列车运行速度m/sspeed,1=1km/h
int32 speed = 28;
//头车速传1速度值m/sheadSpeed1,1=1km/h
int32 headSensorSpeed1 = 29;
//头车速度2速度值m/sheadSpeed2,1=1km/h
int32 headSensorSpeed2 = 30;
//尾车速传1速度值m/stailSpeed1,1=1km/h
int32 tailSensorSpeed1 = 31;
//尾车速度2速度值m/stailSpeed2,1=1km/h
int32 tailSensorSpeed2 = 32;
//头车雷达速度值m/sheadRadarSpeed,1=1km/h
int32 headRadarSpeed = 33;
//尾车雷达速度值m/stailRadarSpeed,1=1km/h
int32 tailRadarSpeed = 34;
// 通讯中断
bool dynamicInterruption = 35;
// 加速
float acceleration = 36;
// 半实物信息
// 生命信号 每个周期+1
int32 vobcLifeSignal = 37;
// TC1激活状态 1=激活
bool tc1Active = 38;
// TC2激活状态 1=激活
bool tc2Active = 39;
// 列车方向向前 1=方向向前
bool directionForward = 40;
// 列车方向向后 1=方向向后
bool directionBackward = 41;
// 列车牵引状态 1=牵引
bool tractionStatus = 42;
// 列车制动状态 1=制动
bool brakingStatus = 43;
// 列车紧急制动状态 1=紧急制动
bool emergencyBrakingStatus = 44;
// 列车折返状态AR 1=折返
bool turnbackStatus = 45;
// 跳跃状态 1=跳跃
bool jumpStatus = 46;
// ATO模式 1=ATO模式
bool ato = 47;
// FAM模式 1=FAM模式
bool fam = 48;
// CAM模式 1=CAM模式
bool cam = 49;
// 牵引安全回路 1=牵引安全切除
bool tractionSafetyCircuit = 50;
// 停放制动状态 1=停放施加
bool parkingBrakeStatus = 51;
// 保持制动状态 1=保持制动施加
bool maintainBrakeStatus = 52;
// 列车牵引力 100=1KN
int64 tractionForce = 53;
// 列车制动力 100=1KN
int64 brakeForce = 54;
//【列车载荷 100=1ton
int64 trainLoad = 55;
// 列车开左门指令 1=开门
bool leftDoorOpenCommand = 56;
// 列车开右门指令 1=开门
bool rightDoorOpenCommand = 57;
// 列车关左门指令 1=关门
bool leftDoorCloseCommand = 58;
// 列车关右门指令 1=关门
bool rightDoorCloseCommand = 59;
// 整列车门关好 1=门关好
bool allDoorClose = 60;
// 通讯中断
bool vobcInterruption = 61;
//列车动力学配置
TrainDynamicConfigMqtt trainDynamicConfig = 62;
//列车A端
TrainEndsStateMqtt trainEndsA = 63;
//列车B端
TrainEndsStateMqtt trainEndsB = 64;
//列车位移
// int32 Displacement = 65;
float Displacement = 65;
// 列车车尾所在设备ID
uint32 tailDeviceId = 66;
// 列车车尾所在设备偏移量
int64 tailOffset = 67;
// 列车车尾所在设备端口
string tailDevicePort = 68;
// BTM状态
BTMState btmState = 69;
TrainConnState connState = 70; //列车连接第三方状态
}
message BtmStateCache{
repeated BTMState btmStateList = 1;
}
message BTMState {
uint32 dataSerialNumber = 1; //数据流水号0~255变化每次加一
uint32 baliseCount = 2; //应答器计数(每过一个应答器加一,在同一个应答器内不变)0~255
uint32 messageCounter = 3; //报文计数器 (每解出一个报文加一)0~255
string telegram = 4;//应答器用户报文16进制字符串
int64 distance =5; //BTM天线中心到应答器的距离mm
bool aboveBalise = 6; //BTM天线即将经过应答器
string baliseTelegramForPcSimResend = 7; //列车pc仿真暂存应答器回复数据
string telegram128 = 8 ;//应答器报文12816进制字符串
string baliseId = 9;
bool isSend = 10;//记录是否发送过
}
//动力学相关参数返回数据因golang float类型数据序列化后丢失精度故使用string
//此类型需要与 common_data 中的 TrainDynamicConfig类型属性保持一致
message TrainDynamicConfigMqtt{
//基本阻力参数A 原本数据float
string davisParamA = 1;
// 基本阻力参数B 原本数据float
string davisParamB = 2;
// 基本阻力参数C 原本数据float
string davisParamC = 3;
//曲线阻力参数R1 原本数据float
string curveResistanceParamR1 = 4;
// 曲线阻力参数R2 原本数据float
string curveResistanceParamR2 = 5;
// 曲线阻力参数R3 原本数据float
string curveResistanceParamR3 = 6;
// 曲线阻力参数R4 原本数据float
string curveResistanceParamR4 = 7;
//旋转质量参数 原本数据float
string revolvingMassParam = 8;
//是否跳跃
bool jump = 9;
//打滑加速度(m/s) 默认0 原本属性 float
string slipA = 10;
// 打滑冲击率(m/s) 默认0
string slipR = 11;
// 打滑持续时间ms 默认0
int32 slipD = 12;
// 空转加速度m/s2默认值0 原本属性 float
string idlingA = 14;
// 空转冲击率m/s3默认值0
string idlingR = 15;
// 空转持续时间ms默认值0
int32 idlingD = 16;
//过标/欠标mm正数过标负数欠标
int32 stopSign = 17;
// 前溜/后溜m/s正数前溜负数后溜默认值0 原本属性 float
string slide = 18 ;
//列车载荷
// int32 trainLoad = 19;
}
//列车一端的状态
message TrainEndsStateMqtt{
//速度传感器
bool speedSensorEnableA = 1;
bool speedSensorEnableB = 2;
//雷达是否有效
bool radarEnable = 3;
//雷达测速差值(千米/小时) 原本数据float
string radarCheckSpeedDiff = 4;
//雷达检测时间(秒)
int32 radarCheckTime = 5;
bool accEnable = 6;
//加速度测速差值(米/秒)
string accCheckSpeedDiff = 7;
//加速度持续时间
int32 accCheckTime = 8;
// 速传速度输出(千米/小时)
int32 accOutSpeed = 9;
// 雷达速度输出(千米/小时)
int32 radarOutSpeed = 10;
}
// 继电器状态
message ReplyState {
// 继电器索引
uint32 id = 1;
// 继电器吸合状态
bool xh = 2;
// 继电器编号
string code = 3;
// 是否强制
bool force = 4;
}
// 按钮状态
message ButtonState {
uint32 id = 1;
bool down = 2;
bool active = 3; // 带灯的按钮
// bool bypass = 4; //摁钮,钥匙 是否旁路
}
// 警铃状态
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; //屏蔽门整体的关闭(继电器)状态
request.PsdParam param = 4; //屏蔽门设置的参数
bool zaw = 5; //有障碍物
}
//滑动门状态
message AsdState {
int32 code = 1; //滑动门的编号
bool kmdw = 2; //开门到位(实际位置)
bool gmdw = 3; //关门到位(实际位置)
bool mgj = 4; //门关继电器
bool zaw = 5; //有障碍物
bool force = 6; //强制开/关门
}
// 钥匙状态
message KeyState {
uint32 id = 1;
int32 gear = 2;
// bool bypass = 3; //摁钮,钥匙 是否旁路
}
// 战场图门控箱继电器状态
message MkxJState {
string code = 1;
repeated ReplyState replyState = 2;
}
// 应答器状态
message BaliseState {
uint32 id = 1;
graphicData.KilometerSystem km = 2; //当前公里标
string fixedTelegram = 3; //固定报文
string fixedUserTelegram = 4; //固定用户报文
string variableTelegram = 5; //可变报文
string variableUserTelegram = 6; //可变用户报文
bool work = 7; //是否正常工作
}
// 车站联锁驱采状态
message StationQc {
repeated State qdStates = 1; //驱动状态
repeated State cjStates = 2; //采集状态
message State {
int32 row = 1; //行
int32 col = 2; //列
bool on = 3; //接通
}
}
// 车库门
message CkmState {
uint32 id = 1; //车库门的id
bool mgj = 2; //车库门关闭继电器
request.CkmParam param = 3; //车库门设置的参数
bool local = 4; //本地/远程(门模式继电器)
bool mplj = 5; //门旁路继电器
}
// 洗车机
message XcjState {
uint32 id = 1; //车库门的id
request.XcjParam param = 2; //洗车机设置的参数
bool xqj = 3; //洗车请求
repeated bool twjList = 4; //停稳
bool tgqj = 5; //通过请求
bool xcjxj = 6; //洗车就绪
bool xcyxj = 7; //洗车允许
repeated bool cfjList = 8; //移动允许
bool jtj = 9; //紧急停车
bool tgyxj = 10; //通过允许
}
////////////////////////////////////////////////////////////////////////////
//仿真运行时状态变化量,当前时刻与上一时刻比较得到
message VariationStatus{
//新增或变化的列车的状态
repeated TrainMapState updatedTrain = 1;
//移除的列车的索引
repeated string removedTrainId = 2;
//状态发生变化的道岔
repeated SwitchState updatedSwitch = 3;
//状态发生变化的区段
repeated SectionState updatedSection = 4;
//状态发送变化的继电器
repeated ReplyState updatedReply = 5;
}
//仿真运行时的所有设备的状态
message AllDevicesStatus{
// 所有列车状态
repeated TrainMapState 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;
// 应答器状态
repeated BaliseState baliseState = 12;
// 车站联锁驱采状态
StationQc stationQc = 13;
// 车库门状态
repeated CkmState ckmStates = 14;
// 防淹门状态
repeated CkmState fymStates = 15;
// 洗车机状态
repeated XcjState xcjStates = 16;
}
//服务器端向前端推送的设备状态信息
message PushedDevicesStatus{
//true-全量设备状态信息此时allStatus有效
//false - 增量设备状态消息此时varStatus有效
bool all = 1;
//增量设备状态消息
VariationStatus varStatus = 2;
//全量设备状态信息
AllDevicesStatus allStatus = 3;
}
// 仿真信息状态
message SimulationStatus {
enum SimulationState {
Init = 0;
Running = 1;
Pause = 2;
Error = 3;
Destroy = 4;
}
string simulationId = 1;
SimulationState state = 2;
// string description = 3;
}
// 仿真在用的第三方接口状态列表
message SimulationThirdPartyApiService {
enum Type {
// 未定义
Undefined = 0;
// 与动力学接口服务
Dynamics = 1;
// 与半实物列车接口服务
SemiPhysicalTrain = 2;
//列车pc仿真
Train_pc_sim = 3;
}
// 服务状态
enum State {
// 服务正常
Normal = 0;
// 服务异常
Error = 1;
}
// 服务列表
repeated SimulationThirdPartyApiServiceState states = 1;
}
// 仿真第三方接口状态
message SimulationThirdPartyApiServiceState {
// 接口服务类型
SimulationThirdPartyApiService.Type type = 1;
// 服务状态
SimulationThirdPartyApiService.State state = 2;
// 服务描述
string serviceName = 3;
}
//列车控制状态
message TrainControlState{
map<string,ControlButton> buttons = 1;
repeated DriverKeySwitch driverKey = 2; //驾驶端激活
DirectionKeySwitch dirKey = 3; //接车运行方向
PushHandler pushHandler = 4; //牵引制动手柄
map<string, ControlLight> lightMaps = 5;
int64 lineInitTimeStamp12 = 6; //12号线列出初始化时间戳
bool line12ConnErr = 7;//12号线连接错误因为12号线atp故障此时atp需要重启还是会发送数据通过此次属性标记atp状态情况(多次观察atp故障时atp输出数字量返回的数据最后一个直接是0)
// uint32 initCount = 8;//初始化计数器
message ControlButton{
uint32 id = 1;
bool passed = 3;
}
message DriverKeySwitch{
uint32 id = 1;
bool val = 2; //0=关1=开
// request.DriverType dt = 3;
}
message DirectionKeySwitch{
uint32 id = 1;
uint32 val = 2; //0=后1=前,2=中位
}
//牵引制动手柄
message PushHandler{
uint32 id = 1;
int32 val = 2; // 牵引或制动 大于0是牵引小于0是制动 整体按照整型传输(*100)使用时除以100
}
message ControlLight{
uint32 id = 1;
bool val = 2;
}
}
//返回前端列车控制状态
message TrainControlStateMsg{
repeated TrainControlState.ControlButton buttons = 1;
repeated TrainControlState.DriverKeySwitch driverKey = 2; //驾驶端激活
TrainControlState.DirectionKeySwitch dirKey = 3; //接车运行方向
TrainControlState.PushHandler pushHandler = 4; //牵引制动手柄
repeated TrainControlState.ControlLight lights = 5;
}