From 51c9eae5006b57e1acf9305267d4bafc88989d36 Mon Sep 17 00:00:00 2001 From: joylink_zhangsai <1021828630@qq.com> Date: Fri, 28 Jul 2023 15:23:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0protobuf=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protobuf/device_state.pb.go | 1194 ++++++++++ protobuf/main/generator_test.go | 5 - protobuf/main/main.go | 53 + protobuf/stationLayoutGraphics.pb.go | 3187 ++++++++++++++++++++++++++ 4 files changed, 4434 insertions(+), 5 deletions(-) create mode 100644 protobuf/device_state.pb.go delete mode 100644 protobuf/main/generator_test.go create mode 100644 protobuf/main/main.go create mode 100644 protobuf/stationLayoutGraphics.pb.go diff --git a/protobuf/device_state.pb.go b/protobuf/device_state.pb.go new file mode 100644 index 0000000..f2256f4 --- /dev/null +++ b/protobuf/device_state.pb.go @@ -0,0 +1,1194 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: device_state.proto + +package protobuf + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 区段类型 +type SectionType int32 + +const ( + SectionType_Any SectionType = 0 + // 计轴区段 + SectionType_Axle SectionType = 1 + // 逻辑区段 + SectionType_Logic SectionType = 2 + // 物理区段 + SectionType_Physic SectionType = 3 +) + +// Enum value maps for SectionType. +var ( + SectionType_name = map[int32]string{ + 0: "Any", + 1: "Axle", + 2: "Logic", + 3: "Physic", + } + SectionType_value = map[string]int32{ + "Any": 0, + "Axle": 1, + "Logic": 2, + "Physic": 3, + } +) + +func (x SectionType) Enum() *SectionType { + p := new(SectionType) + *p = x + return p +} + +func (x SectionType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SectionType) Descriptor() protoreflect.EnumDescriptor { + return file_device_state_proto_enumTypes[0].Descriptor() +} + +func (SectionType) Type() protoreflect.EnumType { + return &file_device_state_proto_enumTypes[0] +} + +func (x SectionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SectionType.Descriptor instead. +func (SectionType) EnumDescriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{0} +} + +// 相邻端点定义的link的状态 +type LinkState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // link索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // link上的列车id列表 + TrainId []string `protobuf:"bytes,2,rep,name=trainId,proto3" json:"trainId,omitempty"` +} + +func (x *LinkState) Reset() { + *x = LinkState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkState) ProtoMessage() {} + +func (x *LinkState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkState.ProtoReflect.Descriptor instead. +func (*LinkState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{0} +} + +func (x *LinkState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *LinkState) GetTrainId() []string { + if x != nil { + return x.TrainId + } + return nil +} + +// 区段状态 +type SectionState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 区段索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // 区段类型 + Type SectionType `protobuf:"varint,2,opt,name=type,proto3,enum=state.SectionType" json:"type,omitempty"` + // 区段占用 + // true-占用;false-出清 + Occupied bool `protobuf:"varint,3,opt,name=occupied,proto3" json:"occupied,omitempty"` +} + +func (x *SectionState) Reset() { + *x = SectionState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SectionState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SectionState) ProtoMessage() {} + +func (x *SectionState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SectionState.ProtoReflect.Descriptor instead. +func (*SectionState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{1} +} + +func (x *SectionState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SectionState) GetType() SectionType { + if x != nil { + return x.Type + } + return SectionType_Any +} + +func (x *SectionState) GetOccupied() bool { + if x != nil { + return x.Occupied + } + return false +} + +// 道岔状态 +type SwitchState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 道岔索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // 道岔处于定位 + Normal bool `protobuf:"varint,2,opt,name=normal,proto3" json:"normal,omitempty"` + // 道岔处于反位 + Reverse bool `protobuf:"varint,3,opt,name=reverse,proto3" json:"reverse,omitempty"` +} + +func (x *SwitchState) Reset() { + *x = SwitchState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchState) ProtoMessage() {} + +func (x *SwitchState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchState.ProtoReflect.Descriptor instead. +func (*SwitchState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{2} +} + +func (x *SwitchState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SwitchState) GetNormal() bool { + if x != nil { + return x.Normal + } + return false +} + +func (x *SwitchState) GetReverse() bool { + if x != nil { + return x.Reverse + } + return false +} + +// 信号机状态 +type SignalState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 信号机索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *SignalState) Reset() { + *x = SignalState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalState) ProtoMessage() {} + +func (x *SignalState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignalState.ProtoReflect.Descriptor instead. +func (*SignalState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{3} +} + +func (x *SignalState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// 站台状态 +type PlatformState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 站台索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *PlatformState) Reset() { + *x = PlatformState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlatformState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlatformState) ProtoMessage() {} + +func (x *PlatformState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlatformState.ProtoReflect.Descriptor instead. +func (*PlatformState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{4} +} + +func (x *PlatformState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// 车站状态 +type StationState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 车站索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *StationState) Reset() { + *x = StationState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StationState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StationState) ProtoMessage() {} + +func (x *StationState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StationState.ProtoReflect.Descriptor instead. +func (*StationState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{5} +} + +func (x *StationState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// 列车状态 +type TrainState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 列车索引 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // 列车初始运行方向,即添加列车时 + // true - 上行方向运行 + // false - 下行方向运行 + Up bool `protobuf:"varint,2,opt,name=up,proto3" json:"up,omitempty"` + // 车头所在link的索引 + HeadLinkId string `protobuf:"bytes,3,opt,name=headLinkId,proto3" json:"headLinkId,omitempty"` + // 车头所在link内的偏移量,单位为mm + HeadLinkOffset int64 `protobuf:"varint,4,opt,name=headLinkOffset,proto3" json:"headLinkOffset,omitempty"` + // 车尾所在link的索引 + TailLinkId string `protobuf:"bytes,5,opt,name=tailLinkId,proto3" json:"tailLinkId,omitempty"` + // 车尾所在link内的偏移量,单位为mm + TailLinkOffset int64 `protobuf:"varint,6,opt,name=tailLinkOffset,proto3" json:"tailLinkOffset,omitempty"` + // 列车所占用的link的索引的列表 + // 顺序为从车头到车尾 + OccupiedLinkIndex []string `protobuf:"bytes,7,rep,name=occupiedLinkIndex,proto3" json:"occupiedLinkIndex,omitempty"` + // 生命信号 + Heartbeat int32 `protobuf:"varint,8,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"` + // 列车所在位置坡度值,1=1‰ + Slope int32 `protobuf:"varint,9,opt,name=slope,proto3" json:"slope,omitempty"` + // 列车所在位置坡度走势,1=上坡true,0=下坡false + Upslope bool `protobuf:"varint,10,opt,name=upslope,proto3" json:"upslope,omitempty"` + // 列车当前运行方向,1 =上行true 0 =下行false + RunningUp bool `protobuf:"varint,11,opt,name=runningUp,proto3" json:"runningUp,omitempty"` + // 实际运行阻力(总),1=1KN + RunningResistanceSum int32 `protobuf:"varint,12,opt,name=runningResistanceSum,proto3" json:"runningResistanceSum,omitempty"` + // 阻力1(空气阻力),1=1KN + AirResistance int32 `protobuf:"varint,13,opt,name=airResistance,proto3" json:"airResistance,omitempty"` + // 阻力2(坡道阻力),1=1KN + RampResistance int32 `protobuf:"varint,14,opt,name=rampResistance,proto3" json:"rampResistance,omitempty"` + // 阻力3(曲线阻力),1=1KN + CurveResistance int32 `protobuf:"varint,15,opt,name=curveResistance,proto3" json:"curveResistance,omitempty"` + // 列车运行速度,1=1km/h + Speed int32 `protobuf:"varint,16,opt,name=speed,proto3" json:"speed,omitempty"` + // 头车速传1速度值,1=1km/h + HeadSensorSpeed1 int32 `protobuf:"varint,17,opt,name=headSensorSpeed1,proto3" json:"headSensorSpeed1,omitempty"` + // 头车速传2速度值,1=1km/h + HeadSensorSpeed2 int32 `protobuf:"varint,18,opt,name=headSensorSpeed2,proto3" json:"headSensorSpeed2,omitempty"` + // 尾车速传1速度值,1=1km/h + TailSensorSpeed1 int32 `protobuf:"varint,19,opt,name=tailSensorSpeed1,proto3" json:"tailSensorSpeed1,omitempty"` + // 尾车速度2速度值,1=1km/h + TailSensorSpeed2 int32 `protobuf:"varint,20,opt,name=tailSensorSpeed2,proto3" json:"tailSensorSpeed2,omitempty"` + // 头车雷达速度值,1=1km/h + HeadRadarSpeed int32 `protobuf:"varint,21,opt,name=headRadarSpeed,proto3" json:"headRadarSpeed,omitempty"` + // 尾车雷达速度值,1=1km/h + TailRadarSpeed int32 `protobuf:"varint,22,opt,name=tailRadarSpeed,proto3" json:"tailRadarSpeed,omitempty"` + // 列车长度,1=1mm + TrainLength int64 `protobuf:"varint,23,opt,name=trainLength,proto3" json:"trainLength,omitempty"` +} + +func (x *TrainState) Reset() { + *x = TrainState{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrainState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrainState) ProtoMessage() {} + +func (x *TrainState) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrainState.ProtoReflect.Descriptor instead. +func (*TrainState) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{6} +} + +func (x *TrainState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TrainState) GetUp() bool { + if x != nil { + return x.Up + } + return false +} + +func (x *TrainState) GetHeadLinkId() string { + if x != nil { + return x.HeadLinkId + } + return "" +} + +func (x *TrainState) GetHeadLinkOffset() int64 { + if x != nil { + return x.HeadLinkOffset + } + return 0 +} + +func (x *TrainState) GetTailLinkId() string { + if x != nil { + return x.TailLinkId + } + return "" +} + +func (x *TrainState) GetTailLinkOffset() int64 { + if x != nil { + return x.TailLinkOffset + } + return 0 +} + +func (x *TrainState) GetOccupiedLinkIndex() []string { + if x != nil { + return x.OccupiedLinkIndex + } + return nil +} + +func (x *TrainState) GetHeartbeat() int32 { + if x != nil { + return x.Heartbeat + } + return 0 +} + +func (x *TrainState) GetSlope() int32 { + if x != nil { + return x.Slope + } + return 0 +} + +func (x *TrainState) GetUpslope() bool { + if x != nil { + return x.Upslope + } + return false +} + +func (x *TrainState) GetRunningUp() bool { + if x != nil { + return x.RunningUp + } + return false +} + +func (x *TrainState) GetRunningResistanceSum() int32 { + if x != nil { + return x.RunningResistanceSum + } + return 0 +} + +func (x *TrainState) GetAirResistance() int32 { + if x != nil { + return x.AirResistance + } + return 0 +} + +func (x *TrainState) GetRampResistance() int32 { + if x != nil { + return x.RampResistance + } + return 0 +} + +func (x *TrainState) GetCurveResistance() int32 { + if x != nil { + return x.CurveResistance + } + return 0 +} + +func (x *TrainState) GetSpeed() int32 { + if x != nil { + return x.Speed + } + return 0 +} + +func (x *TrainState) GetHeadSensorSpeed1() int32 { + if x != nil { + return x.HeadSensorSpeed1 + } + return 0 +} + +func (x *TrainState) GetHeadSensorSpeed2() int32 { + if x != nil { + return x.HeadSensorSpeed2 + } + return 0 +} + +func (x *TrainState) GetTailSensorSpeed1() int32 { + if x != nil { + return x.TailSensorSpeed1 + } + return 0 +} + +func (x *TrainState) GetTailSensorSpeed2() int32 { + if x != nil { + return x.TailSensorSpeed2 + } + return 0 +} + +func (x *TrainState) GetHeadRadarSpeed() int32 { + if x != nil { + return x.HeadRadarSpeed + } + return 0 +} + +func (x *TrainState) GetTailRadarSpeed() int32 { + if x != nil { + return x.TailRadarSpeed + } + return 0 +} + +func (x *TrainState) GetTrainLength() int64 { + if x != nil { + return x.TrainLength + } + return 0 +} + +// 仿真运行时状态变化量,当前时刻与上一时刻比较得到 +type VariationStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 新增或变化的列车的状态 + UpdatedTrain []*TrainState `protobuf:"bytes,1,rep,name=updatedTrain,proto3" json:"updatedTrain,omitempty"` + // 移除的列车的索引 + RemovedTrainId []string `protobuf:"bytes,2,rep,name=removedTrainId,proto3" json:"removedTrainId,omitempty"` + // 状态发生变化的道岔 + UpdatedSwitch []*SwitchState `protobuf:"bytes,3,rep,name=updatedSwitch,proto3" json:"updatedSwitch,omitempty"` + // 状态发生变化的区段 + UpdatedSection []*SectionState `protobuf:"bytes,4,rep,name=updatedSection,proto3" json:"updatedSection,omitempty"` +} + +func (x *VariationStatus) Reset() { + *x = VariationStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VariationStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VariationStatus) ProtoMessage() {} + +func (x *VariationStatus) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VariationStatus.ProtoReflect.Descriptor instead. +func (*VariationStatus) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{7} +} + +func (x *VariationStatus) GetUpdatedTrain() []*TrainState { + if x != nil { + return x.UpdatedTrain + } + return nil +} + +func (x *VariationStatus) GetRemovedTrainId() []string { + if x != nil { + return x.RemovedTrainId + } + return nil +} + +func (x *VariationStatus) GetUpdatedSwitch() []*SwitchState { + if x != nil { + return x.UpdatedSwitch + } + return nil +} + +func (x *VariationStatus) GetUpdatedSection() []*SectionState { + if x != nil { + return x.UpdatedSection + } + return nil +} + +// 仿真运行时的所有设备的状态 +type AllDevicesStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 所有列车状态 + TrainState []*TrainState `protobuf:"bytes,1,rep,name=trainState,proto3" json:"trainState,omitempty"` + // 所有道岔状态 + SwitchState []*SwitchState `protobuf:"bytes,2,rep,name=switchState,proto3" json:"switchState,omitempty"` + // 所有类型区段状态 + SectionState []*SectionState `protobuf:"bytes,3,rep,name=sectionState,proto3" json:"sectionState,omitempty"` +} + +func (x *AllDevicesStatus) Reset() { + *x = AllDevicesStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllDevicesStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllDevicesStatus) ProtoMessage() {} + +func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllDevicesStatus.ProtoReflect.Descriptor instead. +func (*AllDevicesStatus) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{8} +} + +func (x *AllDevicesStatus) GetTrainState() []*TrainState { + if x != nil { + return x.TrainState + } + return nil +} + +func (x *AllDevicesStatus) GetSwitchState() []*SwitchState { + if x != nil { + return x.SwitchState + } + return nil +} + +func (x *AllDevicesStatus) GetSectionState() []*SectionState { + if x != nil { + return x.SectionState + } + return nil +} + +// 服务器端向前端推送的设备状态信息 +type PushedDevicesStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // true-全量设备状态信息,此时allStatus有效; + // false - 增量设备状态消息,此时varStatus有效 + All bool `protobuf:"varint,1,opt,name=all,proto3" json:"all,omitempty"` + // 增量设备状态消息 + VarStatus *VariationStatus `protobuf:"bytes,2,opt,name=varStatus,proto3" json:"varStatus,omitempty"` + // 全量设备状态信息 + AllStatus *AllDevicesStatus `protobuf:"bytes,3,opt,name=allStatus,proto3" json:"allStatus,omitempty"` +} + +func (x *PushedDevicesStatus) Reset() { + *x = PushedDevicesStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushedDevicesStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushedDevicesStatus) ProtoMessage() {} + +func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message { + mi := &file_device_state_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushedDevicesStatus.ProtoReflect.Descriptor instead. +func (*PushedDevicesStatus) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{9} +} + +func (x *PushedDevicesStatus) GetAll() bool { + if x != nil { + return x.All + } + return false +} + +func (x *PushedDevicesStatus) GetVarStatus() *VariationStatus { + if x != nil { + return x.VarStatus + } + return nil +} + +func (x *PushedDevicesStatus) GetAllStatus() *AllDevicesStatus { + if x != nil { + return x.AllStatus + } + return nil +} + +var File_device_state_proto protoreflect.FileDescriptor + +var file_device_state_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x09, 0x4c, + 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x49, 0x64, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x63, + 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x63, + 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x22, 0x4f, 0x0a, 0x0b, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xba, 0x06, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, + 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, + 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, + 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, + 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x73, 0x6c, + 0x6f, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x12, 0x32, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, + 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x53, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x69, 0x72, + 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, + 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x75, 0x72, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, + 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, + 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, + 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, + 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, + 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, + 0x01, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, + 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, + 0x34, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x37, 0x0a, 0x0b, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, + 0x6e, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x78, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x68, 0x79, + 0x73, 0x69, 0x63, 0x10, 0x03, 0x42, 0x45, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a, 0x6f, + 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74, 0x73, + 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x10, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x5a, 0x0a, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_device_state_proto_rawDescOnce sync.Once + file_device_state_proto_rawDescData = file_device_state_proto_rawDesc +) + +func file_device_state_proto_rawDescGZIP() []byte { + file_device_state_proto_rawDescOnce.Do(func() { + file_device_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_device_state_proto_rawDescData) + }) + return file_device_state_proto_rawDescData +} + +var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_device_state_proto_goTypes = []interface{}{ + (SectionType)(0), // 0: state.SectionType + (*LinkState)(nil), // 1: state.LinkState + (*SectionState)(nil), // 2: state.SectionState + (*SwitchState)(nil), // 3: state.SwitchState + (*SignalState)(nil), // 4: state.SignalState + (*PlatformState)(nil), // 5: state.PlatformState + (*StationState)(nil), // 6: state.StationState + (*TrainState)(nil), // 7: state.TrainState + (*VariationStatus)(nil), // 8: state.VariationStatus + (*AllDevicesStatus)(nil), // 9: state.AllDevicesStatus + (*PushedDevicesStatus)(nil), // 10: state.PushedDevicesStatus +} +var file_device_state_proto_depIdxs = []int32{ + 0, // 0: state.SectionState.type:type_name -> state.SectionType + 7, // 1: state.VariationStatus.updatedTrain:type_name -> state.TrainState + 3, // 2: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState + 2, // 3: state.VariationStatus.updatedSection:type_name -> state.SectionState + 7, // 4: state.AllDevicesStatus.trainState:type_name -> state.TrainState + 3, // 5: state.AllDevicesStatus.switchState:type_name -> state.SwitchState + 2, // 6: state.AllDevicesStatus.sectionState:type_name -> state.SectionState + 8, // 7: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus + 9, // 8: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_device_state_proto_init() } +func file_device_state_proto_init() { + if File_device_state_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_device_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SectionState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlatformState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StationState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrainState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VariationStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllDevicesStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_device_state_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushedDevicesStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_device_state_proto_rawDesc, + NumEnums: 1, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_device_state_proto_goTypes, + DependencyIndexes: file_device_state_proto_depIdxs, + EnumInfos: file_device_state_proto_enumTypes, + MessageInfos: file_device_state_proto_msgTypes, + }.Build() + File_device_state_proto = out.File + file_device_state_proto_rawDesc = nil + file_device_state_proto_goTypes = nil + file_device_state_proto_depIdxs = nil +} diff --git a/protobuf/main/generator_test.go b/protobuf/main/generator_test.go deleted file mode 100644 index 7905807..0000000 --- a/protobuf/main/generator_test.go +++ /dev/null @@ -1,5 +0,0 @@ -package main - -func main() { - -} diff --git a/protobuf/main/main.go b/protobuf/main/main.go new file mode 100644 index 0000000..510fb23 --- /dev/null +++ b/protobuf/main/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "fmt" + "log" + "os" + "os/exec" + "path/filepath" +) + +var ( + basePath, _ = os.Getwd() + protoFolder = filepath.Join(basePath, "bj-rtss-message", "protos") + protocPath = filepath.Join(basePath, "bj-rtss-message", "protoc-23.1", "bin", "win64", "protoc") +) + +func main() { + //先安装以下插件 + //go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + + protoFiles := getProtoFiles() + // 编译proto文件为Go文件 + if err := compileProto(protoFiles); err != nil { + log.Fatalf("编译proto文件失败:%v", err) + } +} + +// 获取指定文件夹下的所有proto文件的绝对路径列表 +func getProtoFiles() []string { + var protoFiles []string + files, err := os.ReadDir(protoFolder) + if err != nil { + log.Fatal("获取proto文件列表失败") + } + for _, file := range files { + protoFiles = append(protoFiles, file.Name()) + } + return protoFiles +} + +// 编译proto文件为Go文件 +func compileProto(protoFiles []string) error { + for _, protoFile := range protoFiles { + cmd := exec.Command(protocPath, "--proto_path="+protoFolder, "--go_out=./", protoFile) + fmt.Println(cmd.String()) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + return err + } + } + return nil +} diff --git a/protobuf/stationLayoutGraphics.pb.go b/protobuf/stationLayoutGraphics.pb.go new file mode 100644 index 0000000..ab9cf82 --- /dev/null +++ b/protobuf/stationLayoutGraphics.pb.go @@ -0,0 +1,3187 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: stationLayoutGraphics.proto + +package protobuf + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Section_SectionType int32 + +const ( + Section_Physical Section_SectionType = 0 + Section_TurnoutPhysical Section_SectionType = 2 +) + +// Enum value maps for Section_SectionType. +var ( + Section_SectionType_name = map[int32]string{ + 0: "Physical", + 2: "TurnoutPhysical", + } + Section_SectionType_value = map[string]int32{ + "Physical": 0, + "TurnoutPhysical": 2, + } +) + +func (x Section_SectionType) Enum() *Section_SectionType { + p := new(Section_SectionType) + *p = x + return p +} + +func (x Section_SectionType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Section_SectionType) Descriptor() protoreflect.EnumDescriptor { + return file_stationLayoutGraphics_proto_enumTypes[0].Descriptor() +} + +func (Section_SectionType) Type() protoreflect.EnumType { + return &file_stationLayoutGraphics_proto_enumTypes[0] +} + +func (x Section_SectionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Section_SectionType.Descriptor instead. +func (Section_SectionType) EnumDescriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{13, 0} +} + +type RelatedRef_DeviceType int32 + +const ( + RelatedRef_Section RelatedRef_DeviceType = 0 + RelatedRef_Turnout RelatedRef_DeviceType = 1 + RelatedRef_TrainWindow RelatedRef_DeviceType = 2 + RelatedRef_AxleCounting RelatedRef_DeviceType = 3 + RelatedRef_SectionLink RelatedRef_DeviceType = 4 +) + +// Enum value maps for RelatedRef_DeviceType. +var ( + RelatedRef_DeviceType_name = map[int32]string{ + 0: "Section", + 1: "Turnout", + 2: "TrainWindow", + 3: "AxleCounting", + 4: "SectionLink", + } + RelatedRef_DeviceType_value = map[string]int32{ + "Section": 0, + "Turnout": 1, + "TrainWindow": 2, + "AxleCounting": 3, + "SectionLink": 4, + } +) + +func (x RelatedRef_DeviceType) Enum() *RelatedRef_DeviceType { + p := new(RelatedRef_DeviceType) + *p = x + return p +} + +func (x RelatedRef_DeviceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RelatedRef_DeviceType) Descriptor() protoreflect.EnumDescriptor { + return file_stationLayoutGraphics_proto_enumTypes[1].Descriptor() +} + +func (RelatedRef_DeviceType) Type() protoreflect.EnumType { + return &file_stationLayoutGraphics_proto_enumTypes[1] +} + +func (x RelatedRef_DeviceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RelatedRef_DeviceType.Descriptor instead. +func (RelatedRef_DeviceType) EnumDescriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14, 0} +} + +type RelatedRef_DevicePort int32 + +const ( + RelatedRef_A RelatedRef_DevicePort = 0 + RelatedRef_B RelatedRef_DevicePort = 1 + RelatedRef_C RelatedRef_DevicePort = 2 +) + +// Enum value maps for RelatedRef_DevicePort. +var ( + RelatedRef_DevicePort_name = map[int32]string{ + 0: "A", + 1: "B", + 2: "C", + } + RelatedRef_DevicePort_value = map[string]int32{ + "A": 0, + "B": 1, + "C": 2, + } +) + +func (x RelatedRef_DevicePort) Enum() *RelatedRef_DevicePort { + p := new(RelatedRef_DevicePort) + *p = x + return p +} + +func (x RelatedRef_DevicePort) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RelatedRef_DevicePort) Descriptor() protoreflect.EnumDescriptor { + return file_stationLayoutGraphics_proto_enumTypes[2].Descriptor() +} + +func (RelatedRef_DevicePort) Type() protoreflect.EnumType { + return &file_stationLayoutGraphics_proto_enumTypes[2] +} + +func (x RelatedRef_DevicePort) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RelatedRef_DevicePort.Descriptor instead. +func (RelatedRef_DevicePort) EnumDescriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14, 1} +} + +type SimpleRef_DeviceType int32 + +const ( + SimpleRef_Turnout SimpleRef_DeviceType = 0 + SimpleRef_AxleCounting SimpleRef_DeviceType = 1 +) + +// Enum value maps for SimpleRef_DeviceType. +var ( + SimpleRef_DeviceType_name = map[int32]string{ + 0: "Turnout", + 1: "AxleCounting", + } + SimpleRef_DeviceType_value = map[string]int32{ + "Turnout": 0, + "AxleCounting": 1, + } +) + +func (x SimpleRef_DeviceType) Enum() *SimpleRef_DeviceType { + p := new(SimpleRef_DeviceType) + *p = x + return p +} + +func (x SimpleRef_DeviceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SimpleRef_DeviceType) Descriptor() protoreflect.EnumDescriptor { + return file_stationLayoutGraphics_proto_enumTypes[3].Descriptor() +} + +func (SimpleRef_DeviceType) Type() protoreflect.EnumType { + return &file_stationLayoutGraphics_proto_enumTypes[3] +} + +func (x SimpleRef_DeviceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SimpleRef_DeviceType.Descriptor instead. +func (SimpleRef_DeviceType) EnumDescriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18, 0} +} + +type StopPosition_CoachNum int32 + +const ( + StopPosition_Four StopPosition_CoachNum = 0 + StopPosition_Six StopPosition_CoachNum = 1 +) + +// Enum value maps for StopPosition_CoachNum. +var ( + StopPosition_CoachNum_name = map[int32]string{ + 0: "Four", + 1: "Six", + } + StopPosition_CoachNum_value = map[string]int32{ + "Four": 0, + "Six": 1, + } +) + +func (x StopPosition_CoachNum) Enum() *StopPosition_CoachNum { + p := new(StopPosition_CoachNum) + *p = x + return p +} + +func (x StopPosition_CoachNum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StopPosition_CoachNum) Descriptor() protoreflect.EnumDescriptor { + return file_stationLayoutGraphics_proto_enumTypes[4].Descriptor() +} + +func (StopPosition_CoachNum) Type() protoreflect.EnumType { + return &file_stationLayoutGraphics_proto_enumTypes[4] +} + +func (x StopPosition_CoachNum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StopPosition_CoachNum.Descriptor instead. +func (StopPosition_CoachNum) EnumDescriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22, 0} +} + +type RtssGraphicStorage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Canvas *Canvas `protobuf:"bytes,1,opt,name=canvas,proto3" json:"canvas,omitempty"` + // repeated Link links = 2; + // repeated IscsFan iscsFans = 3; + Platforms []*Platform `protobuf:"bytes,4,rep,name=Platforms,proto3" json:"Platforms,omitempty"` + Stations []*Station `protobuf:"bytes,5,rep,name=stations,proto3" json:"stations,omitempty"` + // repeated Rect rects = 6; + // repeated Train train = 7; + Signals []*Signal `protobuf:"bytes,8,rep,name=signals,proto3" json:"signals,omitempty"` + Turnouts []*Turnout `protobuf:"bytes,9,rep,name=turnouts,proto3" json:"turnouts,omitempty"` + Section []*Section `protobuf:"bytes,10,rep,name=section,proto3" json:"section,omitempty"` + // repeated Polygon polygons = 11; + TrainWindows []*TrainWindow `protobuf:"bytes,12,rep,name=trainWindows,proto3" json:"trainWindows,omitempty"` + AxleCountings []*AxleCounting `protobuf:"bytes,13,rep,name=axleCountings,proto3" json:"axleCountings,omitempty"` + Separators []*Separator `protobuf:"bytes,14,rep,name=separators,proto3" json:"separators,omitempty"` + SectionLinks []*SectionLink `protobuf:"bytes,15,rep,name=sectionLinks,proto3" json:"sectionLinks,omitempty"` + AxleCountingSections []*AxleCountingSection `protobuf:"bytes,16,rep,name=axleCountingSections,proto3" json:"axleCountingSections,omitempty"` + LogicSections []*LogicSection `protobuf:"bytes,17,rep,name=logicSections,proto3" json:"logicSections,omitempty"` + StopPositions []*StopPosition `protobuf:"bytes,18,rep,name=stopPositions,proto3" json:"stopPositions,omitempty"` + SpksSwitchs []*SpksSwitch `protobuf:"bytes,19,rep,name=spksSwitchs,proto3" json:"spksSwitchs,omitempty"` + EsbButtons []*EsbButton `protobuf:"bytes,20,rep,name=esbButtons,proto3" json:"esbButtons,omitempty"` // 紧急关闭按钮 + GateBoxs []*GatedBox `protobuf:"bytes,21,rep,name=gateBoxs,proto3" json:"gateBoxs,omitempty"` // 站台开门/关门/发车按钮整合控制箱 + Transponders []*Transponder `protobuf:"bytes,22,rep,name=transponders,proto3" json:"transponders,omitempty"` // 应答器 +} + +func (x *RtssGraphicStorage) Reset() { + *x = RtssGraphicStorage{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RtssGraphicStorage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RtssGraphicStorage) ProtoMessage() {} + +func (x *RtssGraphicStorage) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RtssGraphicStorage.ProtoReflect.Descriptor instead. +func (*RtssGraphicStorage) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{0} +} + +func (x *RtssGraphicStorage) GetCanvas() *Canvas { + if x != nil { + return x.Canvas + } + return nil +} + +func (x *RtssGraphicStorage) GetPlatforms() []*Platform { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *RtssGraphicStorage) GetStations() []*Station { + if x != nil { + return x.Stations + } + return nil +} + +func (x *RtssGraphicStorage) GetSignals() []*Signal { + if x != nil { + return x.Signals + } + return nil +} + +func (x *RtssGraphicStorage) GetTurnouts() []*Turnout { + if x != nil { + return x.Turnouts + } + return nil +} + +func (x *RtssGraphicStorage) GetSection() []*Section { + if x != nil { + return x.Section + } + return nil +} + +func (x *RtssGraphicStorage) GetTrainWindows() []*TrainWindow { + if x != nil { + return x.TrainWindows + } + return nil +} + +func (x *RtssGraphicStorage) GetAxleCountings() []*AxleCounting { + if x != nil { + return x.AxleCountings + } + return nil +} + +func (x *RtssGraphicStorage) GetSeparators() []*Separator { + if x != nil { + return x.Separators + } + return nil +} + +func (x *RtssGraphicStorage) GetSectionLinks() []*SectionLink { + if x != nil { + return x.SectionLinks + } + return nil +} + +func (x *RtssGraphicStorage) GetAxleCountingSections() []*AxleCountingSection { + if x != nil { + return x.AxleCountingSections + } + return nil +} + +func (x *RtssGraphicStorage) GetLogicSections() []*LogicSection { + if x != nil { + return x.LogicSections + } + return nil +} + +func (x *RtssGraphicStorage) GetStopPositions() []*StopPosition { + if x != nil { + return x.StopPositions + } + return nil +} + +func (x *RtssGraphicStorage) GetSpksSwitchs() []*SpksSwitch { + if x != nil { + return x.SpksSwitchs + } + return nil +} + +func (x *RtssGraphicStorage) GetEsbButtons() []*EsbButton { + if x != nil { + return x.EsbButtons + } + return nil +} + +func (x *RtssGraphicStorage) GetGateBoxs() []*GatedBox { + if x != nil { + return x.GateBoxs + } + return nil +} + +func (x *RtssGraphicStorage) GetTransponders() []*Transponder { + if x != nil { + return x.Transponders + } + return nil +} + +type Canvas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 画布宽 + Width int32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"` + // 画布高 + Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // 背景色 + BackgroundColor string `protobuf:"bytes,3,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"` + // 视口变换 + ViewportTransform *Transform `protobuf:"bytes,4,opt,name=viewportTransform,proto3" json:"viewportTransform,omitempty"` +} + +func (x *Canvas) Reset() { + *x = Canvas{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Canvas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Canvas) ProtoMessage() {} + +func (x *Canvas) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Canvas.ProtoReflect.Descriptor instead. +func (*Canvas) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{1} +} + +func (x *Canvas) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *Canvas) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Canvas) GetBackgroundColor() string { + if x != nil { + return x.BackgroundColor + } + return "" +} + +func (x *Canvas) GetViewportTransform() *Transform { + if x != nil { + return x.ViewportTransform + } + return nil +} + +type Point struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // x坐标 + X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` + // y坐标 + Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` +} + +func (x *Point) Reset() { + *x = Point{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Point) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Point) ProtoMessage() {} + +func (x *Point) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Point.ProtoReflect.Descriptor instead. +func (*Point) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{2} +} + +func (x *Point) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *Point) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +// 变换 +type Transform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 位移 + Position *Point `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // 缩放 + Scale *Point `protobuf:"bytes,2,opt,name=scale,proto3" json:"scale,omitempty"` + // 旋转弧度 + Rotation float32 `protobuf:"fixed32,3,opt,name=rotation,proto3" json:"rotation,omitempty"` + // 歪斜 + Skew *Point `protobuf:"bytes,4,opt,name=skew,proto3" json:"skew,omitempty"` +} + +func (x *Transform) Reset() { + *x = Transform{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transform) ProtoMessage() {} + +func (x *Transform) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Transform.ProtoReflect.Descriptor instead. +func (*Transform) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{3} +} + +func (x *Transform) GetPosition() *Point { + if x != nil { + return x.Position + } + return nil +} + +func (x *Transform) GetScale() *Point { + if x != nil { + return x.Scale + } + return nil +} + +func (x *Transform) GetRotation() float32 { + if x != nil { + return x.Rotation + } + return 0 +} + +func (x *Transform) GetSkew() *Point { + if x != nil { + return x.Skew + } + return nil +} + +// 子元素变换 +type ChildTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 子元素名称 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // 子元素变换 + Transform *Transform `protobuf:"bytes,2,opt,name=transform,proto3" json:"transform,omitempty"` +} + +func (x *ChildTransform) Reset() { + *x = ChildTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChildTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChildTransform) ProtoMessage() {} + +func (x *ChildTransform) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChildTransform.ProtoReflect.Descriptor instead. +func (*ChildTransform) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{4} +} + +func (x *ChildTransform) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ChildTransform) GetTransform() *Transform { + if x != nil { + return x.Transform + } + return nil +} + +// 公共属性 +type CommonInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + GraphicType string `protobuf:"bytes,2,opt,name=graphicType,proto3" json:"graphicType,omitempty"` + Transform *Transform `protobuf:"bytes,3,opt,name=transform,proto3" json:"transform,omitempty"` + ChildTransforms []*ChildTransform `protobuf:"bytes,4,rep,name=childTransforms,proto3" json:"childTransforms,omitempty"` +} + +func (x *CommonInfo) Reset() { + *x = CommonInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonInfo) ProtoMessage() {} + +func (x *CommonInfo) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommonInfo.ProtoReflect.Descriptor instead. +func (*CommonInfo) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{5} +} + +func (x *CommonInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *CommonInfo) GetGraphicType() string { + if x != nil { + return x.GraphicType + } + return "" +} + +func (x *CommonInfo) GetTransform() *Transform { + if x != nil { + return x.Transform + } + return nil +} + +func (x *CommonInfo) GetChildTransforms() []*ChildTransform { + if x != nil { + return x.ChildTransforms + } + return nil +} + +type Platform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Hasdoor bool `protobuf:"varint,3,opt,name=hasdoor,proto3" json:"hasdoor,omitempty"` // 是否有屏蔽门 + Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` // 行驶方向--屏蔽门上下 + Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //索引 + RefStationIndex int32 `protobuf:"varint,6,opt,name=refStationIndex,proto3" json:"refStationIndex,omitempty"` //关联车站索引 +} + +func (x *Platform) Reset() { + *x = Platform{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Platform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Platform) ProtoMessage() {} + +func (x *Platform) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Platform.ProtoReflect.Descriptor instead. +func (*Platform) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{6} +} + +func (x *Platform) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Platform) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Platform) GetHasdoor() bool { + if x != nil { + return x.Hasdoor + } + return false +} + +func (x *Platform) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *Platform) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *Platform) GetRefStationIndex() int32 { + if x != nil { + return x.RefStationIndex + } + return 0 +} + +type Station struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // bool hasControl = 3; // 是否有控制 + ConcentrationStations bool `protobuf:"varint,4,opt,name=concentrationStations,proto3" json:"concentrationStations,omitempty"` //是否集中站 + // string kilometerCode = 5; //公里标 + KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标 + Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *Station) Reset() { + *x = Station{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Station) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Station) ProtoMessage() {} + +func (x *Station) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Station.ProtoReflect.Descriptor instead. +func (*Station) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{7} +} + +func (x *Station) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Station) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Station) GetConcentrationStations() bool { + if x != nil { + return x.ConcentrationStations + } + return false +} + +func (x *Station) GetKilometerSystem() *KilometerSystem { + if x != nil { + return x.KilometerSystem + } + return nil +} + +func (x *Station) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type TrainWindow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"` +} + +func (x *TrainWindow) Reset() { + *x = TrainWindow{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrainWindow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrainWindow) ProtoMessage() {} + +func (x *TrainWindow) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrainWindow.ProtoReflect.Descriptor instead. +func (*TrainWindow) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{8} +} + +func (x *TrainWindow) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *TrainWindow) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *TrainWindow) GetSectionId() string { + if x != nil { + return x.SectionId + } + return "" +} + +type AxleCounting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称 + KilometerSystem *KilometerSystem `protobuf:"bytes,3,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标 + AxleCountingRef []*RelatedRef `protobuf:"bytes,4,rep,name=axleCountingRef,proto3" json:"axleCountingRef,omitempty"` // 计轴关联的非岔区物理区段和道岔,设备id和端口 + Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //计轴的索引编号 +} + +func (x *AxleCounting) Reset() { + *x = AxleCounting{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AxleCounting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AxleCounting) ProtoMessage() {} + +func (x *AxleCounting) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AxleCounting.ProtoReflect.Descriptor instead. +func (*AxleCounting) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{9} +} + +func (x *AxleCounting) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *AxleCounting) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *AxleCounting) GetKilometerSystem() *KilometerSystem { + if x != nil { + return x.KilometerSystem + } + return nil +} + +func (x *AxleCounting) GetAxleCountingRef() []*RelatedRef { + if x != nil { + return x.AxleCountingRef + } + return nil +} + +func (x *AxleCounting) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type Turnout struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + PointA []*Point `protobuf:"bytes,6,rep,name=pointA,proto3" json:"pointA,omitempty"` // A端坐标列表 + PointB []*Point `protobuf:"bytes,7,rep,name=pointB,proto3" json:"pointB,omitempty"` // B端坐标列表 + PointC []*Point `protobuf:"bytes,8,rep,name=pointC,proto3" json:"pointC,omitempty"` // C端坐标列表 + PaRef *RelatedRef `protobuf:"bytes,9,opt,name=paRef,proto3" json:"paRef,omitempty"` // 道岔A端关联的设备 + PbRef *RelatedRef `protobuf:"bytes,10,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 道岔B端关联的设备 + PcRef *RelatedRef `protobuf:"bytes,11,opt,name=pcRef,proto3" json:"pcRef,omitempty"` // 道岔C端关联的设备 + // KilometerSystem kilometerSystem = 12; // 道岔公里标 + KilometerSystem []*KilometerSystem `protobuf:"bytes,13,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` // 道岔公里标 + Index int32 `protobuf:"varint,14,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *Turnout) Reset() { + *x = Turnout{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Turnout) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Turnout) ProtoMessage() {} + +func (x *Turnout) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Turnout.ProtoReflect.Descriptor instead. +func (*Turnout) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{10} +} + +func (x *Turnout) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Turnout) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Turnout) GetPointA() []*Point { + if x != nil { + return x.PointA + } + return nil +} + +func (x *Turnout) GetPointB() []*Point { + if x != nil { + return x.PointB + } + return nil +} + +func (x *Turnout) GetPointC() []*Point { + if x != nil { + return x.PointC + } + return nil +} + +func (x *Turnout) GetPaRef() *RelatedRef { + if x != nil { + return x.PaRef + } + return nil +} + +func (x *Turnout) GetPbRef() *RelatedRef { + if x != nil { + return x.PbRef + } + return nil +} + +func (x *Turnout) GetPcRef() *RelatedRef { + if x != nil { + return x.PcRef + } + return nil +} + +func (x *Turnout) GetKilometerSystem() []*KilometerSystem { + if x != nil { + return x.KilometerSystem + } + return nil +} + +func (x *Turnout) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type KilometerSystem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kilometer int64 `protobuf:"varint,1,opt,name=kilometer,proto3" json:"kilometer,omitempty"` //公里标mm + CoordinateSystem string `protobuf:"bytes,2,opt,name=coordinateSystem,proto3" json:"coordinateSystem,omitempty"` //坐标系 +} + +func (x *KilometerSystem) Reset() { + *x = KilometerSystem{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KilometerSystem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KilometerSystem) ProtoMessage() {} + +func (x *KilometerSystem) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KilometerSystem.ProtoReflect.Descriptor instead. +func (*KilometerSystem) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{11} +} + +func (x *KilometerSystem) GetKilometer() int64 { + if x != nil { + return x.Kilometer + } + return 0 +} + +func (x *KilometerSystem) GetCoordinateSystem() string { + if x != nil { + return x.CoordinateSystem + } + return "" +} + +type Signal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Mirror bool `protobuf:"varint,3,opt,name=mirror,proto3" json:"mirror,omitempty"` + // int64 kilometer = 4; + // string coordinateSystem = 5; + KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` + Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *Signal) Reset() { + *x = Signal{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Signal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Signal) ProtoMessage() {} + +func (x *Signal) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Signal.ProtoReflect.Descriptor instead. +func (*Signal) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{12} +} + +func (x *Signal) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Signal) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Signal) GetMirror() bool { + if x != nil { + return x.Mirror + } + return false +} + +func (x *Signal) GetKilometerSystem() *KilometerSystem { + if x != nil { + return x.KilometerSystem + } + return nil +} + +func (x *Signal) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +// * 物理区段(包含岔区和非岔区) +type Section struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 编号 + Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` // 点列表 + PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 区段A端关联的设备(非岔区)(后端不关注) + PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 区段B端关联的设备(非岔区)(后端不关注) + SectionType Section_SectionType `protobuf:"varint,6,opt,name=sectionType,proto3,enum=graphicData.Section_SectionType" json:"sectionType,omitempty"` // 区段类型 + AxleCountings []string `protobuf:"bytes,7,rep,name=axleCountings,proto3" json:"axleCountings,omitempty"` // 区段对应的计轴 + Index int32 `protobuf:"varint,8,opt,name=index,proto3" json:"index,omitempty"` // 索引 +} + +func (x *Section) Reset() { + *x = Section{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Section) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Section) ProtoMessage() {} + +func (x *Section) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Section.ProtoReflect.Descriptor instead. +func (*Section) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{13} +} + +func (x *Section) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Section) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Section) GetPoints() []*Point { + if x != nil { + return x.Points + } + return nil +} + +func (x *Section) GetPaRef() *RelatedRef { + if x != nil { + return x.PaRef + } + return nil +} + +func (x *Section) GetPbRef() *RelatedRef { + if x != nil { + return x.PbRef + } + return nil +} + +func (x *Section) GetSectionType() Section_SectionType { + if x != nil { + return x.SectionType + } + return Section_Physical +} + +func (x *Section) GetAxleCountings() []string { + if x != nil { + return x.AxleCountings + } + return nil +} + +func (x *Section) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +// 关联设备 +type RelatedRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceType RelatedRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.RelatedRef_DeviceType" json:"deviceType,omitempty"` //关联的设备类型 + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` //关联的设备ID + DevicePort RelatedRef_DevicePort `protobuf:"varint,3,opt,name=devicePort,proto3,enum=graphicData.RelatedRef_DevicePort" json:"devicePort,omitempty"` //关联的设备端口 +} + +func (x *RelatedRef) Reset() { + *x = RelatedRef{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RelatedRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RelatedRef) ProtoMessage() {} + +func (x *RelatedRef) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RelatedRef.ProtoReflect.Descriptor instead. +func (*RelatedRef) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14} +} + +func (x *RelatedRef) GetDeviceType() RelatedRef_DeviceType { + if x != nil { + return x.DeviceType + } + return RelatedRef_Section +} + +func (x *RelatedRef) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *RelatedRef) GetDevicePort() RelatedRef_DevicePort { + if x != nil { + return x.DevicePort + } + return RelatedRef_A +} + +// 计轴区段与道岔的位置关系 +type TurnoutPosRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //道岔的ID + Position int32 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` //道岔的正反为,0是定位,1是反位 +} + +func (x *TurnoutPosRef) Reset() { + *x = TurnoutPosRef{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TurnoutPosRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TurnoutPosRef) ProtoMessage() {} + +func (x *TurnoutPosRef) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TurnoutPosRef.ProtoReflect.Descriptor instead. +func (*TurnoutPosRef) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{15} +} + +func (x *TurnoutPosRef) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TurnoutPosRef) GetPosition() int32 { + if x != nil { + return x.Position + } + return 0 +} + +type Separator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + SeparatorType string `protobuf:"bytes,3,opt,name=separatorType,proto3" json:"separatorType,omitempty"` +} + +func (x *Separator) Reset() { + *x = Separator{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Separator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Separator) ProtoMessage() {} + +func (x *Separator) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Separator.ProtoReflect.Descriptor instead. +func (*Separator) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{16} +} + +func (x *Separator) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Separator) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Separator) GetSeparatorType() string { + if x != nil { + return x.SeparatorType + } + return "" +} + +type Transponder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + TransponderType int32 `protobuf:"varint,3,opt,name=transponderType,proto3" json:"transponderType,omitempty"` + Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` // 索引编号 +} + +func (x *Transponder) Reset() { + *x = Transponder{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transponder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transponder) ProtoMessage() {} + +func (x *Transponder) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Transponder.ProtoReflect.Descriptor instead. +func (*Transponder) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{17} +} + +func (x *Transponder) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *Transponder) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Transponder) GetTransponderType() int32 { + if x != nil { + return x.TransponderType + } + return 0 +} + +func (x *Transponder) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type SimpleRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceType SimpleRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.SimpleRef_DeviceType" json:"deviceType,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *SimpleRef) Reset() { + *x = SimpleRef{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SimpleRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SimpleRef) ProtoMessage() {} + +func (x *SimpleRef) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SimpleRef.ProtoReflect.Descriptor instead. +func (*SimpleRef) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18} +} + +func (x *SimpleRef) GetDeviceType() SimpleRef_DeviceType { + if x != nil { + return x.DeviceType + } + return SimpleRef_Turnout +} + +func (x *SimpleRef) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type SectionLink struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` + Up bool `protobuf:"varint,4,opt,name=up,proto3" json:"up,omitempty"` // 是否上行 + ASimRef *SimpleRef `protobuf:"bytes,5,opt,name=aSimRef,proto3" json:"aSimRef,omitempty"` // SectionLink A端连接设备(构建关系 AxleCounting/Turnout) //端点 + BSimRef *SimpleRef `protobuf:"bytes,6,opt,name=bSimRef,proto3" json:"bSimRef,omitempty"` // SectionLink B端连接设备(构建关系 AxleCounting/Turnout) //端点 + ARef *RelatedRef `protobuf:"bytes,7,opt,name=aRef,proto3" json:"aRef,omitempty"` // SectionLink A端连接设备(端口关系 SectionLink/Turnout) + BRef *RelatedRef `protobuf:"bytes,8,opt,name=bRef,proto3" json:"bRef,omitempty"` //SectionLink B端连接设备(端口关系 SectionLink/Turnout) + Index int32 `protobuf:"varint,9,opt,name=index,proto3" json:"index,omitempty"` // 索引编号 +} + +func (x *SectionLink) Reset() { + *x = SectionLink{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SectionLink) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SectionLink) ProtoMessage() {} + +func (x *SectionLink) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SectionLink.ProtoReflect.Descriptor instead. +func (*SectionLink) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{19} +} + +func (x *SectionLink) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *SectionLink) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *SectionLink) GetPoints() []*Point { + if x != nil { + return x.Points + } + return nil +} + +func (x *SectionLink) GetUp() bool { + if x != nil { + return x.Up + } + return false +} + +func (x *SectionLink) GetASimRef() *SimpleRef { + if x != nil { + return x.ASimRef + } + return nil +} + +func (x *SectionLink) GetBSimRef() *SimpleRef { + if x != nil { + return x.BSimRef + } + return nil +} + +func (x *SectionLink) GetARef() *RelatedRef { + if x != nil { + return x.ARef + } + return nil +} + +func (x *SectionLink) GetBRef() *RelatedRef { + if x != nil { + return x.BRef + } + return nil +} + +func (x *SectionLink) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type AxleCountingSection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称 + Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` + PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 计轴区段A端关联的计轴 + PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 计轴区段B端关联的计轴 + TurnoutPos []*TurnoutPosRef `protobuf:"bytes,6,rep,name=turnoutPos,proto3" json:"turnoutPos,omitempty"` //关联道岔的正反位--0是定位,1是反位 + Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` //计轴区段的索引编号 +} + +func (x *AxleCountingSection) Reset() { + *x = AxleCountingSection{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AxleCountingSection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AxleCountingSection) ProtoMessage() {} + +func (x *AxleCountingSection) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AxleCountingSection.ProtoReflect.Descriptor instead. +func (*AxleCountingSection) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{20} +} + +func (x *AxleCountingSection) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *AxleCountingSection) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *AxleCountingSection) GetPoints() []*Point { + if x != nil { + return x.Points + } + return nil +} + +func (x *AxleCountingSection) GetPaRef() *RelatedRef { + if x != nil { + return x.PaRef + } + return nil +} + +func (x *AxleCountingSection) GetPbRef() *RelatedRef { + if x != nil { + return x.PbRef + } + return nil +} + +func (x *AxleCountingSection) GetTurnoutPos() []*TurnoutPosRef { + if x != nil { + return x.TurnoutPos + } + return nil +} + +func (x *AxleCountingSection) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type LogicSection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称 + Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` + AxleSectionId string `protobuf:"bytes,4,opt,name=axleSectionId,proto3" json:"axleSectionId,omitempty"` // 关联的计轴区段Id + Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` // 索引编号 + TurnoutId string `protobuf:"bytes,6,opt,name=turnoutId,proto3" json:"turnoutId,omitempty"` // 关联的岔芯对应的道岔id,此时该逻辑区段为该道岔C端关联的轨道link +} + +func (x *LogicSection) Reset() { + *x = LogicSection{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LogicSection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogicSection) ProtoMessage() {} + +func (x *LogicSection) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogicSection.ProtoReflect.Descriptor instead. +func (*LogicSection) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{21} +} + +func (x *LogicSection) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *LogicSection) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *LogicSection) GetPoints() []*Point { + if x != nil { + return x.Points + } + return nil +} + +func (x *LogicSection) GetAxleSectionId() string { + if x != nil { + return x.AxleSectionId + } + return "" +} + +func (x *LogicSection) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *LogicSection) GetTurnoutId() string { + if x != nil { + return x.TurnoutId + } + return "" +} + +type StopPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示) + CoachNum StopPosition_CoachNum `protobuf:"varint,4,opt,name=coachNum,proto3,enum=graphicData.StopPosition_CoachNum" json:"coachNum,omitempty"` //编组数量 + Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *StopPosition) Reset() { + *x = StopPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopPosition) ProtoMessage() {} + +func (x *StopPosition) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopPosition.ProtoReflect.Descriptor instead. +func (*StopPosition) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22} +} + +func (x *StopPosition) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *StopPosition) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *StopPosition) GetFlip() bool { + if x != nil { + return x.Flip + } + return false +} + +func (x *StopPosition) GetCoachNum() StopPosition_CoachNum { + if x != nil { + return x.CoachNum + } + return StopPosition_Four +} + +func (x *StopPosition) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type SpksSwitch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示) + Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *SpksSwitch) Reset() { + *x = SpksSwitch{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpksSwitch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpksSwitch) ProtoMessage() {} + +func (x *SpksSwitch) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpksSwitch.ProtoReflect.Descriptor instead. +func (*SpksSwitch) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{23} +} + +func (x *SpksSwitch) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *SpksSwitch) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *SpksSwitch) GetFlip() bool { + if x != nil { + return x.Flip + } + return false +} + +func (x *SpksSwitch) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type EsbButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示) + Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *EsbButton) Reset() { + *x = EsbButton{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EsbButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EsbButton) ProtoMessage() {} + +func (x *EsbButton) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EsbButton.ProtoReflect.Descriptor instead. +func (*EsbButton) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{24} +} + +func (x *EsbButton) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *EsbButton) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *EsbButton) GetFlip() bool { + if x != nil { + return x.Flip + } + return false +} + +func (x *EsbButton) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +type GatedBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示) + Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引 +} + +func (x *GatedBox) Reset() { + *x = GatedBox{} + if protoimpl.UnsafeEnabled { + mi := &file_stationLayoutGraphics_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GatedBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GatedBox) ProtoMessage() {} + +func (x *GatedBox) ProtoReflect() protoreflect.Message { + mi := &file_stationLayoutGraphics_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GatedBox.ProtoReflect.Descriptor instead. +func (*GatedBox) Descriptor() ([]byte, []int) { + return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{25} +} + +func (x *GatedBox) GetCommon() *CommonInfo { + if x != nil { + return x.Common + } + return nil +} + +func (x *GatedBox) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *GatedBox) GetFlip() bool { + if x != nil { + return x.Flip + } + return false +} + +func (x *GatedBox) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +var File_stationLayoutGraphics_proto protoreflect.FileDescriptor + +var file_stationLayoutGraphics_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x22, 0xea, 0x07, 0x0a, 0x12, 0x52, + 0x74, 0x73, 0x73, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x12, 0x33, + 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, + 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, + 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0c, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x54, 0x0a, 0x14, 0x61, + 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x78, 0x6c, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x52, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x73, 0x12, 0x36, + 0x0a, 0x0a, 0x65, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x73, 0x62, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, + 0x78, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x52, + 0x08, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x76, 0x69, + 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x11, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x22, 0x23, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x6b, 0x65, + 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x73, 0x6b, 0x65, + 0x77, 0x22, 0x5a, 0x0a, 0x0e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, + 0x72, 0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xbb, 0x01, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, + 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x69, 0x6c, + 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x0f, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x22, 0xc7, 0x01, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x68, 0x61, 0x73, 0x64, 0x6f, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x68, 0x61, 0x73, 0x64, 0x6f, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x72, + 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xe2, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0f, + 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x70, 0x0a, 0x0b, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xf4, 0x01, 0x0a, + 0x0c, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x41, 0x0a, 0x0f, 0x61, 0x78, + 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x61, 0x78, + 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0xbd, 0x03, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, + 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, + 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x12, 0x2a, 0x0a, 0x06, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, + 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, + 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, + 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x63, 0x52, 0x65, 0x66, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, + 0x70, 0x63, 0x52, 0x65, 0x66, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, + 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, + 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x5b, 0x0a, 0x0f, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x22, 0xc3, 0x01, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8a, 0x03, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, + 0x65, 0x66, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, + 0x66, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x78, + 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x30, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, + 0x6c, 0x10, 0x02, 0x22, 0xa3, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x5a, 0x0a, 0x0a, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x6e, 0x6b, 0x10, 0x04, 0x22, 0x21, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, + 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0x3b, 0x0a, 0x0d, 0x54, 0x75, 0x72, + 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x09, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x92, + 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2f, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x8b, 0x01, 0x0a, 0x09, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, + 0x66, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0x01, 0x22, 0xe2, 0x02, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, + 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, + 0x75, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x07, 0x61, 0x53, 0x69, + 0x6d, 0x52, 0x65, 0x66, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x07, 0x62, + 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x52, 0x65, 0x66, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x04, 0x61, + 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x62, 0x52, 0x65, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x04, 0x62, 0x52, 0x65, 0x66, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb6, 0x02, 0x0a, 0x13, 0x41, 0x78, 0x6c, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, + 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2d, + 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12, 0x3a, 0x0a, + 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x74, + 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0xd9, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x0c, + 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x6f, 0x61, + 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x1d, 0x0a, 0x08, 0x43, + 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x69, 0x78, 0x10, 0x01, 0x22, 0x7b, 0x0a, 0x0a, 0x53, 0x70, + 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7a, 0x0a, 0x09, 0x45, 0x73, 0x62, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x79, 0x0a, 0x08, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, + 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x48, + 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, + 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x13, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x0a, 0x2e, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_stationLayoutGraphics_proto_rawDescOnce sync.Once + file_stationLayoutGraphics_proto_rawDescData = file_stationLayoutGraphics_proto_rawDesc +) + +func file_stationLayoutGraphics_proto_rawDescGZIP() []byte { + file_stationLayoutGraphics_proto_rawDescOnce.Do(func() { + file_stationLayoutGraphics_proto_rawDescData = protoimpl.X.CompressGZIP(file_stationLayoutGraphics_proto_rawDescData) + }) + return file_stationLayoutGraphics_proto_rawDescData +} + +var file_stationLayoutGraphics_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_stationLayoutGraphics_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_stationLayoutGraphics_proto_goTypes = []interface{}{ + (Section_SectionType)(0), // 0: graphicData.Section.SectionType + (RelatedRef_DeviceType)(0), // 1: graphicData.RelatedRef.DeviceType + (RelatedRef_DevicePort)(0), // 2: graphicData.RelatedRef.DevicePort + (SimpleRef_DeviceType)(0), // 3: graphicData.SimpleRef.DeviceType + (StopPosition_CoachNum)(0), // 4: graphicData.StopPosition.CoachNum + (*RtssGraphicStorage)(nil), // 5: graphicData.RtssGraphicStorage + (*Canvas)(nil), // 6: graphicData.Canvas + (*Point)(nil), // 7: graphicData.Point + (*Transform)(nil), // 8: graphicData.Transform + (*ChildTransform)(nil), // 9: graphicData.ChildTransform + (*CommonInfo)(nil), // 10: graphicData.CommonInfo + (*Platform)(nil), // 11: graphicData.Platform + (*Station)(nil), // 12: graphicData.Station + (*TrainWindow)(nil), // 13: graphicData.TrainWindow + (*AxleCounting)(nil), // 14: graphicData.AxleCounting + (*Turnout)(nil), // 15: graphicData.Turnout + (*KilometerSystem)(nil), // 16: graphicData.KilometerSystem + (*Signal)(nil), // 17: graphicData.Signal + (*Section)(nil), // 18: graphicData.Section + (*RelatedRef)(nil), // 19: graphicData.RelatedRef + (*TurnoutPosRef)(nil), // 20: graphicData.TurnoutPosRef + (*Separator)(nil), // 21: graphicData.Separator + (*Transponder)(nil), // 22: graphicData.Transponder + (*SimpleRef)(nil), // 23: graphicData.SimpleRef + (*SectionLink)(nil), // 24: graphicData.SectionLink + (*AxleCountingSection)(nil), // 25: graphicData.AxleCountingSection + (*LogicSection)(nil), // 26: graphicData.LogicSection + (*StopPosition)(nil), // 27: graphicData.StopPosition + (*SpksSwitch)(nil), // 28: graphicData.SpksSwitch + (*EsbButton)(nil), // 29: graphicData.EsbButton + (*GatedBox)(nil), // 30: graphicData.GatedBox +} +var file_stationLayoutGraphics_proto_depIdxs = []int32{ + 6, // 0: graphicData.RtssGraphicStorage.canvas:type_name -> graphicData.Canvas + 11, // 1: graphicData.RtssGraphicStorage.Platforms:type_name -> graphicData.Platform + 12, // 2: graphicData.RtssGraphicStorage.stations:type_name -> graphicData.Station + 17, // 3: graphicData.RtssGraphicStorage.signals:type_name -> graphicData.Signal + 15, // 4: graphicData.RtssGraphicStorage.turnouts:type_name -> graphicData.Turnout + 18, // 5: graphicData.RtssGraphicStorage.section:type_name -> graphicData.Section + 13, // 6: graphicData.RtssGraphicStorage.trainWindows:type_name -> graphicData.TrainWindow + 14, // 7: graphicData.RtssGraphicStorage.axleCountings:type_name -> graphicData.AxleCounting + 21, // 8: graphicData.RtssGraphicStorage.separators:type_name -> graphicData.Separator + 24, // 9: graphicData.RtssGraphicStorage.sectionLinks:type_name -> graphicData.SectionLink + 25, // 10: graphicData.RtssGraphicStorage.axleCountingSections:type_name -> graphicData.AxleCountingSection + 26, // 11: graphicData.RtssGraphicStorage.logicSections:type_name -> graphicData.LogicSection + 27, // 12: graphicData.RtssGraphicStorage.stopPositions:type_name -> graphicData.StopPosition + 28, // 13: graphicData.RtssGraphicStorage.spksSwitchs:type_name -> graphicData.SpksSwitch + 29, // 14: graphicData.RtssGraphicStorage.esbButtons:type_name -> graphicData.EsbButton + 30, // 15: graphicData.RtssGraphicStorage.gateBoxs:type_name -> graphicData.GatedBox + 22, // 16: graphicData.RtssGraphicStorage.transponders:type_name -> graphicData.Transponder + 8, // 17: graphicData.Canvas.viewportTransform:type_name -> graphicData.Transform + 7, // 18: graphicData.Transform.position:type_name -> graphicData.Point + 7, // 19: graphicData.Transform.scale:type_name -> graphicData.Point + 7, // 20: graphicData.Transform.skew:type_name -> graphicData.Point + 8, // 21: graphicData.ChildTransform.transform:type_name -> graphicData.Transform + 8, // 22: graphicData.CommonInfo.transform:type_name -> graphicData.Transform + 9, // 23: graphicData.CommonInfo.childTransforms:type_name -> graphicData.ChildTransform + 10, // 24: graphicData.Platform.common:type_name -> graphicData.CommonInfo + 10, // 25: graphicData.Station.common:type_name -> graphicData.CommonInfo + 16, // 26: graphicData.Station.kilometerSystem:type_name -> graphicData.KilometerSystem + 10, // 27: graphicData.TrainWindow.common:type_name -> graphicData.CommonInfo + 10, // 28: graphicData.AxleCounting.common:type_name -> graphicData.CommonInfo + 16, // 29: graphicData.AxleCounting.kilometerSystem:type_name -> graphicData.KilometerSystem + 19, // 30: graphicData.AxleCounting.axleCountingRef:type_name -> graphicData.RelatedRef + 10, // 31: graphicData.Turnout.common:type_name -> graphicData.CommonInfo + 7, // 32: graphicData.Turnout.pointA:type_name -> graphicData.Point + 7, // 33: graphicData.Turnout.pointB:type_name -> graphicData.Point + 7, // 34: graphicData.Turnout.pointC:type_name -> graphicData.Point + 19, // 35: graphicData.Turnout.paRef:type_name -> graphicData.RelatedRef + 19, // 36: graphicData.Turnout.pbRef:type_name -> graphicData.RelatedRef + 19, // 37: graphicData.Turnout.pcRef:type_name -> graphicData.RelatedRef + 16, // 38: graphicData.Turnout.kilometerSystem:type_name -> graphicData.KilometerSystem + 10, // 39: graphicData.Signal.common:type_name -> graphicData.CommonInfo + 16, // 40: graphicData.Signal.kilometerSystem:type_name -> graphicData.KilometerSystem + 10, // 41: graphicData.Section.common:type_name -> graphicData.CommonInfo + 7, // 42: graphicData.Section.points:type_name -> graphicData.Point + 19, // 43: graphicData.Section.paRef:type_name -> graphicData.RelatedRef + 19, // 44: graphicData.Section.pbRef:type_name -> graphicData.RelatedRef + 0, // 45: graphicData.Section.sectionType:type_name -> graphicData.Section.SectionType + 1, // 46: graphicData.RelatedRef.deviceType:type_name -> graphicData.RelatedRef.DeviceType + 2, // 47: graphicData.RelatedRef.devicePort:type_name -> graphicData.RelatedRef.DevicePort + 10, // 48: graphicData.Separator.common:type_name -> graphicData.CommonInfo + 10, // 49: graphicData.Transponder.common:type_name -> graphicData.CommonInfo + 3, // 50: graphicData.SimpleRef.deviceType:type_name -> graphicData.SimpleRef.DeviceType + 10, // 51: graphicData.SectionLink.common:type_name -> graphicData.CommonInfo + 7, // 52: graphicData.SectionLink.points:type_name -> graphicData.Point + 23, // 53: graphicData.SectionLink.aSimRef:type_name -> graphicData.SimpleRef + 23, // 54: graphicData.SectionLink.bSimRef:type_name -> graphicData.SimpleRef + 19, // 55: graphicData.SectionLink.aRef:type_name -> graphicData.RelatedRef + 19, // 56: graphicData.SectionLink.bRef:type_name -> graphicData.RelatedRef + 10, // 57: graphicData.AxleCountingSection.common:type_name -> graphicData.CommonInfo + 7, // 58: graphicData.AxleCountingSection.points:type_name -> graphicData.Point + 19, // 59: graphicData.AxleCountingSection.paRef:type_name -> graphicData.RelatedRef + 19, // 60: graphicData.AxleCountingSection.pbRef:type_name -> graphicData.RelatedRef + 20, // 61: graphicData.AxleCountingSection.turnoutPos:type_name -> graphicData.TurnoutPosRef + 10, // 62: graphicData.LogicSection.common:type_name -> graphicData.CommonInfo + 7, // 63: graphicData.LogicSection.points:type_name -> graphicData.Point + 10, // 64: graphicData.StopPosition.common:type_name -> graphicData.CommonInfo + 4, // 65: graphicData.StopPosition.coachNum:type_name -> graphicData.StopPosition.CoachNum + 10, // 66: graphicData.SpksSwitch.common:type_name -> graphicData.CommonInfo + 10, // 67: graphicData.EsbButton.common:type_name -> graphicData.CommonInfo + 10, // 68: graphicData.GatedBox.common:type_name -> graphicData.CommonInfo + 69, // [69:69] is the sub-list for method output_type + 69, // [69:69] is the sub-list for method input_type + 69, // [69:69] is the sub-list for extension type_name + 69, // [69:69] is the sub-list for extension extendee + 0, // [0:69] is the sub-list for field type_name +} + +func init() { file_stationLayoutGraphics_proto_init() } +func file_stationLayoutGraphics_proto_init() { + if File_stationLayoutGraphics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_stationLayoutGraphics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RtssGraphicStorage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Canvas); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Point); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChildTransform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Platform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Station); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrainWindow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AxleCounting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Turnout); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KilometerSystem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Signal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Section); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RelatedRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TurnoutPosRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Separator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transponder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SimpleRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SectionLink); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AxleCountingSection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogicSection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpksSwitch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EsbButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_stationLayoutGraphics_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GatedBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_stationLayoutGraphics_proto_rawDesc, + NumEnums: 5, + NumMessages: 26, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_stationLayoutGraphics_proto_goTypes, + DependencyIndexes: file_stationLayoutGraphics_proto_depIdxs, + EnumInfos: file_stationLayoutGraphics_proto_enumTypes, + MessageInfos: file_stationLayoutGraphics_proto_msgTypes, + }.Build() + File_stationLayoutGraphics_proto = out.File + file_stationLayoutGraphics_proto_rawDesc = nil + file_stationLayoutGraphics_proto_goTypes = nil + file_stationLayoutGraphics_proto_depIdxs = nil +}