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

425 lines
12 KiB
Protocol Buffer
Raw Normal View History

2023-07-03 13:09:48 +08:00
syntax = "proto3";
package graphicData;
2023-07-06 17:41:10 +08:00
option java_package = "club.joylink.bjrtss.ats.verify.protos";
2023-07-03 13:09:48 +08:00
option java_outer_classname = "LayoutGraphicsProto";
2023-07-28 16:02:32 +08:00
option go_package = "./ats/verify/protos/graphicData";
2023-07-03 13:09:48 +08:00
message RtssGraphicStorage {
Canvas canvas = 1;
2023-07-14 14:05:09 +08:00
// repeated Link links = 2;
// repeated IscsFan iscsFans = 3;
2023-07-03 13:09:48 +08:00
repeated Platform Platforms = 4;
repeated Station stations = 5;
2023-07-14 14:05:09 +08:00
// repeated Rect rects = 6;
// repeated Train train = 7;
2023-07-03 13:09:48 +08:00
repeated Signal signals = 8;
repeated Turnout turnouts = 9;
repeated Section section = 10;
2023-07-14 14:05:09 +08:00
// repeated Polygon polygons = 11;
2023-07-03 16:16:49 +08:00
repeated TrainWindow trainWindows = 12;
repeated AxleCounting axleCountings = 13;
repeated Separator separators = 14;
2023-07-07 16:04:54 +08:00
repeated SectionLink sectionLinks = 15;
2023-07-07 17:17:17 +08:00
repeated AxleCountingSection axleCountingSections = 16;
2023-07-11 16:40:02 +08:00
repeated LogicSection logicSections = 17;
repeated StopPosition stopPositions = 18;
repeated SpksSwitch spksSwitchs = 19;
repeated EsbButton esbButtons = 20; // 紧急关闭按钮
2023-08-04 16:35:51 +08:00
repeated GatedBox gateBoxs = 21; // 站台开门/关门/发车按钮整合控制箱
2023-08-07 16:20:31 +08:00
repeated Transponder transponders = 22; // 应答器
repeated Slope slopes = 23; // 坡度
repeated CalculateLink CalculateLink = 24; // 计算link信息
repeated SlopeKiloMarker slopeKiloMarker = 25; //坡度公里标
repeated CurvatureKiloMarker curvatureKiloMarker = 26; //曲度公里标
2023-08-15 11:13:55 +08:00
repeated Curvature curvatures = 27; // 曲度
repeated TrackSection trackSections = 28; //轨道区段
repeated TrackLogicSection trackLogicSections = 29; //轨道逻辑区段
2023-07-03 13:09:48 +08:00
}
message Canvas {
// 画布宽
int32 width = 1;
// 画布高
int32 height = 2;
// 背景色
string backgroundColor = 3;
// 视口变换
Transform viewportTransform = 4;
}
message Point {
// x坐标
float x = 1;
// y坐标
float y = 2;
}
//变换
message Transform {
// 位移
Point position = 1;
// 缩放
Point scale = 2;
// 旋转弧度
float rotation = 3;
// 歪斜
Point skew = 4;
}
//子元素变换
message ChildTransform {
// 子元素名称
string name = 1;
// 子元素变换
Transform transform = 2;
}
// 公共属性
message CommonInfo {
string id = 1;
string graphicType = 2;
Transform transform = 3;
repeated ChildTransform childTransforms = 4;
}
2023-07-14 14:05:09 +08:00
// message Link {
// CommonInfo common = 1;
// string code = 2;
// bool curve = 3; // 是否曲线
// int32 segmentsCount = 4; // 曲线分段数
// int32 lineWidth = 5; // 线宽
// string lineColor = 6; // 线色
// repeated Point points = 7; // 点坐标列表
// }
2023-07-03 13:09:48 +08:00
2023-07-14 14:05:09 +08:00
// message Rect {
// CommonInfo common = 1;
// string code = 2;
// int32 lineWidth = 3; // 线宽
// string lineColor = 4; // 线色
// float width = 5; //宽度
// float height = 6; //高度
// int32 radius = 7; //圆角半径
// Point point = 8; // 画第一个点的坐标
// }
2023-07-03 13:09:48 +08:00
2023-07-14 14:05:09 +08:00
// message Polygon {
// CommonInfo common = 1;
// string code = 2;
// int32 lineWidth = 3; // 线宽
// string lineColor = 4; // 线色
// repeated Point points = 5; // 点坐标列表
// }
2023-07-03 13:09:48 +08:00
message Platform {
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
bool hasdoor = 3; // 是否有屏蔽门
string direction = 4; // 行驶方向--屏蔽门上下
int32 index = 5; //索引
2023-07-14 17:52:59 +08:00
int32 refStationIndex = 6; //关联车站索引
2023-07-03 13:09:48 +08:00
}
message Station {
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
// bool hasControl = 3; // 是否有控制
2023-07-03 13:09:48 +08:00
bool concentrationStations = 4; //是否集中站
2023-07-18 18:09:06 +08:00
// string kilometerCode = 5; //公里标
2023-07-03 13:09:48 +08:00
KilometerSystem kilometerSystem = 6; //公里标
2023-07-14 17:52:59 +08:00
int32 index = 7;
2023-07-03 13:09:48 +08:00
}
message TrainWindow {
CommonInfo common = 1;
string code = 2;
string sectionId = 3;
}
message AxleCounting {
2023-09-05 11:29:16 +08:00
enum TypeDetectionPoint {
2023-09-12 14:56:39 +08:00
AxleCounting = 0;
SectionBoundary = 1;
}
2023-07-03 13:09:48 +08:00
CommonInfo common = 1;
2023-08-04 16:36:55 +08:00
string code = 2; // 名称
KilometerSystem kilometerSystem = 3; //公里标
repeated RelatedRef axleCountingRef =
4; // 计轴关联的非岔区物理区段和道岔设备id和端口
2023-09-12 14:56:39 +08:00
int32 index = 5; //计轴的索引编号
bool invent = 6; //是否虚拟计轴--一般是最末端
2023-09-05 11:29:16 +08:00
TypeDetectionPoint type = 7; //检测点的类型:计轴、区段边界
2023-07-03 13:09:48 +08:00
}
2023-07-14 14:05:09 +08:00
// message Train {
// CommonInfo common = 1;
// string code = 2;
// }
2023-07-03 13:09:48 +08:00
2023-07-14 14:05:09 +08:00
// message IscsFan {
// CommonInfo common = 1;
// string code = 2;
// }
2023-07-03 13:09:48 +08:00
2023-08-04 16:35:51 +08:00
message Turnout { //(后端不关注)
2023-09-13 15:32:57 +08:00
enum SwitchMachineType {
Unknown = 0;
ZDJ9_Single = 1;
ZDJ9_Double = 2;
}
2023-07-03 13:09:48 +08:00
CommonInfo common = 1;
string code = 2;
repeated Point pointA = 6; // A端坐标列表
repeated Point pointB = 7; // B端坐标列表
repeated Point pointC = 8; // C端坐标列表
RelatedRef paRef = 9; // 道岔A端关联的设备
RelatedRef pbRef = 10; // 道岔B端关联的设备
RelatedRef pcRef = 11; // 道岔C端关联的设备
// KilometerSystem kilometerSystem = 12; // 道岔公里标
repeated KilometerSystem kilometerSystem = 13; // 道岔公里标
2023-08-04 16:35:51 +08:00
int32 index = 14; //索引
2023-08-15 11:13:55 +08:00
string paTrackSectionId = 15; // A端轨道区段id
string pbTrackSectionId = 16; // B端轨道区段id
string pcTrackSectionId = 17; // C端轨道区段id
2023-09-13 15:32:57 +08:00
SwitchMachineType switchMachineType = 18; // 转辙机类型
2023-08-04 16:35:51 +08:00
}
/** 左右行 **/
enum Direction {
LEFT = 0;
RIGHT = 1;
2023-07-03 13:09:48 +08:00
}
message KilometerSystem {
2023-08-04 16:35:51 +08:00
int64 kilometer = 1; //公里标mm
2023-07-14 15:29:47 +08:00
string coordinateSystem = 2; //坐标系
2023-08-04 16:35:51 +08:00
Direction direction = 3; //左右行
2023-07-03 13:09:48 +08:00
}
message Signal {
CommonInfo common = 1;
string code = 2;
bool mirror = 3;
// int64 kilometer = 4;
// string coordinateSystem = 5;
KilometerSystem kilometerSystem = 6;
2023-08-04 16:36:55 +08:00
int32 index = 7; //索引
2023-08-04 13:45:04 +08:00
RelatedRef refDev = 8; //关联设备(区段/道岔)
2023-07-03 13:09:48 +08:00
}
2023-07-12 10:49:03 +08:00
/** 物理区段(包含岔区和非岔区) */
2023-07-03 13:09:48 +08:00
message Section {
enum SectionType {
Physical = 0;
TurnoutPhysical = 2;
}
CommonInfo common = 1;
2023-08-04 16:35:51 +08:00
string code = 2; // 编号
repeated Point points = 3; // 点列表
RelatedRef paRef = 4; // 区段A端关联的设备(非岔区)(后端不关注)
RelatedRef pbRef = 5; // 区段B端关联的设备(非岔区)(后端不关注)
2023-07-12 10:49:03 +08:00
SectionType sectionType = 6; // 区段类型
repeated string axleCountings = 7; // 区段对应的计轴
int32 index = 8; // 索引
2023-08-15 11:13:55 +08:00
string trackSectionId = 9; // 下属轨道区段id
2023-09-07 16:54:32 +08:00
bool isCurve = 10; // 是否曲线
2023-09-12 14:56:39 +08:00
int32 segmentsCount = 12; // 曲线分段数
2023-07-03 13:09:48 +08:00
}
//关联设备
message RelatedRef {
enum DeviceType {
Section = 0;
Turnout = 1;
TrainWindow = 2;
AxleCounting = 3;
2023-07-12 13:04:55 +08:00
SectionLink = 4;
2023-07-03 13:09:48 +08:00
}
enum DevicePort {
A = 0;
B = 1;
C = 2;
}
DeviceType deviceType = 1; //关联的设备类型
string id = 2; //关联的设备ID
DevicePort devicePort = 3; //关联的设备端口
}
2023-07-14 13:58:05 +08:00
//计轴区段与道岔的位置关系
2023-07-11 15:34:19 +08:00
message TurnoutPosRef {
string id = 1; //道岔的ID
2023-07-14 13:43:46 +08:00
int32 position = 2; //道岔的正反为0是定位1是反位
2023-07-11 15:34:19 +08:00
}
2023-07-03 13:09:48 +08:00
message Separator { // 分隔符
CommonInfo common = 1;
string code = 2;
string separatorType = 3;
}
2023-07-07 16:04:54 +08:00
2023-07-26 17:44:48 +08:00
message Transponder { // 应答器
CommonInfo common = 1;
string code = 2;
int32 transponderType = 3;
2023-08-04 16:35:51 +08:00
int32 index = 4; // 索引编号
KilometerSystem kilometerSystem = 5; //公里标
2023-08-07 15:04:45 +08:00
RelatedRef TransponderRef = 6; //关联关系
2023-07-26 17:44:48 +08:00
}
2023-08-04 16:35:51 +08:00
message SimpleRef {
2023-07-12 13:04:55 +08:00
enum DeviceType {
Turnout = 0;
AxleCounting = 1;
}
DeviceType deviceType = 1;
string id = 2;
}
2023-07-07 16:04:54 +08:00
message SectionLink {
CommonInfo common = 1;
string code = 2;
repeated Point points = 3;
2023-07-14 14:07:06 +08:00
bool up = 4; // 是否上行
2023-08-15 11:13:55 +08:00
SimpleRef aSimRef =
5; // SectionLink A端连接设备构建关系 AxleCounting/Turnout //端点
SimpleRef bSimRef =
6; // SectionLink B端连接设备构建关系 AxleCounting/Turnout //端点
RelatedRef aRef =
7; // SectionLink A端连接设备端口关系 SectionLink/Turnout
2023-08-04 16:35:51 +08:00
RelatedRef bRef = 8; // SectionLink B端连接设备端口关系
// SectionLink/Turnout
int32 index = 9; // 索引编号
2023-07-07 16:04:54 +08:00
}
2023-07-07 17:17:17 +08:00
message AxleCountingSection { // 计轴区段
CommonInfo common = 1;
2023-07-14 15:07:39 +08:00
string code = 2; // 名称
2023-07-07 17:17:17 +08:00
repeated Point points = 3;
2023-07-14 13:58:05 +08:00
RelatedRef paRef = 4; // 计轴区段A端关联的计轴
RelatedRef pbRef = 5; // 计轴区段B端关联的计轴
repeated TurnoutPosRef turnoutPos = 6; //关联道岔的正反位--0是定位1是反位
2023-08-04 16:35:51 +08:00
int32 index = 7; //计轴区段的索引编号
2023-07-07 17:17:17 +08:00
}
2023-07-11 16:40:02 +08:00
message LogicSection { // 逻辑区段
CommonInfo common = 1;
2023-07-14 15:07:39 +08:00
string code = 2; // 名称
2023-07-11 16:40:02 +08:00
repeated Point points = 3;
string axleSectionId = 4; // 关联的计轴区段Id
2023-08-04 16:35:51 +08:00
int32 index = 5; // 索引编号
string turnoutId =
6; // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
2023-07-07 17:17:17 +08:00
}
2023-08-15 11:13:55 +08:00
message TrackSection { //轨道区段
enum TrackSectionType {
NORMAL = 0; //非岔区
FORK = 1; //岔区
}
CommonInfo common = 1;
repeated Point points = 2;
string code = 3; //名称
int32 index = 4; //索引
TrackSectionType type = 5; //类型
string destinationCode = 6; //目的地码
repeated string trackLogicSection = 7; //下属的逻辑区段id(非岔区)
// //关联的物理设备id(物理区段/道岔)由另一端(物理区段/道岔处理)
2023-09-12 15:42:39 +08:00
bool isCurve = 8; // 是否曲线
int32 segmentsCount = 9; // 曲线分段数
2023-08-15 11:13:55 +08:00
}
message TrackLogicSection { //轨道逻辑区段
CommonInfo common = 1;
repeated Point points = 2;
string code = 3; //名称
int32 length = 4; //长度(mm)
}
message StopPosition {
enum CoachNum {
Four = 0;
Six = 1;
2023-08-18 15:44:25 +08:00
Eight = 2;
}
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
bool flip = 3; // 是否翻转(前端显示)
CoachNum coachNum = 4; //编组数量
2023-08-04 16:35:51 +08:00
int32 index = 5; //索引
KilometerSystem kilometerSystem = 6;
2023-08-04 13:45:04 +08:00
RelatedRef refDev = 7; // 关联设备(区段)
}
message SpksSwitch {
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
int32 refStand = 5; //关联站台索引
repeated string refSections = 6; // 关联物理区段id
}
message EsbButton {
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
int32 refStand = 5; // 关联站台索引
}
2023-08-04 16:35:51 +08:00
message GatedBox {
CommonInfo common = 1;
string code = 2;
2023-08-04 16:35:51 +08:00
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
}
2023-08-04 16:35:51 +08:00
/** 坡度公里标 */
message SlopeKiloMarker {
CommonInfo common = 1;
string code = 2;
repeated KilometerSystem kilometerSystem = 4; //公里标数据
2023-08-04 16:35:51 +08:00
}
2023-08-07 15:27:43 +08:00
/** 曲度公里标 */
message CurvatureKiloMarker {
2023-08-04 16:35:51 +08:00
CommonInfo common = 1;
string code = 2;
repeated KilometerSystem kilometerSystem = 4; //公里标数据
2023-08-04 16:36:55 +08:00
}
2023-08-03 16:30:35 +08:00
message Slope {
CommonInfo common = 1;
2023-08-04 17:45:08 +08:00
repeated Point points = 2;
sint32 slopeNumber = 3; //坡度的值--正负代表上下坡
2023-08-07 14:33:32 +08:00
repeated string refDeviceId = 4; // 坡度关联的(坡度公里标)
2023-08-03 16:30:35 +08:00
}
2023-08-04 13:45:45 +08:00
2023-08-07 17:54:44 +08:00
message Curvature {
CommonInfo common = 1;
repeated Point points = 2;
2023-08-15 11:13:55 +08:00
sint32 curvatureNumber = 3; //曲线的半径--正代表外侧;负代表内侧
2023-08-07 17:54:44 +08:00
repeated string refDeviceId = 4; // 曲线关联的(曲度公里标)
}
2023-08-04 13:45:45 +08:00
// 计算link结构
message CalculateLink {
CommonInfo common = 1;
repeated Point points = 2;
2023-08-04 16:36:55 +08:00
int32 length = 3; //长度mm
2023-08-11 16:09:35 +08:00
RelatedRef aRelatedRef = 4; // A端最小端关联的端点 (道岔端点)
RelatedRef bRelatedRef = 5; // B端最大端关联的端点 (道岔端点)
2023-08-04 13:45:45 +08:00
repeated DevicePosition devicePositions = 6; //设备在link上的位置
2023-08-15 11:13:55 +08:00
int32 index = 7; // link唯一标识
2023-08-04 16:36:55 +08:00
message DevicePosition {
2023-08-04 13:45:45 +08:00
int32 offset = 1;
string deviceId = 2;
2023-08-08 18:01:57 +08:00
string deviceType = 3;
2023-08-04 13:45:45 +08:00
}
2023-08-04 16:35:51 +08:00
}