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; // 其他线设备列表 repeated IbpBox ibpBoxs = 43; // ibp地图打开按钮 repeated PslBox pslBoxs = 44; // psl地图打开按钮 repeated CarWashing carWashings = 45; // 洗车机 repeated GarageDoor garageDoors = 46; // 车库门 repeated FloodGate floodGates = 47; // 防淹门 repeated GarageDoorBox garageDoorBoxes = 48; //车库门Psl开启按钮 } message Canvas { // 画布宽 int32 width = 1; // 画布高 int32 height = 2; // 背景色 string backgroundColor = 3; // 视口变换 Transform viewportTransform = 4; //画布格子背景 Grid gridBackground = 5; } //格子背景 message Grid { bool hasGrid = 1; string lineColor = 2; // 线色 int32 space = 3; //间隔 } 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;//电源屏 GarageDoor = 11; CarWashing = 12; } 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; //应答器固定用户报文 string originalCode = 13; //应答器原编号(厂商提供数据编号) } 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 IbpBox { CommonInfo common = 1; string code = 2; string refIbpMapCode = 3; // 关联Ibp地图Code uint32 refStationId = 4; // 关联车站id } message PslBox { CommonInfo common = 1; string code = 2; string refPslMapCode = 3; // 关联Psl地图Code uint32 refPlatformId = 4; // 关联站台id } /** 坡度公里标 */ 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 GarageDoor { CommonInfo common = 1; string code = 2; uint32 linkSection = 3; //关联区段 repeated uint32 centralizedStations = 4; // 集中站Id列表; } /** 洗车机 */ message CarWashing { CommonInfo common = 1; string code = 2; uint32 linkSection = 3; //关联区段 repeated uint32 centralizedStations = 4; // 集中站Id列表; } /** 防淹门 */ message FloodGate { CommonInfo common = 1; string code = 2; uint32 linkSection = 3; //关联区段 repeated uint32 centralizedStations = 4; // 集中站Id列表; } /** 信标 */ 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; //动力学参数 // string trainControlMapCode = 8; int32 trainControlMapId = 9; } // 其他线 message OtherLine { string name = 1; repeated string oldids = 2; // 设备id列表 repeated uint32 ids = 3; // 设备id列表 } //车库门控制盒 message GarageDoorBox { CommonInfo common = 1; string code = 2; string refPslMapCode = 3; // 关联的Psl地图的code(名称) uint32 refGarageDoorId = 4; // 关联的车库门的id bool flip = 5; // 是否翻转(前端显示) }