512 lines
15 KiB
Protocol Buffer
512 lines
15 KiB
Protocol Buffer
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列表
|
||
}
|