// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v4.23.1 // source: stationLayoutGraphics.proto package graphicData 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"` // 应答器 Slopes []*Slope `protobuf:"bytes,23,rep,name=slopes,proto3" json:"slopes,omitempty"` // 坡度 CalculateLink []*CalculateLink `protobuf:"bytes,24,rep,name=CalculateLink,proto3" json:"CalculateLink,omitempty"` // 计算link信息 } 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 } func (x *RtssGraphicStorage) GetSlopes() []*Slope { if x != nil { return x.Slopes } return nil } func (x *RtssGraphicStorage) GetCalculateLink() []*CalculateLink { if x != nil { return x.CalculateLink } 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"` //计轴的索引编号 Invent bool `protobuf:"varint,6,opt,name=invent,proto3" json:"invent,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 } func (x *AxleCounting) GetInvent() bool { if x != nil { return x.Invent } return false } 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"` //索引 RefDev *RelatedRef `protobuf:"bytes,8,opt,name=refDev,proto3" json:"refDev,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 } func (x *Signal) GetRefDev() *RelatedRef { if x != nil { return x.RefDev } return nil } // * 物理区段(包含岔区和非岔区) 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"` // 索引编号 KilometerSystem *KilometerSystem `protobuf:"bytes,5,opt,name=kilometerSystem,proto3" json:"kilometerSystem,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 } func (x *Transponder) GetKilometerSystem() *KilometerSystem { if x != nil { return x.KilometerSystem } return nil } 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"` //索引 KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` RefDev *RelatedRef `protobuf:"bytes,7,opt,name=refDev,proto3" json:"refDev,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 } func (x *StopPosition) GetKilometerSystem() *KilometerSystem { if x != nil { return x.KilometerSystem } return nil } func (x *StopPosition) GetRefDev() *RelatedRef { if x != nil { return x.RefDev } return nil } 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"` //索引 RefStand int32 `protobuf:"varint,5,opt,name=refStand,proto3" json:"refStand,omitempty"` //关联站台索引 RefSections []string `protobuf:"bytes,6,rep,name=refSections,proto3" json:"refSections,omitempty"` // 关联物理区段id } 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 } func (x *SpksSwitch) GetRefStand() int32 { if x != nil { return x.RefStand } return 0 } func (x *SpksSwitch) GetRefSections() []string { if x != nil { return x.RefSections } return nil } 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"` //索引 RefStand int32 `protobuf:"varint,5,opt,name=refStand,proto3" json:"refStand,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 } func (x *EsbButton) GetRefStand() int32 { if x != nil { return x.RefStand } 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 } type Slope 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"` SlopeNumber string `protobuf:"bytes,4,opt,name=slopeNumber,proto3" json:"slopeNumber,omitempty"` //坡度的值 SlopeDirection string `protobuf:"bytes,5,opt,name=slopeDirection,proto3" json:"slopeDirection,omitempty"` //坡度方向 有三种,无坡度--上坡--下坡 SlopeLong int64 `protobuf:"varint,6,opt,name=slopeLong,proto3" json:"slopeLong,omitempty"` //该坡度的长度--两端公里标的差值 RefDeviceId []string `protobuf:"bytes,7,rep,name=refDeviceId,proto3" json:"refDeviceId,omitempty"` // 坡度关联的设备 } func (x *Slope) Reset() { *x = Slope{} if protoimpl.UnsafeEnabled { mi := &file_stationLayoutGraphics_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Slope) String() string { return protoimpl.X.MessageStringOf(x) } func (*Slope) ProtoMessage() {} func (x *Slope) ProtoReflect() protoreflect.Message { mi := &file_stationLayoutGraphics_proto_msgTypes[26] 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 Slope.ProtoReflect.Descriptor instead. func (*Slope) Descriptor() ([]byte, []int) { return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{26} } func (x *Slope) GetCommon() *CommonInfo { if x != nil { return x.Common } return nil } func (x *Slope) GetCode() string { if x != nil { return x.Code } return "" } func (x *Slope) GetPoints() []*Point { if x != nil { return x.Points } return nil } func (x *Slope) GetSlopeNumber() string { if x != nil { return x.SlopeNumber } return "" } func (x *Slope) GetSlopeDirection() string { if x != nil { return x.SlopeDirection } return "" } func (x *Slope) GetSlopeLong() int64 { if x != nil { return x.SlopeLong } return 0 } func (x *Slope) GetRefDeviceId() []string { if x != nil { return x.RefDeviceId } return nil } // 计算link结构 type CalculateLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"` Length int32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` //长度,mm ARelatedRef *RelatedRef `protobuf:"bytes,4,opt,name=aRelatedRef,proto3" json:"aRelatedRef,omitempty"` //A端(最小端)关联的端点 BRelatedRef *RelatedRef `protobuf:"bytes,5,opt,name=bRelatedRef,proto3" json:"bRelatedRef,omitempty"` //B端(最大端)关联的端点 DevicePositions []*CalculateLink_DevicePosition `protobuf:"bytes,6,rep,name=devicePositions,proto3" json:"devicePositions,omitempty"` //设备在link上的位置 } func (x *CalculateLink) Reset() { *x = CalculateLink{} if protoimpl.UnsafeEnabled { mi := &file_stationLayoutGraphics_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CalculateLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*CalculateLink) ProtoMessage() {} func (x *CalculateLink) ProtoReflect() protoreflect.Message { mi := &file_stationLayoutGraphics_proto_msgTypes[27] 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 CalculateLink.ProtoReflect.Descriptor instead. func (*CalculateLink) Descriptor() ([]byte, []int) { return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{27} } func (x *CalculateLink) GetCommon() *CommonInfo { if x != nil { return x.Common } return nil } func (x *CalculateLink) GetPoints() []*Point { if x != nil { return x.Points } return nil } func (x *CalculateLink) GetLength() int32 { if x != nil { return x.Length } return 0 } func (x *CalculateLink) GetARelatedRef() *RelatedRef { if x != nil { return x.ARelatedRef } return nil } func (x *CalculateLink) GetBRelatedRef() *RelatedRef { if x != nil { return x.BRelatedRef } return nil } func (x *CalculateLink) GetDevicePositions() []*CalculateLink_DevicePosition { if x != nil { return x.DevicePositions } return nil } type CalculateLink_DevicePosition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Offset int32 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` DeviceId string `protobuf:"bytes,2,opt,name=deviceId,proto3" json:"deviceId,omitempty"` } func (x *CalculateLink_DevicePosition) Reset() { *x = CalculateLink_DevicePosition{} if protoimpl.UnsafeEnabled { mi := &file_stationLayoutGraphics_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CalculateLink_DevicePosition) String() string { return protoimpl.X.MessageStringOf(x) } func (*CalculateLink_DevicePosition) ProtoMessage() {} func (x *CalculateLink_DevicePosition) ProtoReflect() protoreflect.Message { mi := &file_stationLayoutGraphics_proto_msgTypes[28] 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 CalculateLink_DevicePosition.ProtoReflect.Descriptor instead. func (*CalculateLink_DevicePosition) Descriptor() ([]byte, []int) { return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{27, 0} } func (x *CalculateLink_DevicePosition) GetOffset() int32 { if x != nil { return x.Offset } return 0 } func (x *CalculateLink_DevicePosition) GetDeviceId() string { if x != nil { return x.DeviceId } return "" } 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, 0xd8, 0x08, 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, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0d, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x8c, 0x02, 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, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 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, 0xf4, 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, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 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, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 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, 0xda, 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, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x05, 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, 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, 0xd5, 0x02, 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, 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, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 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, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 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, 0xb9, 0x01, 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, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x96, 0x01, 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, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 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, 0x22, 0x82, 0x02, 0x0a, 0x05, 0x53, 0x6c, 0x6f, 0x70, 0x65, 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, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4c, 0x6f, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x95, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 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, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 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, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 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, 0x0b, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 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, 0x0b, 0x62, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x44, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x42, 0x5d, 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, 0x1f, 0x2e, 0x2f, 0x61, 0x74, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 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, 29) 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 (*Slope)(nil), // 31: graphicData.Slope (*CalculateLink)(nil), // 32: graphicData.CalculateLink (*CalculateLink_DevicePosition)(nil), // 33: graphicData.CalculateLink.DevicePosition } 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 31, // 17: graphicData.RtssGraphicStorage.slopes:type_name -> graphicData.Slope 32, // 18: graphicData.RtssGraphicStorage.CalculateLink:type_name -> graphicData.CalculateLink 8, // 19: graphicData.Canvas.viewportTransform:type_name -> graphicData.Transform 7, // 20: graphicData.Transform.position:type_name -> graphicData.Point 7, // 21: graphicData.Transform.scale:type_name -> graphicData.Point 7, // 22: graphicData.Transform.skew:type_name -> graphicData.Point 8, // 23: graphicData.ChildTransform.transform:type_name -> graphicData.Transform 8, // 24: graphicData.CommonInfo.transform:type_name -> graphicData.Transform 9, // 25: graphicData.CommonInfo.childTransforms:type_name -> graphicData.ChildTransform 10, // 26: graphicData.Platform.common:type_name -> graphicData.CommonInfo 10, // 27: graphicData.Station.common:type_name -> graphicData.CommonInfo 16, // 28: graphicData.Station.kilometerSystem:type_name -> graphicData.KilometerSystem 10, // 29: graphicData.TrainWindow.common:type_name -> graphicData.CommonInfo 10, // 30: graphicData.AxleCounting.common:type_name -> graphicData.CommonInfo 16, // 31: graphicData.AxleCounting.kilometerSystem:type_name -> graphicData.KilometerSystem 19, // 32: graphicData.AxleCounting.axleCountingRef:type_name -> graphicData.RelatedRef 10, // 33: graphicData.Turnout.common:type_name -> graphicData.CommonInfo 7, // 34: graphicData.Turnout.pointA:type_name -> graphicData.Point 7, // 35: graphicData.Turnout.pointB:type_name -> graphicData.Point 7, // 36: graphicData.Turnout.pointC:type_name -> graphicData.Point 19, // 37: graphicData.Turnout.paRef:type_name -> graphicData.RelatedRef 19, // 38: graphicData.Turnout.pbRef:type_name -> graphicData.RelatedRef 19, // 39: graphicData.Turnout.pcRef:type_name -> graphicData.RelatedRef 16, // 40: graphicData.Turnout.kilometerSystem:type_name -> graphicData.KilometerSystem 10, // 41: graphicData.Signal.common:type_name -> graphicData.CommonInfo 16, // 42: graphicData.Signal.kilometerSystem:type_name -> graphicData.KilometerSystem 19, // 43: graphicData.Signal.refDev:type_name -> graphicData.RelatedRef 10, // 44: graphicData.Section.common:type_name -> graphicData.CommonInfo 7, // 45: graphicData.Section.points:type_name -> graphicData.Point 19, // 46: graphicData.Section.paRef:type_name -> graphicData.RelatedRef 19, // 47: graphicData.Section.pbRef:type_name -> graphicData.RelatedRef 0, // 48: graphicData.Section.sectionType:type_name -> graphicData.Section.SectionType 1, // 49: graphicData.RelatedRef.deviceType:type_name -> graphicData.RelatedRef.DeviceType 2, // 50: graphicData.RelatedRef.devicePort:type_name -> graphicData.RelatedRef.DevicePort 10, // 51: graphicData.Separator.common:type_name -> graphicData.CommonInfo 10, // 52: graphicData.Transponder.common:type_name -> graphicData.CommonInfo 16, // 53: graphicData.Transponder.kilometerSystem:type_name -> graphicData.KilometerSystem 3, // 54: graphicData.SimpleRef.deviceType:type_name -> graphicData.SimpleRef.DeviceType 10, // 55: graphicData.SectionLink.common:type_name -> graphicData.CommonInfo 7, // 56: graphicData.SectionLink.points:type_name -> graphicData.Point 23, // 57: graphicData.SectionLink.aSimRef:type_name -> graphicData.SimpleRef 23, // 58: graphicData.SectionLink.bSimRef:type_name -> graphicData.SimpleRef 19, // 59: graphicData.SectionLink.aRef:type_name -> graphicData.RelatedRef 19, // 60: graphicData.SectionLink.bRef:type_name -> graphicData.RelatedRef 10, // 61: graphicData.AxleCountingSection.common:type_name -> graphicData.CommonInfo 7, // 62: graphicData.AxleCountingSection.points:type_name -> graphicData.Point 19, // 63: graphicData.AxleCountingSection.paRef:type_name -> graphicData.RelatedRef 19, // 64: graphicData.AxleCountingSection.pbRef:type_name -> graphicData.RelatedRef 20, // 65: graphicData.AxleCountingSection.turnoutPos:type_name -> graphicData.TurnoutPosRef 10, // 66: graphicData.LogicSection.common:type_name -> graphicData.CommonInfo 7, // 67: graphicData.LogicSection.points:type_name -> graphicData.Point 10, // 68: graphicData.StopPosition.common:type_name -> graphicData.CommonInfo 4, // 69: graphicData.StopPosition.coachNum:type_name -> graphicData.StopPosition.CoachNum 16, // 70: graphicData.StopPosition.kilometerSystem:type_name -> graphicData.KilometerSystem 19, // 71: graphicData.StopPosition.refDev:type_name -> graphicData.RelatedRef 10, // 72: graphicData.SpksSwitch.common:type_name -> graphicData.CommonInfo 10, // 73: graphicData.EsbButton.common:type_name -> graphicData.CommonInfo 10, // 74: graphicData.GatedBox.common:type_name -> graphicData.CommonInfo 10, // 75: graphicData.Slope.common:type_name -> graphicData.CommonInfo 7, // 76: graphicData.Slope.points:type_name -> graphicData.Point 10, // 77: graphicData.CalculateLink.common:type_name -> graphicData.CommonInfo 7, // 78: graphicData.CalculateLink.points:type_name -> graphicData.Point 19, // 79: graphicData.CalculateLink.aRelatedRef:type_name -> graphicData.RelatedRef 19, // 80: graphicData.CalculateLink.bRelatedRef:type_name -> graphicData.RelatedRef 33, // 81: graphicData.CalculateLink.devicePositions:type_name -> graphicData.CalculateLink.DevicePosition 82, // [82:82] is the sub-list for method output_type 82, // [82:82] is the sub-list for method input_type 82, // [82:82] is the sub-list for extension type_name 82, // [82:82] is the sub-list for extension extendee 0, // [0:82] 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 } } file_stationLayoutGraphics_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Slope); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_stationLayoutGraphics_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CalculateLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_stationLayoutGraphics_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CalculateLink_DevicePosition); 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: 29, 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 }