rts-sim-testing-message/protos/stationLayoutGraphics.proto
2024-02-02 17:18:32 +08:00

673 lines
22 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;
import "common_data.proto";
option java_package = "club.joylink.bjrtss.ats.verify.protos";
option java_outer_classname = "LayoutGraphicsProto";
option go_package = "joylink.club/bj-rtsts-server/dto/data_proto";
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;//屏蔽门的配置--子屏蔽门的数量和编组列表
repeated Beacon beacons = 37; // 信标
GenerateAxleCountingConfig generateAxleCountingConfig = 38;//一键生成计轴的配置
repeated DepartureTimer departureTimers = 39; // 发车计时器
repeated AutoReturnBox autoReturnBoxs = 40; // 自动折返按钮箱
repeated ConcentrationDividingLine concentrationDividingLines = 41; // 集中区分割线
repeated OtherLine otherLineList = 42; // 其他线设备列表
}
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 oldid = 1;
string graphicType = 2;
Transform transform = 3;
repeated ChildTransform childTransforms = 4;
uint32 id = 5;
}
// 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 {
enum PolygonType {
ConcentrationDividingLine = 0;
}
CommonInfo common = 1;
string code = 2; // 编号
PolygonType polygonType = 3; // 多边形类型
repeated Point points = 4; // 点列表
}
message ConcentrationDividingLine {
CommonInfo common = 1;
string code = 2; // 编号
repeated Point points = 3; // 点列表
string oldrefLeftStationId = 4;//左边关联的集中站id
string oldrefRightStationId = 5;//右边关联的集中站id
repeated NodeConWithSec nodeConWithSecs = 6;// 集中区分割线与区段的交点
bool isOtherLineConcentrationDividingLine = 7;//集中区分割线绘制在其它线的边界处
uint32 refLeftStationId = 8;//左边关联的集中站id
uint32 refRightStationId = 9;//右边关联的集中站id
}
message NodeConWithSec {
RelatedRef leftSection = 1;
RelatedRef rightSection = 2;
}
message Platform {
enum TypeOfPlatform {
Unknown = 0;
up = 1;
down = 2;
}
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 oldrefStationId = 9; //关联的车站的id
string oldrefSectionId = 10; //关联的物理区段id
string refEsbRelayCode = 11;//关联的紧急停车继电器的编号
TypeOfPlatform type = 12; //站台的上下行
uint32 refStationId = 13; //关联的车站的id
uint32 refSectionId = 14; //关联的物理区段id
}
message ScreenDoor {
CommonInfo common = 1;
string code = 2;
//int32 sonDoorAmount = 3; //子屏蔽门的数量
string oldrefPlatformId = 4; //关联的站台
//repeated ScreenDoorGroup screenDoorGroupList = 5;//编组列表
uint32 refPlatformId = 6; //关联的站台
}
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; //车站名
string stationNameAcronym = 10; // 车站名拼音简写
bool depots = 11; //是否车辆段
repeated string oldmanageStations = 12; // 如果是集中站——管理的车站-id
repeated uint32 manageStations = 13; // 如果是集中站——管理的车站-id
}
message TrainWindow {
CommonInfo common = 1;
string code = 2;
int32 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 oldcentralizedStations = 8; // 集中站Id列表
repeated uint32 centralizedStations = 9; // 集中站Id列表
}
message GenerateAxleCountingConfig {
repeated string oldbbConnect = 1; //需要在道岔bb连接处生成计轴的道岔id(填一个就行)
repeated string oldnoGenerateGroup = 2;//指定的道岔组不生成计轴
repeated uint32 bbConnect = 3; //需要在道岔bb连接处生成计轴的道岔id(填一个就行)
repeated uint32 noGenerateGroup = 4;//指定的道岔组不生成计轴
}
// 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 oldpaTrackSectionId = 15; // A端轨道区段id
string oldpbTrackSectionId = 16; // B端轨道区段id
string oldpcTrackSectionId = 17; // C端轨道区段id
SwitchMachineType switchMachineType = 18; // 转辙机类型
repeated string oldcentralizedStations = 19; // 集中站Id列表
repeated uint32 centralizedStations = 20; // 集中站Id列表
uint32 paTrackSectionId = 21; // A端轨道区段id
uint32 pbTrackSectionId = 22; // B端轨道区段id
uint32 pcTrackSectionId = 23; // C端轨道区段id
}
message KilometerSystem {
/** 左右行 **/
enum Direction {
LEFT = 0;
RIGHT = 1;
}
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 oldcentralizedStations = 9; // 集中站Id列表
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
// 如果没有说明,默认不封灯,无引导
// F-封 D-单 Y-有、带 Y-引导
// H-红 L-绿 U-黄 A-蓝 B-白
enum Model{
HL = 0; //2XH-1 红绿
HLU_FU = 1; //2XH-1 红绿黄,封黄灯,无引导
HLU_DU_YY = 2; //3XH-1 红绿黄,不封灯,有单黄,带引导
HLU_YY = 3; //3XH-2或JDXH 红绿黄,不封灯,无单黄,带引导
HLU_FL_DU_YY = 4;//3XH-3 红绿黄,封绿灯,有单黄,带引导
HLU_DU = 5; //3XH-4 红绿黄,不封灯,有单黄,无引导
AB = 6; //DXCH 蓝白
HBU_DU = 7; //JCKXH 红白黄,不封灯,有单黄,无引导
}
// 信号机模型类型
Model mt = 10;
//string belongStation = 11; // 所属车站(缩写)
Direction direction = 12; // 上下行
repeated uint32 centralizedStations = 13; // 集中站Id列表
}
/** 上下行(区段/信号机) */
enum Direction {
UP = 0;
DOWN = 1;
}
/** 物理区段(包含岔区和非岔区) */
message Section {
enum SectionType {
Physical = 0;
TurnoutPhysical = 2;
}
enum RunningDirection {
AtoB = 0;
BtoA = 1;
BOTH = 2;
}
CommonInfo common = 1;
string code = 2; // 编号
repeated Point points = 3; // 点列表
RelatedRef paRef = 4; // 区段A端关联的设备(非岔区)(后端不关注)
RelatedRef pbRef = 5; // 区段B端关联的设备(非岔区)(后端不关注)
SectionType sectionType = 6; // 区段类型
repeated string oldaxleCountings = 7; // 区段对应的计轴
// int32 index = 8; // 索引
string oldtrackSectionId = 9; // 下属轨道区段id
bool isCurve = 10; // 是否曲线
int32 segmentsCount = 12; // 曲线分段数
repeated string oldcentralizedStations = 13; // 集中站Id列表
RunningDirection normalRunningDirection = 14; //常规运行方向
bool isTurnBackZone = 15; // 是否为折返区域
Direction direction = 16; // 上下行
repeated uint32 axleCountings = 17; // 区段对应的计轴
uint32 trackSectionId = 18; // 下属轨道区段id
repeated uint32 centralizedStations = 19; // 集中站Id列表
}
//关联设备
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 oldid = 2; //关联的设备ID
DevicePort devicePort = 3; //关联的设备端口
uint32 id = 4;
}
//计轴区段与道岔的位置关系
message TurnoutPosRef {
string oldid = 1; //道岔的ID
int32 position = 2; //道岔的正反为0是定位1是反位
uint32 id = 3;
}
message Separator { // 分隔符
CommonInfo common = 1;
string code = 2;
string separatorType = 3;
}
message Transponder { // 应答器
enum TransponderTypeEnum {
FB = 0; // 固定应答器
WB = 1; // 轮径校正应答器
DB = 2; // 休眠唤醒应答器
VB = 3; // 主信号应答器
IB = 4; // 预告应答器
}
CommonInfo common = 1;
string code = 2;
// int32 transponderType = 3; // 作废
// int32 index = 4; // 索引编号
KilometerSystem kilometerSystem = 5; //公里标
RelatedRef TransponderRef = 6; //关联关系
repeated string oldcentralizedStations = 7; // 集中站Id列表
// bytes fixedTelegram = 8;//无源应答器固定报文
TransponderTypeEnum type = 9;//应答器类型
repeated uint32 centralizedStations = 10; // 集中站Id列表
string fixedTelegram = 11; //应答器固定报文
string fixedUserTelegram = 12; //应答器固定用户报文
}
message SimpleRef {
enum DeviceType {
Turnout = 0;
AxleCounting = 1;
}
DeviceType deviceType = 1;
string oldid = 2;
uint32 id = 3;
}
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 oldaxleSectionId = 4; // 关联的计轴区段Id
// int32 index = 5; // 索引编号
string oldturnoutId = 6; // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
uint32 axleSectionId = 7; // 关联的计轴区段Id
uint32 turnoutId = 8; // 关联的岔芯对应的道岔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 oldtrackLogicSection = 7; //下属的逻辑区段id(非岔区)
// //关联的物理设备id(物理区段/道岔)由另一端(物理区段/道岔处理)
bool isCurve = 8; // 是否曲线
int32 segmentsCount = 9; // 曲线分段数
repeated uint32 trackLogicSection = 10; //下属的逻辑区段id(非岔区)
}
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 oldrefSections = 6; // 关联物理区段id
string oldrefStand = 7; // 关联站台
repeated uint32 refSections = 8; // 关联物理区段id
uint32 refStand = 9; // 关联站台
}
message EsbButton {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
// int32 index = 4; //索引
// int32 refStand = 5; // 关联站台索引
string oldrefStand = 6; // 关联站台
uint32 refStand = 7; // 关联站台
string refEsbButtonMapCode = 8; // 关联紧急关闭按钮地图Code--关联PSL地图
}
message GatedBox {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
// int32 index = 4; //索引
string oldrefScreenDoor = 5; // 关联屏蔽门
string refGatedBoxMapCode = 6; // 关联门控箱地图Code
uint32 refScreenDoor = 7; // 关联屏蔽门
}
/** 坡度公里标 */
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 Beacon {
enum BeaconType {
Static = 0;
Dynamic = 1;
}
CommonInfo common = 1;
string code = 2;
BeaconType type = 3;
bool flip = 4;
}
message Slope {
CommonInfo common = 1;
repeated Point points = 2;
sint32 slopeNumber = 3; //坡度的值--正负代表上下坡
repeated string oldrefDeviceId = 4; // 坡度关联的(坡度公里标)
repeated uint32 refDeviceId = 5; // 坡度关联的(坡度公里标)
}
message Curvature {
CommonInfo common = 1;
repeated Point points = 2;
sint32 curvatureNumber = 3; //曲线的半径--正代表外侧;负代表内侧
repeated string oldrefDeviceId = 4; // 曲线关联的(曲度公里标)
repeated uint32 refDeviceId = 5; // 曲线关联的(曲度公里标)
}
// 计算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 DepartureTimer {
CommonInfo common = 1;
string code = 2;
string oldrefStand = 3; // 关联站台
string runDirection = 4; //运行方向
uint32 refStand = 5; // 关联站台
}
message AutoReturnBox {
CommonInfo common = 1;
string code = 2;
bool flip = 3; // 是否翻转(前端显示)
int32 index = 4; //索引
string oldrefStand = 5; // 关联站台
uint32 refStand = 6; // 关联站台
}
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 oldrefDevices = 2;//车站关联的设备
repeated uint32 refDevices = 3;//车站关联的设备
}
message SectionCodePoint {
string oldCentralizedStation = 1; // 集中站id
repeated string oldsectionIds = 2; //物理区段id列表
repeated uint32 sectionIds = 3; //物理区段id列表
uint32 centralizedStation = 4; // 集中站id
}
// 列车信息
message Train {
enum TrainModel { // 车型
A = 0;
B = 1;
C = 2;
D = 3;
}
TrainModel trainModel = 1; // 车型
int32 carriageLength = 2; // 列车车厢长度
int32 totalLength = 3; // 总长度
// int32 minDiameter = 4; // 车轮的最小直径
// int32 maxDiameter = 5; // 车轮的最大直径
string trainSets = 6; // 编组
common.TrainDynamicConfig dynamicConfig = 7; //动力学参数
}
// 其他线
message OtherLine {
string name = 1;
repeated string oldids = 2; // 设备id列表
repeated uint32 ids = 3; // 设备id列表
}