rts-sim-testing-message/protos/stationLayoutGraphics.proto
2023-11-08 16:13:36 +08:00

512 lines
15 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";
option go_package = "./ts/protos/graphicData";
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;
repeated StopPosition stopPositions = 18;
repeated SpksSwitch spksSwitchs = 19;
repeated EsbButton esbButtons = 20; // 紧急关闭按钮
repeated GatedBox gateBoxs = 21; // 站台开门/关门/发车按钮整合控制箱
repeated Transponder transponders = 22; // 应答器
repeated Slope slopes = 23; // 坡度
repeated CalculateLink CalculateLink = 24; // 计算link信息
repeated SlopeKiloMarker slopeKiloMarker = 25; //坡度公里标
repeated CurvatureKiloMarker curvatureKiloMarker = 26; //曲度公里标
repeated Curvature curvatures = 27; // 曲度
repeated TrackSection trackSections = 28; //轨道区段
repeated TrackLogicSection trackLogicSections = 29; //轨道逻辑区段
//UniqueIdType UniqueIdPrefix = 30;//设备唯一编码--前缀
UniqueIdOfStationLayout UniqueIdPrefix = 31;//设备唯一编码--前缀
repeated KilometerConvert kilometerConvertList = 32;//公里标转换列表
repeated ScreenDoor screenDoors = 33;
repeated StationRelateDevice stationRelateDeviceList = 34; // 关联设备列表
repeated SectionCodePoint sectionCodePointList = 35; // 物理区段码位表
ScreenDoorConfig screenDoorConfig = 36;//屏蔽门的配置--子屏蔽门的数量和编组列表
}
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; // 屏蔽门上下
int32 index = 5; //索引
//int32 refStationIndex = 6; //关联车站索引
// repeated string centralizedStations = 7; // 集中站列表
//repeated RelatedRef platformRef = 8; //站台关联的车站和物理区段
string refStationId = 9; //关联的车站的id
string refSectionId = 10; //关联的物理区段id
}
message ScreenDoor {
CommonInfo common = 1;
string code = 2;
//int32 sonDoorAmount = 3; //子屏蔽门的数量
string refPlatformId = 4; //关联的站台
//repeated ScreenDoorGroup screenDoorGroupList = 5;//编组列表
}
message ScreenDoorConfig {
int32 sonDoorAmount = 1; //子屏蔽门的数量
repeated ScreenDoorGroup screenDoorGroupList = 2;//编组列表
}
message ScreenDoorGroup {
int32 trainGroupAmount = 1; //列车编组数量
int32 startSmallDoor = 2; //起始的屏蔽门编号
int32 endSmallDoor = 3; //结束的屏蔽门编号
}
message Station {
CommonInfo common = 1;
string code = 2;//车站站名
// bool hasControl = 3; // 是否有控制
bool concentrationStations = 4; //是否集中站
// string kilometerCode = 5; //公里标
KilometerSystem kilometerSystem = 6; //公里标
int32 index = 7;
string refIbpMapCode = 8; // 关联IBP地图Code
string stationName = 9; //车站名
}
message TrainWindow {
CommonInfo common = 1;
string code = 2;
string sectionId = 3;
}
message AxleCounting {
enum TypeDetectionPoint {
AxleCounting = 0;
SectionBoundary = 1;
}
CommonInfo common = 1;
string code = 2; // 名称
KilometerSystem kilometerSystem = 3; //公里标
repeated RelatedRef axleCountingRef =
4; // 计轴关联的非岔区物理区段和道岔设备id和端口
int32 index = 5; //计轴的索引编号
//bool invent = 6; //是否虚拟计轴--一般是最末端
TypeDetectionPoint type = 7; //检测点的类型:计轴、区段边界
repeated string centralizedStations = 8; // 集中站列表
}
// message Train {
// CommonInfo common = 1;
// string code = 2;
// }
// message IscsFan {
// CommonInfo common = 1;
// string code = 2;
// }
message Turnout { //(后端不关注)
enum SwitchMachineType {
Unknown = 0;
ZDJ9_Single = 1;
ZDJ9_Double = 2;
}
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; // 道岔公里标
int32 index = 14; //索引
string paTrackSectionId = 15; // A端轨道区段id
string pbTrackSectionId = 16; // B端轨道区段id
string pcTrackSectionId = 17; // C端轨道区段id
SwitchMachineType switchMachineType = 18; // 转辙机类型
repeated string centralizedStations = 19; // 集中站列表
}
/** 左右行 **/
enum Direction {
LEFT = 0;
RIGHT = 1;
}
message KilometerSystem {
int64 kilometer = 1; //公里标mm
string coordinateSystem = 2; //坐标系
Direction direction = 3; //左右行
}
message Signal {
CommonInfo common = 1;
string code = 2;
bool mirror = 3;
// int64 kilometer = 4;
// string coordinateSystem = 5;
KilometerSystem kilometerSystem = 6;
int32 index = 7; //索引
RelatedRef refDev = 8; //关联设备(区段/道岔)
repeated string centralizedStations = 9; // 集中站列表
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
enum Model{
HLU = 0;//红绿黄
HL = 1;//红绿,
HLU_FU = 2;//红绿黄,封黄灯
HLU_FL = 3;//红绿黄,封绿
AB = 4;//蓝白
HBU = 5;//红白黄
}
// 信号机模型类型
Model mt = 10;
}
/** 物理区段(包含岔区和非岔区) */
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; // 索引
string trackSectionId = 9; // 下属轨道区段id
bool isCurve = 10; // 是否曲线
int32 segmentsCount = 12; // 曲线分段数
repeated string centralizedStations = 13; // 集中站列表
}
//关联设备
message RelatedRef {
enum DeviceType {
Section = 0;
Turnout = 1;
TrainWindow = 2;
AxleCounting = 3;
SectionLink = 4;
signal = 5;
station = 6;
ScreenDoor = 7;
SignalFaultAlarm = 8;
Breakers = 9;//断路器
PowerScreen = 10;//电源屏
}
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 Transponder { // 应答器
CommonInfo common = 1;
string code = 2;
int32 transponderType = 3;
int32 index = 4; // 索引编号
KilometerSystem kilometerSystem = 5; //公里标
RelatedRef TransponderRef = 6; //关联关系
repeated string centralizedStations = 7; // 集中站列表
}
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; //关联道岔的正反位--0是定位1是反位
int32 index = 7; //计轴区段的索引编号
}
message LogicSection { // 逻辑区段
CommonInfo common = 1;
string code = 2; // 名称
repeated Point points = 3;
string axleSectionId = 4; // 关联的计轴区段Id
int32 index = 5; // 索引编号
string turnoutId = 6; // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
}
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(物理区段/道岔)由另一端(物理区段/道岔处理)
bool isCurve = 8; // 是否曲线
int32 segmentsCount = 9; // 曲线分段数
}
message TrackLogicSection { //轨道逻辑区段
CommonInfo common = 1;
repeated Point points = 2;
string code = 3; //名称
int32 length = 4; //长度(mm)
}
message StopPosition {
enum CoachNum {
Four = 0;
Six = 1;
Eight = 2;
}
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
CoachNum coachNum = 4; //编组数量
int32 index = 5; //索引
KilometerSystem kilometerSystem = 6;
RelatedRef refDev = 7; // 关联设备(区段)
}
message SpksSwitch {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
// int32 refStand = 5; //关联站台索引
repeated string refSections = 6; // 关联物理区段id
string refStand = 7; // 关联站台
}
message EsbButton {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
// int32 refStand = 5; // 关联站台索引
string refStand = 6; // 关联站台
}
message GatedBox {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
string refScreenDoor = 5; // 关联屏蔽门
string refGatedBoxMapCode = 6; // 关联门控箱地图Code
}
/** 坡度公里标 */
message SlopeKiloMarker {
CommonInfo common = 1;
string code = 2;
repeated KilometerSystem kilometerSystem = 4; //公里标数据
}
/** 曲度公里标 */
message CurvatureKiloMarker {
CommonInfo common = 1;
string code = 2;
repeated KilometerSystem kilometerSystem = 4; //公里标数据
}
message Slope {
CommonInfo common = 1;
repeated Point points = 2;
sint32 slopeNumber = 3; //坡度的值--正负代表上下坡
repeated string refDeviceId = 4; // 坡度关联的(坡度公里标)
}
message Curvature {
CommonInfo common = 1;
repeated Point points = 2;
sint32 curvatureNumber = 3; //曲线的半径--正代表外侧;负代表内侧
repeated string refDeviceId = 4; // 曲线关联的(曲度公里标)
}
// 计算link结构
message CalculateLink {
CommonInfo common = 1;
repeated Point points = 2;
int32 length = 3; //长度mm
RelatedRef aRelatedRef = 4; // A端最小端关联的端点 (道岔端点)
RelatedRef bRelatedRef = 5; // B端最大端关联的端点 (道岔端点)
repeated DevicePosition devicePositions = 6; //设备在link上的位置
int32 index = 7; // link唯一标识
message DevicePosition {
int32 offset = 1;
string deviceId = 2;
string deviceType = 3;
}
}
message UniqueIdOfStationLayout {
string city = 1;//城市
string lineId = 2;//线路号
string mainCoordinateSystem = 3;//地图的公里标主坐标系
}
//公里标转换
message KilometerConvert {
KilometerSystem kmA = 1;
KilometerSystem kmB = 2;
bool sameTrend = 3; //相同趋势(同增同减)?
}
/* 车站关联的设备列表 */
message StationRelateDevice {
string code = 1;//设备编号
repeated DeviceCombinationtype combinationtypes = 2; //组合类型
RelatedRef.DeviceType deviceType = 3;//设备类型
}
message DeviceCombinationtype {
string code = 1;
repeated string refDevices = 2;//车站关联的设备
}
message SectionCodePoint {
string centralizedStation = 1;
repeated string sectionIds = 2; //物理区段id列表
}