rts-sim-testing-message/protos/stationLayoutGraphics.proto
2023-07-14 14:07:06 +08:00

262 lines
6.4 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 graphicData;
option java_package = "club.joylink.bjrtss.ats.verify.protos";
option java_outer_classname = "LayoutGraphicsProto";
message RtssGraphicStorage {
Canvas canvas = 1;
repeated Link links = 2;
repeated IscsFan iscsFans = 3;
repeated Platform Platforms = 4;
repeated Station stations = 5;
repeated Rect rects = 6;
repeated Train train = 7;
repeated Signal signals = 8;
repeated Turnout turnouts = 9;
repeated Section section = 10;
repeated Polygon polygons = 11;
repeated TrainWindow trainWindows = 12;
repeated AxleCounting axleCountings = 13;
repeated Separator separators = 14;
repeated SectionLink sectionLinks = 15;
repeated AxleCountingSection axleCountingSections = 16;
repeated LogicSection logicSections = 17;
}
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;
}
message Link {
CommonInfo common = 1;
string code = 2;
bool curve = 3; // 是否曲线
int32 segmentsCount = 4; // 曲线分段数
int32 lineWidth = 5; // 线宽
string lineColor = 6; // 线色
repeated Point points = 7; // 点坐标列表
}
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; // 画第一个点的坐标
}
message Polygon {
CommonInfo common = 1;
string code = 2;
int32 lineWidth = 3; // 线宽
string lineColor = 4; // 线色
repeated Point points = 5; // 点坐标列表
}
message Platform {
CommonInfo common = 1;
string code = 2;
bool hasdoor = 3; // 是否有屏蔽门
string direction = 4; // 行驶方向--屏蔽门上下
}
message Station {
CommonInfo common = 1;
string code = 2;
bool hasControl = 3; // 是否有控制
bool concentrationStations = 4; //是否集中站
// string kilometerCode = 5; //公里标
KilometerSystem kilometerSystem = 6; //公里标
}
message TrainWindow {
CommonInfo common = 1;
string code = 2;
string sectionId = 3;
}
message AxleCounting {
CommonInfo common = 1;
string code = 2;
KilometerSystem kilometerSystem = 3; //公里标
repeated RelatedRef axleCountingRef = 4; // 关联的设备
int32 indexNumber = 5; //计轴的索引编号
}
message Train {
CommonInfo common = 1;
string code = 2;
}
message IscsFan {
CommonInfo common = 1;
string code = 2;
}
message Turnout {
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; // 道岔公里标
}
message KilometerSystem {
int64 kilometer = 1;
string coordinateSystem = 2;
}
message Signal {
CommonInfo common = 1;
string code = 2;
bool mirror = 3;
// int64 kilometer = 4;
// string coordinateSystem = 5;
KilometerSystem kilometerSystem = 6;
}
/** 物理区段(包含岔区和非岔区) */
message Section {
enum SectionType {
Physical = 0;
TurnoutPhysical = 2;
}
CommonInfo common = 1;
string code = 2; // 编号
repeated Point points = 3; // 点列表
RelatedRef paRef = 4; // 区段A端关联的设备(非岔区)
RelatedRef pbRef = 5; // 区段B端关联的设备(非岔区)
SectionType sectionType = 6; // 区段类型
repeated string axleCountings = 7; // 区段对应的计轴
int32 index = 8; // 索引
}
message KilometerPoint {
Point point = 1;
int64 kilometer = 2;
string stName = 3;
}
//关联设备
message RelatedRef {
enum DeviceType {
Section = 0;
Turnout = 1;
TrainWindow = 2;
AxleCounting = 3;
SectionLink = 4;
}
enum DevicePort {
A = 0;
B = 1;
C = 2;
}
DeviceType deviceType = 1; //关联的设备类型
string id = 2; //关联的设备ID
DevicePort devicePort = 3; //关联的设备端口
}
//与道岔的位置关系
message TurnoutPosRef {
string id = 1; //道岔的ID
int32 position = 2; //道岔的正反为0是正位1是反位
}
message Separator { // 分隔符
CommonInfo common = 1;
string code = 2;
string separatorType = 3;
}
message SimpleRef{
enum DeviceType {
Turnout = 0;
AxleCounting = 1;
}
DeviceType deviceType = 1;
string id = 2;
}
message SectionLink {
CommonInfo common = 1;
string code = 2;
repeated Point points = 3;
bool up = 4; // 是否上行
SimpleRef aSimRef = 5; // SectionLink A端连接设备构建关系 AxleCounting/Turnout
SimpleRef bSimRef = 6; // SectionLink B端连接设备构建关系 AxleCounting/Turnout
RelatedRef aRef = 7; // SectionLink A端连接设备端口关系 SectionLink/Turnout
RelatedRef bRef = 8; //SectionLink B端连接设备端口关系 SectionLink/Turnout
int32 index = 9; // 索引编号
}
message AxleCountingSection { // 计轴区段
CommonInfo common = 1;
string code = 2;
repeated Point points = 3;
RelatedRef paRef = 4; // 区段A端关联的设备
RelatedRef pbRef = 5; // 区段B端关联的设备
repeated TurnoutPosRef turnoutPos = 6; //关联道岔的正反位
int32 indexNumber = 7; //区段的索引编号
}
message LogicSection { // 逻辑区段
CommonInfo common = 1;
string code = 2;
repeated Point points = 3;
string axleSectionId = 4; // 关联的计轴区段Id
int32 indexNumber = 5; // 索引编号
}