From 2282ad9f56858d088c26578c1edd0274a7b3c1c2 Mon Sep 17 00:00:00 2001 From: walker Date: Fri, 29 Dec 2023 17:48:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E7=BB=84=E4=BB=B6=E5=8F=8A?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=95=B0=E6=8D=AE=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- component/ci.go | 10 + component/common.go | 9 +- component/component_data/ci.pb.go | 1305 ++++++ component/component_data/common.pb.go | 436 ++ component/component_data/points.pb.go | 639 +++ component/relation/points.go | 166 + ...id_entity_index.go => entity_uid_index.go} | 1 + component/singleton/load.go | 3 + component/singleton/world_time.go | 2 +- entity/iscs_bas.go | 4 +- entity/{cg_load.go => loader.go} | 2 +- entity/psd.go | 5 +- entity/turnout.go | 2 +- fi/iscs_bas.go | 3 +- init.go | 2 +- jl-ecs-go | 2 +- proto/src/component/ci.proto | 143 +- proto/src/component/common.proto | 16 +- proto/src/component/points.proto | 65 + proto/src/component/turnout.proto | 54 - repo/dto/cg_repo.pb.go | 4061 +++++++++++++++++ sys/common_sys/two_position_movement.go | 4 +- sys/device_sys/asd.go | 4 +- sys/device_sys/zzj.go | 4 +- sys/iscs_sys/iscs_bas_valve.go | 7 +- 25 files changed, 6866 insertions(+), 83 deletions(-) create mode 100644 component/ci.go create mode 100644 component/component_data/ci.pb.go create mode 100644 component/component_data/common.pb.go create mode 100644 component/component_data/points.pb.go create mode 100644 component/relation/points.go rename component/singleton/{uid_entity_index.go => entity_uid_index.go} (93%) rename entity/{cg_load.go => loader.go} (89%) create mode 100644 proto/src/component/points.proto delete mode 100644 proto/src/component/turnout.proto create mode 100644 repo/dto/cg_repo.pb.go diff --git a/component/ci.go b/component/ci.go new file mode 100644 index 0000000..65bb7c1 --- /dev/null +++ b/component/ci.go @@ -0,0 +1,10 @@ +package component + +import ( + "joylink.club/ecs" + "joylink.club/rtsssimulation/component/component_data" +) + +var ( + CiSysRAMType = ecs.NewComponentType[component_data.CiSysRAM]() +) diff --git a/component/common.go b/component/common.go index 258c2e9..4a475bc 100644 --- a/component/common.go +++ b/component/common.go @@ -6,6 +6,8 @@ import ( "joylink.club/rtsssimulation/consts" ) +var BitType = ecs.NewComponentType[bool]() + // 唯一ID组件 type Uid struct { Id string @@ -19,16 +21,17 @@ var UidType = ecs.NewComponentType[Uid]() // Speed int // } -type TwoPositionTransform struct { +type FixedPositionTransform struct { component_proto.TwoPositionTransform } // 当前位置百分比值 -func (tp *TwoPositionTransform) Percentage() float32 { +func (tp *FixedPositionTransform) Percentage() float32 { return float32(tp.Pos) / consts.TwoPosMax } -var TwoPositionTransformType = ecs.NewComponentType[TwoPositionTransform]() +// 固定位置转换组件类型 +var FixedPositionTransformType = ecs.NewComponentType[FixedPositionTransform]() // 计算两位置动作的平均速度 // 总时间t和tick的单位都应该是ms diff --git a/component/component_data/ci.pb.go b/component/component_data/ci.pb.go new file mode 100644 index 0000000..d4141d6 --- /dev/null +++ b/component/component_data/ci.pb.go @@ -0,0 +1,1305 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: component/ci.proto + +package component_data + +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 Signal_Aspect int32 + +const ( + // 红灯亮 + Signal_H Signal_Aspect = 0 + // 绿灯亮 + Signal_L Signal_Aspect = 1 + // 黄灯亮 + Signal_U Signal_Aspect = 2 + // 黄红灯亮(引导信号) + Signal_UH Signal_Aspect = 3 + // 白灯亮 + Signal_B Signal_Aspect = 4 + // 蓝灯亮 + Signal_A Signal_Aspect = 5 +) + +// Enum value maps for Signal_Aspect. +var ( + Signal_Aspect_name = map[int32]string{ + 0: "H", + 1: "L", + 2: "U", + 3: "UH", + 4: "B", + 5: "A", + } + Signal_Aspect_value = map[string]int32{ + "H": 0, + "L": 1, + "U": 2, + "UH": 3, + "B": 4, + "A": 5, + } +) + +func (x Signal_Aspect) Enum() *Signal_Aspect { + p := new(Signal_Aspect) + *p = x + return p +} + +func (x Signal_Aspect) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Signal_Aspect) Descriptor() protoreflect.EnumDescriptor { + return file_component_ci_proto_enumTypes[0].Descriptor() +} + +func (Signal_Aspect) Type() protoreflect.EnumType { + return &file_component_ci_proto_enumTypes[0] +} + +func (x Signal_Aspect) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Signal_Aspect.Descriptor instead. +func (Signal_Aspect) EnumDescriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{4, 0} +} + +// 进路信号控制级别 +type RouteSignal_ControlLevel int32 + +const ( + // 关闭 + RouteSignal_Close RouteSignal_ControlLevel = 0 + // 引导信号控制级别 + RouteSignal_CallOn RouteSignal_ControlLevel = 1 + // 移动闭塞信号控制级别 + RouteSignal_CTC RouteSignal_ControlLevel = 2 + // 主信号控制级别 + RouteSignal_Main RouteSignal_ControlLevel = 3 +) + +// Enum value maps for RouteSignal_ControlLevel. +var ( + RouteSignal_ControlLevel_name = map[int32]string{ + 0: "Close", + 1: "CallOn", + 2: "CTC", + 3: "Main", + } + RouteSignal_ControlLevel_value = map[string]int32{ + "Close": 0, + "CallOn": 1, + "CTC": 2, + "Main": 3, + } +) + +func (x RouteSignal_ControlLevel) Enum() *RouteSignal_ControlLevel { + p := new(RouteSignal_ControlLevel) + *p = x + return p +} + +func (x RouteSignal_ControlLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RouteSignal_ControlLevel) Descriptor() protoreflect.EnumDescriptor { + return file_component_ci_proto_enumTypes[1].Descriptor() +} + +func (RouteSignal_ControlLevel) Type() protoreflect.EnumType { + return &file_component_ci_proto_enumTypes[1] +} + +func (x RouteSignal_ControlLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RouteSignal_ControlLevel.Descriptor instead. +func (RouteSignal_ControlLevel) EnumDescriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{7, 0} +} + +// 联锁系统内存数据状态 +type CiSysRAM struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QcStates map[string]*CiQcState `protobuf:"bytes,2,rep,name=qcStates,proto3" json:"qcStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SectionStates map[string]*CiSectionState `protobuf:"bytes,3,rep,name=sectionStates,proto3" json:"sectionStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + TurnoutStates map[string]*CiPointsState `protobuf:"bytes,4,rep,name=turnoutStates,proto3" json:"turnoutStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SignalStates map[string]*CiSignalState `protobuf:"bytes,5,rep,name=signalStates,proto3" json:"signalStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + PlatformStates map[string]*CiPlatformState `protobuf:"bytes,6,rep,name=platformStates,proto3" json:"platformStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + RouteStates map[string]*CiRouteState `protobuf:"bytes,7,rep,name=routeStates,proto3" json:"routeStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + OverlapStates map[string]*CiOverlapState `protobuf:"bytes,8,rep,name=overlapStates,proto3" json:"overlapStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *CiSysRAM) Reset() { + *x = CiSysRAM{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiSysRAM) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiSysRAM) ProtoMessage() {} + +func (x *CiSysRAM) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiSysRAM.ProtoReflect.Descriptor instead. +func (*CiSysRAM) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{0} +} + +func (x *CiSysRAM) GetQcStates() map[string]*CiQcState { + if x != nil { + return x.QcStates + } + return nil +} + +func (x *CiSysRAM) GetSectionStates() map[string]*CiSectionState { + if x != nil { + return x.SectionStates + } + return nil +} + +func (x *CiSysRAM) GetTurnoutStates() map[string]*CiPointsState { + if x != nil { + return x.TurnoutStates + } + return nil +} + +func (x *CiSysRAM) GetSignalStates() map[string]*CiSignalState { + if x != nil { + return x.SignalStates + } + return nil +} + +func (x *CiSysRAM) GetPlatformStates() map[string]*CiPlatformState { + if x != nil { + return x.PlatformStates + } + return nil +} + +func (x *CiSysRAM) GetRouteStates() map[string]*CiRouteState { + if x != nil { + return x.RouteStates + } + return nil +} + +func (x *CiSysRAM) GetOverlapStates() map[string]*CiOverlapState { + if x != nil { + return x.OverlapStates + } + return nil +} + +// 联锁驱动、采集状态表 +type CiQcState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 驱动bit表 + Qbs []byte `protobuf:"bytes,2,opt,name=qbs,proto3" json:"qbs,omitempty"` + // 采集bit表 + Cbs []byte `protobuf:"bytes,3,opt,name=cbs,proto3" json:"cbs,omitempty"` +} + +func (x *CiQcState) Reset() { + *x = CiQcState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiQcState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiQcState) ProtoMessage() {} + +func (x *CiQcState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiQcState.ProtoReflect.Descriptor instead. +func (*CiQcState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{1} +} + +func (x *CiQcState) GetQbs() []byte { + if x != nil { + return x.Qbs + } + return nil +} + +func (x *CiQcState) GetCbs() []byte { + if x != nil { + return x.Cbs + } + return nil +} + +// 联锁区段状态 +type CiSectionState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否物理检测占用 + CiOccupied bool `protobuf:"varint,2,opt,name=ciOccupied,proto3" json:"ciOccupied,omitempty"` + // 是否cbtc逻辑占用 + CbtcOccupied bool `protobuf:"varint,3,opt,name=cbtcOccupied,proto3" json:"cbtcOccupied,omitempty"` + // 是否进路锁闭 + RouteLock bool `protobuf:"varint,4,opt,name=routeLock,proto3" json:"routeLock,omitempty"` + // 是否延续保护锁闭 + OverlapLock bool `protobuf:"varint,5,opt,name=overlapLock,proto3" json:"overlapLock,omitempty"` + // 是否封锁 + Block bool `protobuf:"varint,6,opt,name=block,proto3" json:"block,omitempty"` + // 是否故障锁闭 + FailLock bool `protobuf:"varint,7,opt,name=failLock,proto3" json:"failLock,omitempty"` +} + +func (x *CiSectionState) Reset() { + *x = CiSectionState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiSectionState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiSectionState) ProtoMessage() {} + +func (x *CiSectionState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiSectionState.ProtoReflect.Descriptor instead. +func (*CiSectionState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{2} +} + +func (x *CiSectionState) GetCiOccupied() bool { + if x != nil { + return x.CiOccupied + } + return false +} + +func (x *CiSectionState) GetCbtcOccupied() bool { + if x != nil { + return x.CbtcOccupied + } + return false +} + +func (x *CiSectionState) GetRouteLock() bool { + if x != nil { + return x.RouteLock + } + return false +} + +func (x *CiSectionState) GetOverlapLock() bool { + if x != nil { + return x.OverlapLock + } + return false +} + +func (x *CiSectionState) GetBlock() bool { + if x != nil { + return x.Block + } + return false +} + +func (x *CiSectionState) GetFailLock() bool { + if x != nil { + return x.FailLock + } + return false +} + +// 联锁道岔状态 +type CiPointsState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否物理检测占用 + CiOccupied bool `protobuf:"varint,1,opt,name=ciOccupied,proto3" json:"ciOccupied,omitempty"` + // 是否cbtc逻辑占用 + CbtcOccupied bool `protobuf:"varint,2,opt,name=cbtcOccupied,proto3" json:"cbtcOccupied,omitempty"` + // 是否进路锁闭 + RouteLock bool `protobuf:"varint,3,opt,name=routeLock,proto3" json:"routeLock,omitempty"` + // 是否延续保护锁闭 + OverlapLock bool `protobuf:"varint,4,opt,name=overlapLock,proto3" json:"overlapLock,omitempty"` + // 是否封锁 + Block bool `protobuf:"varint,5,opt,name=block,proto3" json:"block,omitempty"` + // 是否故障锁闭 + FailLock bool `protobuf:"varint,6,opt,name=failLock,proto3" json:"failLock,omitempty"` + // 是否定位 + Normal bool `protobuf:"varint,7,opt,name=normal,proto3" json:"normal,omitempty"` + // 是否反位 + Reverse bool `protobuf:"varint,8,opt,name=reverse,proto3" json:"reverse,omitempty"` + // 是否挤岔 + Jammed bool `protobuf:"varint,9,opt,name=jammed,proto3" json:"jammed,omitempty"` + // 是否单锁 + SingleLock bool `protobuf:"varint,10,opt,name=singleLock,proto3" json:"singleLock,omitempty"` +} + +func (x *CiPointsState) Reset() { + *x = CiPointsState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiPointsState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiPointsState) ProtoMessage() {} + +func (x *CiPointsState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiPointsState.ProtoReflect.Descriptor instead. +func (*CiPointsState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{3} +} + +func (x *CiPointsState) GetCiOccupied() bool { + if x != nil { + return x.CiOccupied + } + return false +} + +func (x *CiPointsState) GetCbtcOccupied() bool { + if x != nil { + return x.CbtcOccupied + } + return false +} + +func (x *CiPointsState) GetRouteLock() bool { + if x != nil { + return x.RouteLock + } + return false +} + +func (x *CiPointsState) GetOverlapLock() bool { + if x != nil { + return x.OverlapLock + } + return false +} + +func (x *CiPointsState) GetBlock() bool { + if x != nil { + return x.Block + } + return false +} + +func (x *CiPointsState) GetFailLock() bool { + if x != nil { + return x.FailLock + } + return false +} + +func (x *CiPointsState) GetNormal() bool { + if x != nil { + return x.Normal + } + return false +} + +func (x *CiPointsState) GetReverse() bool { + if x != nil { + return x.Reverse + } + return false +} + +func (x *CiPointsState) GetJammed() bool { + if x != nil { + return x.Jammed + } + return false +} + +func (x *CiPointsState) GetSingleLock() bool { + if x != nil { + return x.SingleLock + } + return false +} + +type Signal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Signal) Reset() { + *x = Signal{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[4] + 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_component_ci_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 Signal.ProtoReflect.Descriptor instead. +func (*Signal) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{4} +} + +// 联锁信号机状态 +type CiSignalState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 信号显示 + Aspect Signal_Aspect `protobuf:"varint,1,opt,name=aspect,proto3,enum=component.Signal_Aspect" json:"aspect,omitempty"` + // 是否逻辑点灯(即室外灭灯) + Logic bool `protobuf:"varint,2,opt,name=logic,proto3" json:"logic,omitempty"` + // 是否封锁 + Block bool `protobuf:"varint,3,opt,name=block,proto3" json:"block,omitempty"` + // 是否灯丝断丝 + LampFault bool `protobuf:"varint,4,opt,name=lampFault,proto3" json:"lampFault,omitempty"` +} + +func (x *CiSignalState) Reset() { + *x = CiSignalState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiSignalState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiSignalState) ProtoMessage() {} + +func (x *CiSignalState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiSignalState.ProtoReflect.Descriptor instead. +func (*CiSignalState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{5} +} + +func (x *CiSignalState) GetAspect() Signal_Aspect { + if x != nil { + return x.Aspect + } + return Signal_H +} + +func (x *CiSignalState) GetLogic() bool { + if x != nil { + return x.Logic + } + return false +} + +func (x *CiSignalState) GetBlock() bool { + if x != nil { + return x.Block + } + return false +} + +func (x *CiSignalState) GetLampFault() bool { + if x != nil { + return x.LampFault + } + return false +} + +// 联锁站台状态 +type CiPlatformState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 车站上行扣车 + UpwardHold bool `protobuf:"varint,1,opt,name=upwardHold,proto3" json:"upwardHold,omitempty"` + // 车站下行扣车 + DownwardHold bool `protobuf:"varint,2,opt,name=downwardHold,proto3" json:"downwardHold,omitempty"` + // 中心上行扣车 + OccUpwardHold bool `protobuf:"varint,3,opt,name=occUpwardHold,proto3" json:"occUpwardHold,omitempty"` + // 中心下行扣车 + OccDownwardHold bool `protobuf:"varint,4,opt,name=occDownwardHold,proto3" json:"occDownwardHold,omitempty"` + // 屏蔽门开 + PsdOpen bool `protobuf:"varint,5,opt,name=psdOpen,proto3" json:"psdOpen,omitempty"` + // 紧急关闭/停车 + EmergStop bool `protobuf:"varint,6,opt,name=emergStop,proto3" json:"emergStop,omitempty"` + // 停站时间 + StopTime int32 `protobuf:"varint,7,opt,name=stopTime,proto3" json:"stopTime,omitempty"` +} + +func (x *CiPlatformState) Reset() { + *x = CiPlatformState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiPlatformState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiPlatformState) ProtoMessage() {} + +func (x *CiPlatformState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiPlatformState.ProtoReflect.Descriptor instead. +func (*CiPlatformState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{6} +} + +func (x *CiPlatformState) GetUpwardHold() bool { + if x != nil { + return x.UpwardHold + } + return false +} + +func (x *CiPlatformState) GetDownwardHold() bool { + if x != nil { + return x.DownwardHold + } + return false +} + +func (x *CiPlatformState) GetOccUpwardHold() bool { + if x != nil { + return x.OccUpwardHold + } + return false +} + +func (x *CiPlatformState) GetOccDownwardHold() bool { + if x != nil { + return x.OccDownwardHold + } + return false +} + +func (x *CiPlatformState) GetPsdOpen() bool { + if x != nil { + return x.PsdOpen + } + return false +} + +func (x *CiPlatformState) GetEmergStop() bool { + if x != nil { + return x.EmergStop + } + return false +} + +func (x *CiPlatformState) GetStopTime() int32 { + if x != nil { + return x.StopTime + } + return 0 +} + +type RouteSignal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RouteSignal) Reset() { + *x = RouteSignal{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouteSignal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteSignal) ProtoMessage() {} + +func (x *RouteSignal) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 RouteSignal.ProtoReflect.Descriptor instead. +func (*RouteSignal) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{7} +} + +// 联锁进路状态 +type CiRouteState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否进路锁闭 + Lock bool `protobuf:"varint,1,opt,name=lock,proto3" json:"lock,omitempty"` + // 是否接近锁闭 + ApproachLock bool `protobuf:"varint,2,opt,name=approachLock,proto3" json:"approachLock,omitempty"` + // 是否车队模式 + FleetMode bool `protobuf:"varint,3,opt,name=fleetMode,proto3" json:"fleetMode,omitempty"` + // 是否联锁自动触发 + CiAutoMode bool `protobuf:"varint,4,opt,name=ciAutoMode,proto3" json:"ciAutoMode,omitempty"` + // 是否ats自动控 + AtsAutoMode bool `protobuf:"varint,5,opt,name=atsAutoMode,proto3" json:"atsAutoMode,omitempty"` + // 是否办理中 + Setting bool `protobuf:"varint,6,opt,name=setting,proto3" json:"setting,omitempty"` + // 进路信号控制级别 + ControlLevel RouteSignal_ControlLevel `protobuf:"varint,7,opt,name=controlLevel,proto3,enum=component.RouteSignal_ControlLevel" json:"controlLevel,omitempty"` +} + +func (x *CiRouteState) Reset() { + *x = CiRouteState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiRouteState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiRouteState) ProtoMessage() {} + +func (x *CiRouteState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiRouteState.ProtoReflect.Descriptor instead. +func (*CiRouteState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{8} +} + +func (x *CiRouteState) GetLock() bool { + if x != nil { + return x.Lock + } + return false +} + +func (x *CiRouteState) GetApproachLock() bool { + if x != nil { + return x.ApproachLock + } + return false +} + +func (x *CiRouteState) GetFleetMode() bool { + if x != nil { + return x.FleetMode + } + return false +} + +func (x *CiRouteState) GetCiAutoMode() bool { + if x != nil { + return x.CiAutoMode + } + return false +} + +func (x *CiRouteState) GetAtsAutoMode() bool { + if x != nil { + return x.AtsAutoMode + } + return false +} + +func (x *CiRouteState) GetSetting() bool { + if x != nil { + return x.Setting + } + return false +} + +func (x *CiRouteState) GetControlLevel() RouteSignal_ControlLevel { + if x != nil { + return x.ControlLevel + } + return RouteSignal_Close +} + +// 联锁延续保护进路状态 +type CiOverlapState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否延续保护锁闭 + Lock bool `protobuf:"varint,1,opt,name=lock,proto3" json:"lock,omitempty"` +} + +func (x *CiOverlapState) Reset() { + *x = CiOverlapState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_ci_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiOverlapState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiOverlapState) ProtoMessage() {} + +func (x *CiOverlapState) ProtoReflect() protoreflect.Message { + mi := &file_component_ci_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 CiOverlapState.ProtoReflect.Descriptor instead. +func (*CiOverlapState) Descriptor() ([]byte, []int) { + return file_component_ci_proto_rawDescGZIP(), []int{9} +} + +func (x *CiOverlapState) GetLock() bool { + if x != nil { + return x.Lock + } + return false +} + +var File_component_ci_proto protoreflect.FileDescriptor + +var file_component_ci_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, + 0x93, 0x09, 0x0a, 0x08, 0x43, 0x69, 0x53, 0x79, 0x73, 0x52, 0x41, 0x4d, 0x12, 0x3d, 0x0a, 0x08, + 0x71, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, 0x79, 0x73, + 0x52, 0x41, 0x4d, 0x2e, 0x51, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x71, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, + 0x69, 0x53, 0x79, 0x73, 0x52, 0x41, 0x4d, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x74, 0x75, 0x72, + 0x6e, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, + 0x79, 0x73, 0x52, 0x41, 0x4d, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, 0x79, 0x73, 0x52, + 0x41, 0x4d, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, 0x79, 0x73, 0x52, 0x41, 0x4d, 0x2e, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, 0x79, 0x73, 0x52, 0x41, 0x4d, 0x2e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, + 0x69, 0x53, 0x79, 0x73, 0x52, 0x41, 0x4d, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x0d, 0x51, 0x63, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x51, 0x63, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x12, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x12, 0x54, 0x75, 0x72, + 0x6e, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x5d, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x57, 0x0a, 0x10, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x43, 0x69, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x12, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x69, 0x4f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x09, 0x43, 0x69, 0x51, 0x63, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x62, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x71, 0x62, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x63, 0x62, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x0e, 0x43, 0x69, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x69, 0x4f, + 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, + 0x69, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x62, 0x74, + 0x63, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x63, 0x62, 0x74, 0x63, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, + 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x4c, 0x6f, 0x63, 0x6b, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x4c, 0x6f, 0x63, 0x6b, 0x22, + 0xaf, 0x02, 0x0a, 0x0d, 0x43, 0x69, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x69, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x69, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, + 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x62, 0x74, 0x63, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x62, 0x74, 0x63, 0x4f, 0x63, 0x63, + 0x75, 0x70, 0x69, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, + 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4c, + 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4c, 0x6f, + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x70, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x61, 0x69, 0x6c, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, + 0x61, 0x69, 0x6c, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x6d, + 0x6d, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x6d, 0x6d, 0x65, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4c, 0x6f, 0x63, + 0x6b, 0x22, 0x3d, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x33, 0x0a, 0x06, 0x41, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, + 0x4c, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x55, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x48, + 0x10, 0x03, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x05, + 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x43, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x06, 0x61, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x6d, 0x70, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x61, 0x6d, 0x70, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xf9, + 0x01, 0x0a, 0x0f, 0x43, 0x69, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x48, 0x6f, + 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x48, 0x6f, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, + 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x63, 0x63, 0x55, 0x70, 0x77, + 0x61, 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, + 0x63, 0x63, 0x55, 0x70, 0x77, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x6f, 0x63, 0x63, 0x44, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6f, 0x63, 0x63, 0x44, 0x6f, 0x77, 0x6e, 0x77, 0x61, + 0x72, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x73, 0x64, 0x4f, 0x70, 0x65, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x73, 0x64, 0x4f, 0x70, 0x65, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x38, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x6e, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x43, 0x54, 0x43, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x61, 0x69, + 0x6e, 0x10, 0x03, 0x22, 0x89, 0x02, 0x0a, 0x0c, 0x43, 0x69, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x61, 0x63, 0x68, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, + 0x66, 0x6c, 0x65, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x69, + 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x63, 0x69, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, + 0x73, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x61, 0x74, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, + 0x24, 0x0a, 0x0e, 0x43, 0x69, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_component_ci_proto_rawDescOnce sync.Once + file_component_ci_proto_rawDescData = file_component_ci_proto_rawDesc +) + +func file_component_ci_proto_rawDescGZIP() []byte { + file_component_ci_proto_rawDescOnce.Do(func() { + file_component_ci_proto_rawDescData = protoimpl.X.CompressGZIP(file_component_ci_proto_rawDescData) + }) + return file_component_ci_proto_rawDescData +} + +var file_component_ci_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_component_ci_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_component_ci_proto_goTypes = []interface{}{ + (Signal_Aspect)(0), // 0: component.Signal.Aspect + (RouteSignal_ControlLevel)(0), // 1: component.RouteSignal.ControlLevel + (*CiSysRAM)(nil), // 2: component.CiSysRAM + (*CiQcState)(nil), // 3: component.CiQcState + (*CiSectionState)(nil), // 4: component.CiSectionState + (*CiPointsState)(nil), // 5: component.CiPointsState + (*Signal)(nil), // 6: component.Signal + (*CiSignalState)(nil), // 7: component.CiSignalState + (*CiPlatformState)(nil), // 8: component.CiPlatformState + (*RouteSignal)(nil), // 9: component.RouteSignal + (*CiRouteState)(nil), // 10: component.CiRouteState + (*CiOverlapState)(nil), // 11: component.CiOverlapState + nil, // 12: component.CiSysRAM.QcStatesEntry + nil, // 13: component.CiSysRAM.SectionStatesEntry + nil, // 14: component.CiSysRAM.TurnoutStatesEntry + nil, // 15: component.CiSysRAM.SignalStatesEntry + nil, // 16: component.CiSysRAM.PlatformStatesEntry + nil, // 17: component.CiSysRAM.RouteStatesEntry + nil, // 18: component.CiSysRAM.OverlapStatesEntry +} +var file_component_ci_proto_depIdxs = []int32{ + 12, // 0: component.CiSysRAM.qcStates:type_name -> component.CiSysRAM.QcStatesEntry + 13, // 1: component.CiSysRAM.sectionStates:type_name -> component.CiSysRAM.SectionStatesEntry + 14, // 2: component.CiSysRAM.turnoutStates:type_name -> component.CiSysRAM.TurnoutStatesEntry + 15, // 3: component.CiSysRAM.signalStates:type_name -> component.CiSysRAM.SignalStatesEntry + 16, // 4: component.CiSysRAM.platformStates:type_name -> component.CiSysRAM.PlatformStatesEntry + 17, // 5: component.CiSysRAM.routeStates:type_name -> component.CiSysRAM.RouteStatesEntry + 18, // 6: component.CiSysRAM.overlapStates:type_name -> component.CiSysRAM.OverlapStatesEntry + 0, // 7: component.CiSignalState.aspect:type_name -> component.Signal.Aspect + 1, // 8: component.CiRouteState.controlLevel:type_name -> component.RouteSignal.ControlLevel + 3, // 9: component.CiSysRAM.QcStatesEntry.value:type_name -> component.CiQcState + 4, // 10: component.CiSysRAM.SectionStatesEntry.value:type_name -> component.CiSectionState + 5, // 11: component.CiSysRAM.TurnoutStatesEntry.value:type_name -> component.CiPointsState + 7, // 12: component.CiSysRAM.SignalStatesEntry.value:type_name -> component.CiSignalState + 8, // 13: component.CiSysRAM.PlatformStatesEntry.value:type_name -> component.CiPlatformState + 10, // 14: component.CiSysRAM.RouteStatesEntry.value:type_name -> component.CiRouteState + 11, // 15: component.CiSysRAM.OverlapStatesEntry.value:type_name -> component.CiOverlapState + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_component_ci_proto_init() } +func file_component_ci_proto_init() { + if File_component_ci_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_component_ci_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiSysRAM); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiQcState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiSectionState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiPointsState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[4].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_component_ci_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiSignalState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiPlatformState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteSignal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiRouteState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_ci_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiOverlapState); 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_component_ci_proto_rawDesc, + NumEnums: 2, + NumMessages: 17, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_component_ci_proto_goTypes, + DependencyIndexes: file_component_ci_proto_depIdxs, + EnumInfos: file_component_ci_proto_enumTypes, + MessageInfos: file_component_ci_proto_msgTypes, + }.Build() + File_component_ci_proto = out.File + file_component_ci_proto_rawDesc = nil + file_component_ci_proto_goTypes = nil + file_component_ci_proto_depIdxs = nil +} diff --git a/component/component_data/common.pb.go b/component/component_data/common.pb.go new file mode 100644 index 0000000..d077134 --- /dev/null +++ b/component/component_data/common.pb.go @@ -0,0 +1,436 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: component/common.proto + +package component_data + +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 Motor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否通电 + PowerUp bool `protobuf:"varint,1,opt,name=powerUp,proto3" json:"powerUp,omitempty"` + // 是否正转 + Forward bool `protobuf:"varint,2,opt,name=forward,proto3" json:"forward,omitempty"` +} + +func (x *Motor) Reset() { + *x = Motor{} + if protoimpl.UnsafeEnabled { + mi := &file_component_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Motor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Motor) ProtoMessage() {} + +func (x *Motor) ProtoReflect() protoreflect.Message { + mi := &file_component_common_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 Motor.ProtoReflect.Descriptor instead. +func (*Motor) Descriptor() ([]byte, []int) { + return file_component_common_proto_rawDescGZIP(), []int{0} +} + +func (x *Motor) GetPowerUp() bool { + if x != nil { + return x.PowerUp + } + return false +} + +func (x *Motor) GetForward() bool { + if x != nil { + return x.Forward + } + return false +} + +// 固定位置转换组件 +type FixedPositionTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos int32 `protobuf:"varint,1,opt,name=pos,proto3" json:"pos,omitempty"` // 当前位置百分比,[0, 10000],两位小数 + Speed int32 `protobuf:"varint,2,opt,name=speed,proto3" json:"speed,omitempty"` +} + +func (x *FixedPositionTransform) Reset() { + *x = FixedPositionTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_component_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FixedPositionTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FixedPositionTransform) ProtoMessage() {} + +func (x *FixedPositionTransform) ProtoReflect() protoreflect.Message { + mi := &file_component_common_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 FixedPositionTransform.ProtoReflect.Descriptor instead. +func (*FixedPositionTransform) Descriptor() ([]byte, []int) { + return file_component_common_proto_rawDescGZIP(), []int{1} +} + +func (x *FixedPositionTransform) GetPos() int32 { + if x != nil { + return x.Pos + } + return 0 +} + +func (x *FixedPositionTransform) GetSpeed() int32 { + if x != nil { + return x.Speed + } + return 0 +} + +// 开关状态组件 +type BitState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Val bool `protobuf:"varint,1,opt,name=val,proto3" json:"val,omitempty"` +} + +func (x *BitState) Reset() { + *x = BitState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BitState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BitState) ProtoMessage() {} + +func (x *BitState) ProtoReflect() protoreflect.Message { + mi := &file_component_common_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 BitState.ProtoReflect.Descriptor instead. +func (*BitState) Descriptor() ([]byte, []int) { + return file_component_common_proto_rawDescGZIP(), []int{2} +} + +func (x *BitState) GetVal() bool { + if x != nil { + return x.Val + } + return false +} + +// 计数/计时组件 +type Counter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Val int32 `protobuf:"varint,1,opt,name=val,proto3" json:"val,omitempty"` + Step int32 `protobuf:"varint,2,opt,name=step,proto3" json:"step,omitempty"` +} + +func (x *Counter) Reset() { + *x = Counter{} + if protoimpl.UnsafeEnabled { + mi := &file_component_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Counter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Counter) ProtoMessage() {} + +func (x *Counter) ProtoReflect() protoreflect.Message { + mi := &file_component_common_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 Counter.ProtoReflect.Descriptor instead. +func (*Counter) Descriptor() ([]byte, []int) { + return file_component_common_proto_rawDescGZIP(), []int{3} +} + +func (x *Counter) GetVal() int32 { + if x != nil { + return x.Val + } + return 0 +} + +func (x *Counter) GetStep() int32 { + if x != nil { + return x.Step + } + return 0 +} + +// 倒数/倒计时组件 +type CounterDown struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Val int32 `protobuf:"varint,1,opt,name=val,proto3" json:"val,omitempty"` + Step int32 `protobuf:"varint,2,opt,name=step,proto3" json:"step,omitempty"` +} + +func (x *CounterDown) Reset() { + *x = CounterDown{} + if protoimpl.UnsafeEnabled { + mi := &file_component_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CounterDown) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CounterDown) ProtoMessage() {} + +func (x *CounterDown) ProtoReflect() protoreflect.Message { + mi := &file_component_common_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 CounterDown.ProtoReflect.Descriptor instead. +func (*CounterDown) Descriptor() ([]byte, []int) { + return file_component_common_proto_rawDescGZIP(), []int{4} +} + +func (x *CounterDown) GetVal() int32 { + if x != nil { + return x.Val + } + return 0 +} + +func (x *CounterDown) GetStep() int32 { + if x != nil { + return x.Step + } + return 0 +} + +var File_component_common_proto protoreflect.FileDescriptor + +var file_component_common_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x05, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x22, 0x40, 0x0a, 0x16, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x22, 0x1c, 0x0a, 0x08, 0x42, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x61, 0x6c, + 0x22, 0x2f, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x76, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x22, 0x33, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x76, + 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_component_common_proto_rawDescOnce sync.Once + file_component_common_proto_rawDescData = file_component_common_proto_rawDesc +) + +func file_component_common_proto_rawDescGZIP() []byte { + file_component_common_proto_rawDescOnce.Do(func() { + file_component_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_component_common_proto_rawDescData) + }) + return file_component_common_proto_rawDescData +} + +var file_component_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_component_common_proto_goTypes = []interface{}{ + (*Motor)(nil), // 0: component.Motor + (*FixedPositionTransform)(nil), // 1: component.FixedPositionTransform + (*BitState)(nil), // 2: component.BitState + (*Counter)(nil), // 3: component.Counter + (*CounterDown)(nil), // 4: component.CounterDown +} +var file_component_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_component_common_proto_init() } +func file_component_common_proto_init() { + if File_component_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_component_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Motor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FixedPositionTransform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BitState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Counter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CounterDown); 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_component_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_component_common_proto_goTypes, + DependencyIndexes: file_component_common_proto_depIdxs, + MessageInfos: file_component_common_proto_msgTypes, + }.Build() + File_component_common_proto = out.File + file_component_common_proto_rawDesc = nil + file_component_common_proto_goTypes = nil + file_component_common_proto_depIdxs = nil +} diff --git a/component/component_data/points.pb.go b/component/component_data/points.pb.go new file mode 100644 index 0000000..d431254 --- /dev/null +++ b/component/component_data/points.pb.go @@ -0,0 +1,639 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: component/points.proto + +package component_data + +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 Points_Fault int32 + +const ( + // 失表 + Points_SB Points_Fault = 0 + // 定位失表 + Points_DWSB Points_Fault = 1 + // 反位失表 + Points_FWSB Points_Fault = 2 + // 挤岔 + Points_JC Points_Fault = 3 + // 联锁无法驱动故障 + Points_CIQD Points_Fault = 4 +) + +// Enum value maps for Points_Fault. +var ( + Points_Fault_name = map[int32]string{ + 0: "SB", + 1: "DWSB", + 2: "FWSB", + 3: "JC", + 4: "CIQD", + } + Points_Fault_value = map[string]int32{ + "SB": 0, + "DWSB": 1, + "FWSB": 2, + "JC": 3, + "CIQD": 4, + } +) + +func (x Points_Fault) Enum() *Points_Fault { + p := new(Points_Fault) + *p = x + return p +} + +func (x Points_Fault) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Points_Fault) Descriptor() protoreflect.EnumDescriptor { + return file_component_points_proto_enumTypes[0].Descriptor() +} + +func (Points_Fault) Type() protoreflect.EnumType { + return &file_component_points_proto_enumTypes[0] +} + +func (x Points_Fault) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Points_Fault.Descriptor instead. +func (Points_Fault) EnumDescriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{2, 0} +} + +// 道岔转辙机自动开闭器状态 +// 自动开闭器接点位置,默认定位接通1/3排,反位接通2/4排 +// 由定位转反位(1DQJ和1DQJF励磁吸起,2DQJ在反位——即落下),三相电路导通,电机开始反转,转辙机将第3排接点接通第4排,到位锁闭后,转辙机的自动开闭器拉簧将第1排接点拉到第2排,接点到2排后,三相电路断路 +// 由反位转定位(1DQJ和1DQJF励磁吸起,2DQJ在定位——即吸起),三相电路导通,电机开始正转,转辙机将第2排接点接通第1排,到位锁闭后,转辙机的自动开闭器拉簧将第4排接点拉到第3排,接点到3排后,三相电路断路 +type PointsZzjKbqState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 接点在1/2排的位置,false-接点在1排,true-接点在2排 + Jd13 bool `protobuf:"varint,1,opt,name=jd13,proto3" json:"jd13,omitempty"` + // 接点在3/4排的位置,false-接点在3排,true-接点在4排 + Jd24 bool `protobuf:"varint,2,opt,name=jd24,proto3" json:"jd24,omitempty"` +} + +func (x *PointsZzjKbqState) Reset() { + *x = PointsZzjKbqState{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsZzjKbqState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsZzjKbqState) ProtoMessage() {} + +func (x *PointsZzjKbqState) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsZzjKbqState.ProtoReflect.Descriptor instead. +func (*PointsZzjKbqState) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{0} +} + +func (x *PointsZzjKbqState) GetJd13() bool { + if x != nil { + return x.Jd13 + } + return false +} + +func (x *PointsZzjKbqState) GetJd24() bool { + if x != nil { + return x.Jd24 + } + return false +} + +// 道岔位置状态表示组件 +type PointsPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 是否定位(实际位置) + Dw bool `protobuf:"varint,1,opt,name=dw,proto3" json:"dw,omitempty"` + // 是否反位(实际位置) + Fw bool `protobuf:"varint,2,opt,name=fw,proto3" json:"fw,omitempty"` + // 定表 + Db bool `protobuf:"varint,3,opt,name=db,proto3" json:"db,omitempty"` + // 反表 + Fb bool `protobuf:"varint,4,opt,name=fb,proto3" json:"fb,omitempty"` +} + +func (x *PointsPosition) Reset() { + *x = PointsPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsPosition) ProtoMessage() {} + +func (x *PointsPosition) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsPosition.ProtoReflect.Descriptor instead. +func (*PointsPosition) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{1} +} + +func (x *PointsPosition) GetDw() bool { + if x != nil { + return x.Dw + } + return false +} + +func (x *PointsPosition) GetFw() bool { + if x != nil { + return x.Fw + } + return false +} + +func (x *PointsPosition) GetDb() bool { + if x != nil { + return x.Db + } + return false +} + +func (x *PointsPosition) GetFb() bool { + if x != nil { + return x.Fb + } + return false +} + +// 道岔 +type Points struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Points) Reset() { + *x = Points{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Points) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Points) ProtoMessage() {} + +func (x *Points) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 Points.ProtoReflect.Descriptor instead. +func (*Points) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{2} +} + +// 道岔失表故障 +type PointsFaultSB struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PointsFaultSB) Reset() { + *x = PointsFaultSB{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsFaultSB) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsFaultSB) ProtoMessage() {} + +func (x *PointsFaultSB) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsFaultSB.ProtoReflect.Descriptor instead. +func (*PointsFaultSB) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{3} +} + +// 道岔定位失表故障 +type PointsFaultDwsb struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PointsFaultDwsb) Reset() { + *x = PointsFaultDwsb{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsFaultDwsb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsFaultDwsb) ProtoMessage() {} + +func (x *PointsFaultDwsb) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsFaultDwsb.ProtoReflect.Descriptor instead. +func (*PointsFaultDwsb) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{4} +} + +// 道岔反位失表故障 +type PointsFaultFwsb struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PointsFaultFwsb) Reset() { + *x = PointsFaultFwsb{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsFaultFwsb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsFaultFwsb) ProtoMessage() {} + +func (x *PointsFaultFwsb) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsFaultFwsb.ProtoReflect.Descriptor instead. +func (*PointsFaultFwsb) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{5} +} + +// 道岔挤岔故障 +type PointsFaultJc struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PointsFaultJc) Reset() { + *x = PointsFaultJc{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsFaultJc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsFaultJc) ProtoMessage() {} + +func (x *PointsFaultJc) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsFaultJc.ProtoReflect.Descriptor instead. +func (*PointsFaultJc) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{6} +} + +// 道岔联锁无法驱动故障 +type PointsFaultCiqd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PointsFaultCiqd) Reset() { + *x = PointsFaultCiqd{} + if protoimpl.UnsafeEnabled { + mi := &file_component_points_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsFaultCiqd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsFaultCiqd) ProtoMessage() {} + +func (x *PointsFaultCiqd) ProtoReflect() protoreflect.Message { + mi := &file_component_points_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 PointsFaultCiqd.ProtoReflect.Descriptor instead. +func (*PointsFaultCiqd) Descriptor() ([]byte, []int) { + return file_component_points_proto_rawDescGZIP(), []int{7} +} + +var File_component_points_proto protoreflect.FileDescriptor + +var file_component_points_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x11, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5a, 0x7a, 0x6a, + 0x4b, 0x62, 0x71, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x64, 0x31, 0x33, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6a, 0x64, 0x31, 0x33, 0x12, 0x12, 0x0a, 0x04, + 0x6a, 0x64, 0x32, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6a, 0x64, 0x32, 0x34, + 0x22, 0x50, 0x0a, 0x0e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, + 0x64, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, + 0x66, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, + 0x64, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, + 0x66, 0x62, 0x22, 0x3f, 0x0a, 0x06, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x05, + 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x42, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x57, 0x53, 0x42, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x57, 0x53, 0x42, 0x10, + 0x02, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x43, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x49, 0x51, + 0x44, 0x10, 0x04, 0x22, 0x0f, 0x0a, 0x0d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x46, 0x61, 0x75, + 0x6c, 0x74, 0x53, 0x42, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x46, 0x61, + 0x75, 0x6c, 0x74, 0x44, 0x77, 0x73, 0x62, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x77, 0x73, 0x62, 0x22, 0x0f, 0x0a, 0x0d, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x4a, 0x63, 0x22, 0x11, 0x0a, 0x0f, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x69, 0x71, 0x64, 0x42, 0x1c, + 0x5a, 0x1a, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_component_points_proto_rawDescOnce sync.Once + file_component_points_proto_rawDescData = file_component_points_proto_rawDesc +) + +func file_component_points_proto_rawDescGZIP() []byte { + file_component_points_proto_rawDescOnce.Do(func() { + file_component_points_proto_rawDescData = protoimpl.X.CompressGZIP(file_component_points_proto_rawDescData) + }) + return file_component_points_proto_rawDescData +} + +var file_component_points_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_component_points_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_component_points_proto_goTypes = []interface{}{ + (Points_Fault)(0), // 0: component.Points.Fault + (*PointsZzjKbqState)(nil), // 1: component.PointsZzjKbqState + (*PointsPosition)(nil), // 2: component.PointsPosition + (*Points)(nil), // 3: component.Points + (*PointsFaultSB)(nil), // 4: component.PointsFaultSB + (*PointsFaultDwsb)(nil), // 5: component.PointsFaultDwsb + (*PointsFaultFwsb)(nil), // 6: component.PointsFaultFwsb + (*PointsFaultJc)(nil), // 7: component.PointsFaultJc + (*PointsFaultCiqd)(nil), // 8: component.PointsFaultCiqd +} +var file_component_points_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_component_points_proto_init() } +func file_component_points_proto_init() { + if File_component_points_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_component_points_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsZzjKbqState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Points); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsFaultSB); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsFaultDwsb); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsFaultFwsb); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsFaultJc); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_component_points_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsFaultCiqd); 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_component_points_proto_rawDesc, + NumEnums: 1, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_component_points_proto_goTypes, + DependencyIndexes: file_component_points_proto_depIdxs, + EnumInfos: file_component_points_proto_enumTypes, + MessageInfos: file_component_points_proto_msgTypes, + }.Build() + File_component_points_proto = out.File + file_component_points_proto_rawDesc = nil + file_component_points_proto_goTypes = nil + file_component_points_proto_depIdxs = nil +} diff --git a/component/relation/points.go b/component/relation/points.go new file mode 100644 index 0000000..6b17f8d --- /dev/null +++ b/component/relation/points.go @@ -0,0 +1,166 @@ +package relation + +import ( + "joylink.club/ecs" + "joylink.club/rtsssimulation/modelrepo/model" +) + +var ( + // 道岔模型数据引用组件类型 + PointsModelRelaType = ecs.NewComponentType[PointsModelRela]() + // 道岔转辙机关系组件类型 + PointsZzjRelaType = ecs.NewComponentType[PointsZzjRela]() + // ZDJ9双机电路元器件组件类型 + Zdj9TwoElectronicType = ecs.NewComponentType[Zdj9TwoElectronic]() +) + +// 道岔模型数据引用 +type PointsModelRela struct { + M model.Turnout +} + +func NewPointsModelRela(m model.Turnout) *PointsModelRela { + return &PointsModelRela{ + M: m, + } +} + +// 道岔转辙机关系组件 +type PointsZzjRela struct { + Turnout *ecs.Entry + Zzjs []*ecs.Entry +} + +func NewPointsZzjRela(t *ecs.Entry, zzjs ...*ecs.Entry) *PointsZzjRela { + return &PointsZzjRela{ + Turnout: t, + Zzjs: zzjs, + } +} + +// 获取转辙机一,若没有则panic +func (tz *PointsZzjRela) GetZzj1() *ecs.Entry { + len := len(tz.Zzjs) + if len > 0 { + return tz.Zzjs[0] + } + panic("道岔没有转辙机一") +} + +// 获取转辙机二,若没有则panic +func (tz *PointsZzjRela) GetZzj2() *ecs.Entry { + len := len(tz.Zzjs) + if len > 1 { + return tz.Zzjs[1] + } + panic("道岔没有转辙机二") +} + +// ZDJ9双机电路元器件 +type Zdj9TwoElectronic struct { + TDC_DCJ *ecs.Entry // 定操继电器 + TDC_FCJ *ecs.Entry // 反操继电器 + TDC_YCJ *ecs.Entry // 允许操作继电器 + TDC_ZDBJ *ecs.Entry // 总定表继电器 + TDC_ZFBJ *ecs.Entry // 总反表继电器 + + // 一机 + TDFJ1_1DQJ *ecs.Entry // 一启动继电器 + TDFJ1_BHJ *ecs.Entry // 保护继电器 + TDFJ1_2DQJ *ecs.Entry // 二启动继电器 + TDFJ1_1DQJF *ecs.Entry // 一启动复示继电器 + TDFJ1_DBQ *ecs.Entry // 断相保护器 + TDFJ1_DBJ *ecs.Entry // 定位表示继电器 + TDFJ1_FBJ *ecs.Entry // 反位表示继电器 + TDFJ1_QDJ *ecs.Entry // 切断继电器 + TDFJ1_ZBHJ *ecs.Entry // 总保护继电器 + + TDFJ1_QDJ_Remain int // 切断继电器保持电路保持剩余时间 + + // 二机 + TDFJ2_1DQJ *ecs.Entry // 一启动继电器 + TDFJ2_BHJ *ecs.Entry // 保护继电器 + TDFJ2_2DQJ *ecs.Entry // 二启动继电器 + TDFJ2_1DQJF *ecs.Entry // 一启动复示继电器 + TDFJ2_DBQ *ecs.Entry // 断相保护器 + TDFJ2_DBJ *ecs.Entry // 定位表示继电器 + TDFJ2_FBJ *ecs.Entry // 反位表示继电器 +} + +// 检查空引用,返回空引用字段名称 +func (te *Zdj9TwoElectronic) CheckNilReference() []string { + var nils []string = make([]string, 0) + if te.TDC_DCJ == nil { + nils = append(nils, "TDC_DCJ") + } + if te.TDC_FCJ == nil { + nils = append(nils, "TDC_FCJ") + } + if te.TDC_YCJ == nil { + nils = append(nils, "TDC_YCJ") + } + if te.TDC_ZDBJ == nil { + nils = append(nils, "TDC_ZDBJ") + } + if te.TDC_ZFBJ == nil { + nils = append(nils, "TDC_ZFBJ") + } + // 一机 + if te.TDFJ1_1DQJ == nil { + nils = append(nils, "TDFJ1_1DQJ") + } + if te.TDFJ1_BHJ == nil { + nils = append(nils, "TDFJ1_BHJ") + } + if te.TDFJ1_2DQJ == nil { + nils = append(nils, "TDFJ1_2DQJ") + } + if te.TDFJ1_1DQJF == nil { + nils = append(nils, "TDFJ1_1DQJF") + } + if te.TDFJ1_DBQ == nil { + nils = append(nils, "TDFJ1_DBQ") + } + if te.TDFJ1_DBJ == nil { + nils = append(nils, "TDFJ1_DBJ") + } + if te.TDFJ1_FBJ == nil { + nils = append(nils, "TDFJ1_FBJ") + } + if te.TDFJ1_QDJ == nil { + nils = append(nils, "TDFJ1_QDJ") + } + if te.TDFJ1_ZBHJ == nil { + nils = append(nils, "TDFJ1_ZBHJ") + } + + // 二机 + if te.TDFJ2_1DQJ == nil { + nils = append(nils, "TDFJ2_1DQJ") + } + if te.TDFJ2_BHJ == nil { + nils = append(nils, "TDFJ2_BHJ") + } + if te.TDFJ2_2DQJ == nil { + nils = append(nils, "TDFJ2_2DQJ") + } + if te.TDFJ2_1DQJF == nil { + nils = append(nils, "TDFJ2_1DQJF") + } + if te.TDFJ2_DBQ == nil { + nils = append(nils, "TDFJ2_DBQ") + } + if te.TDFJ2_DBJ == nil { + nils = append(nils, "TDFJ2_DBJ") + } + if te.TDFJ2_FBJ == nil { + nils = append(nils, "TDFJ2_FBJ") + } + return nils +} + +// 是否有空引用 +func (te *Zdj9TwoElectronic) HasNilReference() bool { + nils := te.CheckNilReference() + return len(nils) > 0 +} diff --git a/component/singleton/uid_entity_index.go b/component/singleton/entity_uid_index.go similarity index 93% rename from component/singleton/uid_entity_index.go rename to component/singleton/entity_uid_index.go index 6f39534..913b596 100644 --- a/component/singleton/uid_entity_index.go +++ b/component/singleton/entity_uid_index.go @@ -9,6 +9,7 @@ import ( var EntityUidIndexType = ecs.NewComponentType[EntityUidIndex]() // 对象实体Uid索引 +// 只索引具有uid且不会销毁的实体 type EntityUidIndex struct { mu sync.RWMutex entityMap map[string]ecs.Entity diff --git a/component/singleton/load.go b/component/singleton/load.go index 4b8bf93..8f79bbe 100644 --- a/component/singleton/load.go +++ b/component/singleton/load.go @@ -13,6 +13,9 @@ func LoadSingletons(w ecs.World, r modelrepo.Repo) { loadUidEntityIndex(w) } +type Singleton struct { +} + var worldRepoQuery = ecs.NewQuery(filter.Contains(WorldRepoType)) var worldTimeQuery = ecs.NewQuery(filter.Contains(WorldTimeType)) var uidEntityIndexQuery = ecs.NewQuery(filter.Contains(EntityUidIndexType)) diff --git a/component/singleton/world_time.go b/component/singleton/world_time.go index 3c9ae95..b16f6ee 100644 --- a/component/singleton/world_time.go +++ b/component/singleton/world_time.go @@ -26,7 +26,7 @@ func (w *WorldTime) GetTime() time.Time { return time.UnixMilli(w.time) } -// 获取时间戳 +// 获取时间戳ms func (w *WorldTime) GetMilli() int64 { return w.time } diff --git a/entity/iscs_bas.go b/entity/iscs_bas.go index 41447c7..203248c 100644 --- a/entity/iscs_bas.go +++ b/entity/iscs_bas.go @@ -59,10 +59,10 @@ func NewValveEntity(w ecs.World, id string, valveType proto.Valve_Type) *ecs.Ent wd := GetWorldData(w) e, ok := wd.EntityMap[id] if !ok { - e = w.Entry(w.Create(component.UidType, component.ValveType, component.ValveControllerType, component.TwoPositionTransformType, component.DeviceExceptionType)) + e = w.Entry(w.Create(component.UidType, component.ValveType, component.ValveControllerType, component.FixedPositionTransformType, component.DeviceExceptionType)) component.UidType.SetValue(e, component.Uid{Id: id}) //默认全关位置 - component.TwoPositionTransformType.Set(e, &component.TwoPositionTransform{TwoPositionTransform: component_proto.TwoPositionTransform{Pos: consts.TwoPosMin}}) + component.FixedPositionTransformType.Set(e, &component.FixedPositionTransform{TwoPositionTransform: component_proto.TwoPositionTransform{Pos: consts.TwoPosMin}}) component.ValveControllerType.Set(e, &component.ValveController{TargetOpenRate: 0}) // switch valveType { diff --git a/entity/cg_load.go b/entity/loader.go similarity index 89% rename from entity/cg_load.go rename to entity/loader.go index 0178326..879c14c 100644 --- a/entity/cg_load.go +++ b/entity/loader.go @@ -8,7 +8,7 @@ import ( ) // 加载城轨仿真实体 -func LoadCg(w ecs.World, repo modelrepo.Repo) error { +func Loading(w ecs.World, repo modelrepo.Repo) error { singleton.LoadSingletons(w, repo) for _, s := range repo.GetEcses() { // 加载道岔实体 diff --git a/entity/psd.go b/entity/psd.go index 09c776c..aa1a485 100644 --- a/entity/psd.go +++ b/entity/psd.go @@ -1,16 +1,17 @@ package entity import ( + "strconv" + "joylink.club/ecs" "joylink.club/rtsssimulation/component" "joylink.club/rtsssimulation/repository" - "strconv" ) var PsdBaseComponentTypeArr = []ecs.IComponentType{component.PsdTag, component.UidType, component.PsdStateType, component.AsdListType, component.PscType} var AsdBaseComponentTypeArr = []ecs.IComponentType{component.AsdTag, component.UidType, - component.AsdMotorStateType, component.TwoPositionTransformType, component.AsdStateType} + component.AsdMotorStateType, component.FixedPositionTransformType, component.AsdStateType} func LoadPsd(w ecs.World) error { data := GetWorldData(w) diff --git a/entity/turnout.go b/entity/turnout.go index 86635b4..a2446ab 100644 --- a/entity/turnout.go +++ b/entity/turnout.go @@ -52,7 +52,7 @@ func LoadTurnoutZdj9One(w ecs.World, turnout *repository.Turnout, entry *ecs.Ent // 加载道岔ZDJ9双机转辙机 func LoadTurnoutZdj9Two(w ecs.World, turnout *repository.Turnout, entry *ecs.Entry, entityMap map[string]*ecs.Entry) error { // 加载转辙机 - entrys := ecs.Entries(w, w.CreateMany(2, component.ZzjStateType, component.TwoPositionTransformType)) + entrys := ecs.Entries(w, w.CreateMany(2, component.ZzjStateType, component.FixedPositionTransformType)) // 给道岔添加转辙机引用组件 entry.AddComponent(component.TurnoutZzjType, unsafe.Pointer(&component.TurnoutZzj{ ZzjList: entrys, diff --git a/fi/iscs_bas.go b/fi/iscs_bas.go index 453e745..0dedb62 100644 --- a/fi/iscs_bas.go +++ b/fi/iscs_bas.go @@ -2,6 +2,7 @@ package fi import ( "fmt" + "joylink.club/ecs" "joylink.club/rtsssimulation/component" "joylink.club/rtsssimulation/consts" @@ -23,7 +24,7 @@ func ValveOperate(w ecs.World, deviceId string, openRate uint8) error { return ecs.NewErrResult(fmt.Errorf("设备[%s]实体不存在", deviceId)) } // - if !(deviceEntry.HasComponent(component.ValveType) && deviceEntry.HasComponent(component.ValveControllerType) && deviceEntry.HasComponent(component.TwoPositionTransformType)) { + if !(deviceEntry.HasComponent(component.ValveType) && deviceEntry.HasComponent(component.ValveControllerType) && deviceEntry.HasComponent(component.FixedPositionTransformType)) { return ecs.NewErrResult(fmt.Errorf("设备[%s]不是阀门", deviceId)) } component.ValveControllerType.Get(deviceEntry).TargetOpenRate = openRate diff --git a/init.go b/init.go index a0207a0..bd96eb8 100644 --- a/init.go +++ b/init.go @@ -25,7 +25,7 @@ func NewSimulation(repo *repository.Repository) (ecs.World, error) { func LoadCgSimulation(repo modelrepo.Repo) (ecs.World, error) { w := ecs.NewWorld(RtssSimulationTick) // 加载组件实体 - err := entity.LoadCg(w, repo) + err := entity.Loading(w, repo) if err != nil { return nil, err } diff --git a/jl-ecs-go b/jl-ecs-go index e83feb8..2757e2c 160000 --- a/jl-ecs-go +++ b/jl-ecs-go @@ -1 +1 @@ -Subproject commit e83feb89dd84e3456aafebb7d6dbe179675344e8 +Subproject commit 2757e2c4e06b03afab94727cee9d948dae6d1754 diff --git a/proto/src/component/ci.proto b/proto/src/component/ci.proto index d2251b9..414bb42 100644 --- a/proto/src/component/ci.proto +++ b/proto/src/component/ci.proto @@ -2,12 +2,149 @@ syntax = "proto3"; package component; -option go_package = "./component/component_proto"; +option go_package = "./component/component_data"; + +// 联锁系统内存数据状态 +message CiSysRAM { + map qcStates = 2; + map sectionStates = 3; + map turnoutStates = 4; + map signalStates = 5; + map platformStates = 6; + map routeStates = 7; + map overlapStates = 8; +} // 联锁驱动、采集状态表 message CiQcState { // 驱动bit表 - bytes qbs = 1; + bytes qbs = 2; // 采集bit表 - bytes cbs = 2; + bytes cbs = 3; +} + +// 联锁区段状态 +message CiSectionState { + // 是否物理检测占用 + bool ciOccupied = 2; + // 是否cbtc逻辑占用 + bool cbtcOccupied = 3; + // 是否进路锁闭 + bool routeLock = 4; + // 是否延续保护锁闭 + bool overlapLock = 5; + // 是否封锁 + bool block = 6; + // 是否故障锁闭 + bool failLock = 7; +} + +// 联锁道岔状态 +message CiPointsState { + // 是否物理检测占用 + bool ciOccupied = 1; + // 是否cbtc逻辑占用 + bool cbtcOccupied = 2; + // 是否进路锁闭 + bool routeLock = 3; + // 是否延续保护锁闭 + bool overlapLock = 4; + // 是否封锁 + bool block = 5; + // 是否故障锁闭 + bool failLock = 6; + // 是否定位 + bool normal = 7; + // 是否反位 + bool reverse = 8; + // 是否挤岔 + bool jammed = 9; + // 是否单锁 + bool singleLock = 10; +} + +message Signal { + // 信号显示 + enum Aspect { + // 红灯亮 + H = 0; + // 绿灯亮 + L = 1; + // 黄灯亮 + U = 2; + // 黄红灯亮(引导信号) + UH = 3; + // 白灯亮 + B = 4; + // 蓝灯亮 + A = 5; + } +} + +// 联锁信号机状态 +message CiSignalState { + // 信号显示 + Signal.Aspect aspect = 1; + // 是否逻辑点灯(即室外灭灯) + bool logic = 2; + // 是否封锁 + bool block = 3; + // 是否灯丝断丝 + bool lampFault = 4; +} + +// 联锁站台状态 +message CiPlatformState { + // 车站上行扣车 + bool upwardHold = 1; + // 车站下行扣车 + bool downwardHold = 2; + // 中心上行扣车 + bool occUpwardHold = 3; + // 中心下行扣车 + bool occDownwardHold = 4; + // 屏蔽门开 + bool psdOpen = 5; + // 紧急关闭/停车 + bool emergStop = 6; + // 停站时间 + int32 stopTime = 7; +} + +message RouteSignal { + // 进路信号控制级别 + enum ControlLevel { + // 关闭 + Close = 0; + // 引导信号控制级别 + CallOn = 1; + // 移动闭塞信号控制级别 + CTC = 2; + // 主信号控制级别 + Main = 3; + } +} + +// 联锁进路状态 +message CiRouteState { + // 是否进路锁闭 + bool lock = 1; + // 是否接近锁闭 + bool approachLock = 2; + // 是否车队模式 + bool fleetMode = 3; + // 是否联锁自动触发 + bool ciAutoMode = 4; + // 是否ats自动控 + bool atsAutoMode = 5; + // 是否办理中 + bool setting = 6; + // 进路信号控制级别 + RouteSignal.ControlLevel controlLevel = 7; +} + +// 联锁延续保护进路状态 +message CiOverlapState { + // 是否延续保护锁闭 + bool lock = 1; } diff --git a/proto/src/component/common.proto b/proto/src/component/common.proto index 67d2277..1fa3c00 100644 --- a/proto/src/component/common.proto +++ b/proto/src/component/common.proto @@ -2,15 +2,23 @@ syntax = "proto3"; package component; -option go_package = "./component/component_proto"; +option go_package = "./component/component_data"; -// 两个稳态位置转换组件 -message TwoPositionTransform { +// 电机 +message Motor { + // 是否通电 + bool powerUp = 1; + // 是否正转 + bool forward = 2; +} + +// 固定位置转换组件 +message FixedPositionTransform { int32 pos = 1; // 当前位置百分比,[0, 10000],两位小数 int32 speed = 2; } -// 仅有两状态的组件 +// 开关状态组件 message BitState { bool val = 1; } diff --git a/proto/src/component/points.proto b/proto/src/component/points.proto new file mode 100644 index 0000000..bf2493f --- /dev/null +++ b/proto/src/component/points.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + +package component; + +option go_package = "./component/component_data"; + +// 道岔转辙机自动开闭器状态 +// 自动开闭器接点位置,默认定位接通1/3排,反位接通2/4排 +// 由定位转反位(1DQJ和1DQJF励磁吸起,2DQJ在反位——即落下),三相电路导通,电机开始反转,转辙机将第3排接点接通第4排,到位锁闭后,转辙机的自动开闭器拉簧将第1排接点拉到第2排,接点到2排后,三相电路断路 +// 由反位转定位(1DQJ和1DQJF励磁吸起,2DQJ在定位——即吸起),三相电路导通,电机开始正转,转辙机将第2排接点接通第1排,到位锁闭后,转辙机的自动开闭器拉簧将第4排接点拉到第3排,接点到3排后,三相电路断路 +message PointsZzjKbqState { + // 接点在1/2排的位置,false-接点在1排,true-接点在2排 + bool jd13 = 1; + // 接点在3/4排的位置,false-接点在3排,true-接点在4排 + bool jd24 = 2; +} + +// 道岔位置状态表示组件 +message PointsPosition { + // 是否定位(实际位置) + bool dw = 1; + // 是否反位(实际位置) + bool fw = 2; + // 定表 + bool db = 3; + // 反表 + bool fb = 4; +} + +// 道岔 +message Points { + // 道岔故障 + enum Fault { + // 失表 + SB = 0; + // 定位失表 + DWSB = 1; + // 反位失表 + FWSB = 2; + // 挤岔 + JC = 3; + // 联锁无法驱动故障 + CIQD = 4; + } +} +// 道岔失表故障 +message PointsFaultSB { + +} +// 道岔定位失表故障 +message PointsFaultDwsb { + +} +// 道岔反位失表故障 +message PointsFaultFwsb { + +} +// 道岔挤岔故障 +message PointsFaultJc { + +} +// 道岔联锁无法驱动故障 +message PointsFaultCiqd { + +} diff --git a/proto/src/component/turnout.proto b/proto/src/component/turnout.proto deleted file mode 100644 index 9118822..0000000 --- a/proto/src/component/turnout.proto +++ /dev/null @@ -1,54 +0,0 @@ -syntax = "proto3"; - -package component; - -option go_package = "./component/component_proto"; - -// 道岔位置状态表示组件 -message TurnoutPosition { - // 是否在定位(实际位置) - bool dw = 1; - // 是否在反位(实际位置) - bool fw = 2; - - // 定表 - bool db = 3; - // 反表 - bool fb = 4; -} - -// 道岔故障 -message Turnout { - enum Fault { - // 失表 - SB = 0; - // 定位失表 - DWSB = 1; - // 反位失表 - FWSB = 2; - // 挤岔 - JC = 3; - // 联锁无法驱动故障 - CIQD = 4; - } -} -// 道岔失表故障 -message TurnoutFaultSB { - -} -// 道岔定位失表故障 -message TurnoutFaultDwsb { - -} -// 道岔反位失表故障 -message TurnoutFaultFwsb { - -} -// 道岔挤岔故障 -message TurnoutFaultJc { - -} -// 道岔联锁无法驱动故障 -message TurnoutFaultCiqd { - -} diff --git a/repo/dto/cg_repo.pb.go b/repo/dto/cg_repo.pb.go new file mode 100644 index 0000000..dfbdee3 --- /dev/null +++ b/repo/dto/cg_repo.pb.go @@ -0,0 +1,4061 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.1 +// source: cg_repo.proto + +package dto + +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) +) + +// 列车运行方向(Train Running Direction) +type TRD int32 + +const ( + // 上行 + TRD_Upward TRD = 0 + // 下行 + TRD_Downward TRD = 1 +) + +// Enum value maps for TRD. +var ( + TRD_name = map[int32]string{ + 0: "Upward", + 1: "Downward", + } + TRD_value = map[string]int32{ + "Upward": 0, + "Downward": 1, + } +) + +func (x TRD) Enum() *TRD { + p := new(TRD) + *p = x + return p +} + +func (x TRD) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TRD) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[0].Descriptor() +} + +func (TRD) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[0] +} + +func (x TRD) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TRD.Descriptor instead. +func (TRD) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{0} +} + +// 应答器类型 +type Balise_Type int32 + +const ( + // 无源应答器 + Balise_FB Balise_Type = 0 + // 有源应答器 + Balise_TB Balise_Type = 1 +) + +// Enum value maps for Balise_Type. +var ( + Balise_Type_name = map[int32]string{ + 0: "FB", + 1: "TB", + } + Balise_Type_value = map[string]int32{ + "FB": 0, + "TB": 1, + } +) + +func (x Balise_Type) Enum() *Balise_Type { + p := new(Balise_Type) + *p = x + return p +} + +func (x Balise_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Balise_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[1].Descriptor() +} + +func (Balise_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[1] +} + +func (x Balise_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Balise_Type.Descriptor instead. +func (Balise_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{11, 0} +} + +// 区段分界点类型 +type DevidingPoint_Type int32 + +const ( + // 区段边界 + DevidingPoint_Boundary DevidingPoint_Type = 0 + // 计轴器 + DevidingPoint_JZ DevidingPoint_Type = 1 + // 绝缘节 + DevidingPoint_JYJ DevidingPoint_Type = 2 +) + +// Enum value maps for DevidingPoint_Type. +var ( + DevidingPoint_Type_name = map[int32]string{ + 0: "Boundary", + 1: "JZ", + 2: "JYJ", + } + DevidingPoint_Type_value = map[string]int32{ + "Boundary": 0, + "JZ": 1, + "JYJ": 2, + } +) + +func (x DevidingPoint_Type) Enum() *DevidingPoint_Type { + p := new(DevidingPoint_Type) + *p = x + return p +} + +func (x DevidingPoint_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DevidingPoint_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[2].Descriptor() +} + +func (DevidingPoint_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[2] +} + +func (x DevidingPoint_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DevidingPoint_Type.Descriptor instead. +func (DevidingPoint_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{12, 0} +} + +// 模型类型 +type Model_Type int32 + +const ( + // 未知无效 + Model_Unknown Model_Type = 0 + // 区段 + Model_Section Model_Type = 1 + // 道岔 + Model_Turnout Model_Type = 2 + // 信号机 + Model_Signal Model_Type = 3 +) + +// Enum value maps for Model_Type. +var ( + Model_Type_name = map[int32]string{ + 0: "Unknown", + 1: "Section", + 2: "Turnout", + 3: "Signal", + } + Model_Type_value = map[string]int32{ + "Unknown": 0, + "Section": 1, + "Turnout": 2, + "Signal": 3, + } +) + +func (x Model_Type) Enum() *Model_Type { + p := new(Model_Type) + *p = x + return p +} + +func (x Model_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Model_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[3].Descriptor() +} + +func (Model_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[3] +} + +func (x Model_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Model_Type.Descriptor instead. +func (Model_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{13, 0} +} + +type SectionPort_Type int32 + +const ( + SectionPort_A SectionPort_Type = 0 + SectionPort_B SectionPort_Type = 1 + SectionPort_C SectionPort_Type = 2 +) + +// Enum value maps for SectionPort_Type. +var ( + SectionPort_Type_name = map[int32]string{ + 0: "A", + 1: "B", + 2: "C", + } + SectionPort_Type_value = map[string]int32{ + "A": 0, + "B": 1, + "C": 2, + } +) + +func (x SectionPort_Type) Enum() *SectionPort_Type { + p := new(SectionPort_Type) + *p = x + return p +} + +func (x SectionPort_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SectionPort_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[4].Descriptor() +} + +func (SectionPort_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[4] +} + +func (x SectionPort_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SectionPort_Type.Descriptor instead. +func (SectionPort_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{14, 0} +} + +// 信号机模型型号 +type Signal_Model int32 + +const ( + // 红绿黄三显示信号机 + // 红绿黄三显示引导为红黄 + // 红绿黄三显示,不封,有单黄,有引导 + Signal_HLU_0_1_1 Signal_Model = 0 + // 红绿黄三显示,不封,无单黄,有引导 + Signal_HLU_0_0_1 Signal_Model = 1 + // 红绿黄三显示,不封,有单黄,无引导 + Signal_HLU_0_1_0 Signal_Model = 2 + // 红绿黄三显示,封黄,无单黄,有引导 + Signal_HLU_U_0_0 Signal_Model = 3 + // 红绿黄三显示,封绿,有单黄,有引导 + Signal_HLU_L_1_1 Signal_Model = 4 + // 红绿黄三显示,封绿,有单黄,无引导 + Signal_HLU_L_1_0 Signal_Model = 5 + // 红绿黄三显示,全封 + Signal_HLU_LU_0_0 Signal_Model = 6 + // 红绿二显示信号机 + // 红绿二显示,不封 + Signal_HL_0 Signal_Model = 7 + // 红绿二显示,封绿 + Signal_HL_L Signal_Model = 8 + // 红黄二显示,不封 + Signal_HU_0 Signal_Model = 9 + // 红黄二显示,封黄 + Signal_HU_U Signal_Model = 10 + // 单红显示信号机 + Signal_H Signal_Model = 11 + // 蓝白二显示信号机 + Signal_AB Signal_Model = 12 + // 红白黄三显示信号机 + // 红白黄三显示,不封,有单黄,无引导 + Signal_HBU_0_1_0 Signal_Model = 13 + // 红白黄三显示,封黄,无单黄,无引导 + Signal_HBU_U_0_0 Signal_Model = 14 +) + +// Enum value maps for Signal_Model. +var ( + Signal_Model_name = map[int32]string{ + 0: "HLU_0_1_1", + 1: "HLU_0_0_1", + 2: "HLU_0_1_0", + 3: "HLU_U_0_0", + 4: "HLU_L_1_1", + 5: "HLU_L_1_0", + 6: "HLU_LU_0_0", + 7: "HL_0", + 8: "HL_L", + 9: "HU_0", + 10: "HU_U", + 11: "H", + 12: "AB", + 13: "HBU_0_1_0", + 14: "HBU_U_0_0", + } + Signal_Model_value = map[string]int32{ + "HLU_0_1_1": 0, + "HLU_0_0_1": 1, + "HLU_0_1_0": 2, + "HLU_U_0_0": 3, + "HLU_L_1_1": 4, + "HLU_L_1_0": 5, + "HLU_LU_0_0": 6, + "HL_0": 7, + "HL_L": 8, + "HU_0": 9, + "HU_U": 10, + "H": 11, + "AB": 12, + "HBU_0_1_0": 13, + "HBU_U_0_0": 14, + } +) + +func (x Signal_Model) Enum() *Signal_Model { + p := new(Signal_Model) + *p = x + return p +} + +func (x Signal_Model) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Signal_Model) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[5].Descriptor() +} + +func (Signal_Model) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[5] +} + +func (x Signal_Model) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Signal_Model.Descriptor instead. +func (Signal_Model) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{15, 0} +} + +// 道岔模型型号 +type Turnout_Model int32 + +const ( + // ZDJ9单机牵引 + Turnout_ZDJ9_1 Turnout_Model = 0 + // ZDJ9双机牵引 + Turnout_ZDJ9_2 Turnout_Model = 1 +) + +// Enum value maps for Turnout_Model. +var ( + Turnout_Model_name = map[int32]string{ + 0: "ZDJ9_1", + 1: "ZDJ9_2", + } + Turnout_Model_value = map[string]int32{ + "ZDJ9_1": 0, + "ZDJ9_2": 1, + } +) + +func (x Turnout_Model) Enum() *Turnout_Model { + p := new(Turnout_Model) + *p = x + return p +} + +func (x Turnout_Model) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Turnout_Model) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[6].Descriptor() +} + +func (Turnout_Model) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[6] +} + +func (x Turnout_Model) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Turnout_Model.Descriptor instead. +func (Turnout_Model) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{16, 0} +} + +// 物理区段类型 +type Section_Type int32 + +const ( + // 一般物理区段 + Section_Physical Section_Type = 0 + // 道岔物理区段 + Section_TurnoutPhysical Section_Type = 1 + // 逻辑区段 + Section_Logical Section_Type = 2 +) + +// Enum value maps for Section_Type. +var ( + Section_Type_name = map[int32]string{ + 0: "Physical", + 1: "TurnoutPhysical", + 2: "Logical", + } + Section_Type_value = map[string]int32{ + "Physical": 0, + "TurnoutPhysical": 1, + "Logical": 2, + } +) + +func (x Section_Type) Enum() *Section_Type { + p := new(Section_Type) + *p = x + return p +} + +func (x Section_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Section_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[7].Descriptor() +} + +func (Section_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[7] +} + +func (x Section_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Section_Type.Descriptor instead. +func (Section_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{17, 0} +} + +// 继电器型号 +type Relay_Model int32 + +const ( + Relay_JPXC_1000 Relay_Model = 0 + Relay_JPXC_1700 Relay_Model = 1 + Relay_JWJXC_480 Relay_Model = 2 + Relay_JWJXC_H125_80 Relay_Model = 3 + Relay_JWXC_1700 Relay_Model = 4 + Relay_JWXC_H340 Relay_Model = 5 + Relay_JYJXC_160_260 Relay_Model = 6 + Relay_JZXC_H18 Relay_Model = 7 +) + +// Enum value maps for Relay_Model. +var ( + Relay_Model_name = map[int32]string{ + 0: "JPXC_1000", + 1: "JPXC_1700", + 2: "JWJXC_480", + 3: "JWJXC_H125_80", + 4: "JWXC_1700", + 5: "JWXC_H340", + 6: "JYJXC_160_260", + 7: "JZXC_H18", + } + Relay_Model_value = map[string]int32{ + "JPXC_1000": 0, + "JPXC_1700": 1, + "JWJXC_480": 2, + "JWJXC_H125_80": 3, + "JWXC_1700": 4, + "JWXC_H340": 5, + "JYJXC_160_260": 6, + "JZXC_H18": 7, + } +) + +func (x Relay_Model) Enum() *Relay_Model { + p := new(Relay_Model) + *p = x + return p +} + +func (x Relay_Model) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Relay_Model) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[8].Descriptor() +} + +func (Relay_Model) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[8] +} + +func (x Relay_Model) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Relay_Model.Descriptor instead. +func (Relay_Model) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{28, 0} +} + +// 监控盘类型 +type JKP_Type int32 + +const ( + // IBP盘(综合后备盘) + JKP_IBP JKP_Type = 0 + // 屏蔽门就地控制盘 + JKP_PSL JKP_Type = 1 + // 门控箱 + JKP_MKX JKP_Type = 2 +) + +// Enum value maps for JKP_Type. +var ( + JKP_Type_name = map[int32]string{ + 0: "IBP", + 1: "PSL", + 2: "MKX", + } + JKP_Type_value = map[string]int32{ + "IBP": 0, + "PSL": 1, + "MKX": 2, + } +) + +func (x JKP_Type) Enum() *JKP_Type { + p := new(JKP_Type) + *p = x + return p +} + +func (x JKP_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (JKP_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[9].Descriptor() +} + +func (JKP_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[9] +} + +func (x JKP_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use JKP_Type.Descriptor instead. +func (JKP_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{29, 0} +} + +// 城轨数据 +type Modelrepo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // 线路数据 + Lines []*Line `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"` + // 监控盘(IBP/PSL/MKX等)数据,线路相关数据会引用这里 + Jkps []*JKP `protobuf:"bytes,3,rep,name=jkps,proto3" json:"jkps,omitempty"` +} + +func (x *Modelrepo) Reset() { + *x = Modelrepo{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Modelrepo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Modelrepo) ProtoMessage() {} + +func (x *Modelrepo) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Modelrepo.ProtoReflect.Descriptor instead. +func (*Modelrepo) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{0} +} + +func (x *Modelrepo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Modelrepo) GetLines() []*Line { + if x != nil { + return x.Lines + } + return nil +} + +func (x *Modelrepo) GetJkps() []*JKP { + if x != nil { + return x.Jkps + } + return nil +} + +// 城轨线路数据 +type Line struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 所在城市 + City string `protobuf:"bytes,1,opt,name=city,proto3" json:"city,omitempty"` + // 线路编号 + LineId string `protobuf:"bytes,2,opt,name=lineId,proto3" json:"lineId,omitempty"` + // 信号布置 + Xhbz *XHBZ `protobuf:"bytes,3,opt,name=xhbz,proto3" json:"xhbz,omitempty"` + // 继电器柜布置 + Jdqbz []*CiJDQBZ `protobuf:"bytes,4,rep,name=jdqbz,proto3" json:"jdqbz,omitempty"` +} + +func (x *Line) Reset() { + *x = Line{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Line) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Line) ProtoMessage() {} + +func (x *Line) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Line.ProtoReflect.Descriptor instead. +func (*Line) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{1} +} + +func (x *Line) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *Line) GetLineId() string { + if x != nil { + return x.LineId + } + return "" +} + +func (x *Line) GetXhbz() *XHBZ { + if x != nil { + return x.Xhbz + } + return nil +} + +func (x *Line) GetJdqbz() []*CiJDQBZ { + if x != nil { + return x.Jdqbz + } + return nil +} + +// 信号布置数据 +type XHBZ struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 数据id + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // 车站 + Stations []*Station `protobuf:"bytes,2,rep,name=stations,proto3" json:"stations,omitempty"` + // 站台 + Platforms []*Platform `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms,omitempty"` + // 屏蔽门 + Psds []*Psd `protobuf:"bytes,4,rep,name=psds,proto3" json:"psds,omitempty"` + // 区段 + Sections []*Section `protobuf:"bytes,5,rep,name=sections,proto3" json:"sections,omitempty"` + // 道岔 + Turnouts []*Turnout `protobuf:"bytes,6,rep,name=turnouts,proto3" json:"turnouts,omitempty"` + // 检测点 + DevidingPoints []*DevidingPoint `protobuf:"bytes,7,rep,name=devidingPoints,proto3" json:"devidingPoints,omitempty"` + // 信号机 + Signals []*Signal `protobuf:"bytes,8,rep,name=signals,proto3" json:"signals,omitempty"` + // 应答器(欧标) + Balises []*Balise `protobuf:"bytes,9,rep,name=balises,proto3" json:"balises,omitempty"` + // 停车点 + ParkingSpots []*ParkingSpot `protobuf:"bytes,10,rep,name=parkingSpots,proto3" json:"parkingSpots,omitempty"` + // 坡度 + Pds []*Pd `protobuf:"bytes,11,rep,name=pds,proto3" json:"pds,omitempty"` + // 曲度 + Qds []*Qd `protobuf:"bytes,12,rep,name=qds,proto3" json:"qds,omitempty"` + // 紧急关闭(停车)按钮 + Emps []*EMP `protobuf:"bytes,13,rep,name=emps,proto3" json:"emps,omitempty"` + // 发车计时器(Train Depart Timer,TDT 或 Depart Time Indicator,DTI) + Tdts []*TDT `protobuf:"bytes,14,rep,name=tdts,proto3" json:"tdts,omitempty"` + // 门控箱 + Mkxs []*Mkx `protobuf:"bytes,15,rep,name=mkxs,proto3" json:"mkxs,omitempty"` + // 就地控制盘 + Psls []*PSL `protobuf:"bytes,16,rep,name=psls,proto3" json:"psls,omitempty"` + // 人员防护开关 + Spks []*SPKS `protobuf:"bytes,17,rep,name=spks,proto3" json:"spks,omitempty"` + // 设备电子元件组合 + DeviceEccs []*DeviceEcc `protobuf:"bytes,18,rep,name=deviceEccs,proto3" json:"deviceEccs,omitempty"` +} + +func (x *XHBZ) Reset() { + *x = XHBZ{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *XHBZ) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*XHBZ) ProtoMessage() {} + +func (x *XHBZ) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 XHBZ.ProtoReflect.Descriptor instead. +func (*XHBZ) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{2} +} + +func (x *XHBZ) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *XHBZ) GetStations() []*Station { + if x != nil { + return x.Stations + } + return nil +} + +func (x *XHBZ) GetPlatforms() []*Platform { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *XHBZ) GetPsds() []*Psd { + if x != nil { + return x.Psds + } + return nil +} + +func (x *XHBZ) GetSections() []*Section { + if x != nil { + return x.Sections + } + return nil +} + +func (x *XHBZ) GetTurnouts() []*Turnout { + if x != nil { + return x.Turnouts + } + return nil +} + +func (x *XHBZ) GetDevidingPoints() []*DevidingPoint { + if x != nil { + return x.DevidingPoints + } + return nil +} + +func (x *XHBZ) GetSignals() []*Signal { + if x != nil { + return x.Signals + } + return nil +} + +func (x *XHBZ) GetBalises() []*Balise { + if x != nil { + return x.Balises + } + return nil +} + +func (x *XHBZ) GetParkingSpots() []*ParkingSpot { + if x != nil { + return x.ParkingSpots + } + return nil +} + +func (x *XHBZ) GetPds() []*Pd { + if x != nil { + return x.Pds + } + return nil +} + +func (x *XHBZ) GetQds() []*Qd { + if x != nil { + return x.Qds + } + return nil +} + +func (x *XHBZ) GetEmps() []*EMP { + if x != nil { + return x.Emps + } + return nil +} + +func (x *XHBZ) GetTdts() []*TDT { + if x != nil { + return x.Tdts + } + return nil +} + +func (x *XHBZ) GetMkxs() []*Mkx { + if x != nil { + return x.Mkxs + } + return nil +} + +func (x *XHBZ) GetPsls() []*PSL { + if x != nil { + return x.Psls + } + return nil +} + +func (x *XHBZ) GetSpks() []*SPKS { + if x != nil { + return x.Spks + } + return nil +} + +func (x *XHBZ) GetDeviceEccs() []*DeviceEcc { + if x != nil { + return x.DeviceEccs + } + return nil +} + +// 人员防护开关 +type SPKS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联站台id + PlatformId uint32 `protobuf:"varint,3,opt,name=platformId,proto3" json:"platformId,omitempty"` +} + +func (x *SPKS) Reset() { + *x = SPKS{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SPKS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SPKS) ProtoMessage() {} + +func (x *SPKS) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 SPKS.ProtoReflect.Descriptor instead. +func (*SPKS) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{3} +} + +func (x *SPKS) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SPKS) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *SPKS) GetPlatformId() uint32 { + if x != nil { + return x.PlatformId + } + return 0 +} + +// 就地控制盘 +type PSL struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联屏蔽门id + PsdId uint32 `protobuf:"varint,3,opt,name=psdId,proto3" json:"psdId,omitempty"` +} + +func (x *PSL) Reset() { + *x = PSL{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PSL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PSL) ProtoMessage() {} + +func (x *PSL) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 PSL.ProtoReflect.Descriptor instead. +func (*PSL) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{4} +} + +func (x *PSL) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PSL) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *PSL) GetPsdId() uint32 { + if x != nil { + return x.PsdId + } + return 0 +} + +// 门控箱 +type Mkx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联屏蔽门id + PsdId uint32 `protobuf:"varint,3,opt,name=psdId,proto3" json:"psdId,omitempty"` +} + +func (x *Mkx) Reset() { + *x = Mkx{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Mkx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Mkx) ProtoMessage() {} + +func (x *Mkx) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Mkx.ProtoReflect.Descriptor instead. +func (*Mkx) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{5} +} + +func (x *Mkx) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Mkx) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Mkx) GetPsdId() uint32 { + if x != nil { + return x.PsdId + } + return 0 +} + +// 发车计时器 +type TDT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联站台id + PlatformId uint32 `protobuf:"varint,3,opt,name=platformId,proto3" json:"platformId,omitempty"` +} + +func (x *TDT) Reset() { + *x = TDT{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TDT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TDT) ProtoMessage() {} + +func (x *TDT) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 TDT.ProtoReflect.Descriptor instead. +func (*TDT) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{6} +} + +func (x *TDT) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *TDT) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *TDT) GetPlatformId() uint32 { + if x != nil { + return x.PlatformId + } + return 0 +} + +// 紧急关闭/停车按钮 +type EMP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联站台id + PlatformId uint32 `protobuf:"varint,3,opt,name=platformId,proto3" json:"platformId,omitempty"` +} + +func (x *EMP) Reset() { + *x = EMP{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EMP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EMP) ProtoMessage() {} + +func (x *EMP) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 EMP.ProtoReflect.Descriptor instead. +func (*EMP) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{7} +} + +func (x *EMP) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *EMP) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *EMP) GetPlatformId() uint32 { + if x != nil { + return x.PlatformId + } + return 0 +} + +// 曲度 +type Qd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *Qd) Reset() { + *x = Qd{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Qd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Qd) ProtoMessage() {} + +func (x *Qd) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Qd.ProtoReflect.Descriptor instead. +func (*Qd) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{8} +} + +func (x *Qd) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +// 坡度 +type Pd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *Pd) Reset() { + *x = Pd{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pd) ProtoMessage() {} + +func (x *Pd) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Pd.ProtoReflect.Descriptor instead. +func (*Pd) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{9} +} + +func (x *Pd) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +// 停车点 +type ParkingSpot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 列车编组数量 + Tgn uint32 `protobuf:"varint,2,opt,name=tgn,proto3" json:"tgn,omitempty"` + // 公里标 + Glb *GLB `protobuf:"bytes,3,opt,name=glb,proto3" json:"glb,omitempty"` +} + +func (x *ParkingSpot) Reset() { + *x = ParkingSpot{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkingSpot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkingSpot) ProtoMessage() {} + +func (x *ParkingSpot) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 ParkingSpot.ProtoReflect.Descriptor instead. +func (*ParkingSpot) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{10} +} + +func (x *ParkingSpot) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ParkingSpot) GetTgn() uint32 { + if x != nil { + return x.Tgn + } + return 0 +} + +func (x *ParkingSpot) GetGlb() *GLB { + if x != nil { + return x.Glb + } + return nil +} + +// 应答器 +type Balise struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 应答器类型 + Type Balise_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.Balise_Type" json:"type,omitempty"` + // 应答器编号 + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + // 所属设备集中站id + EcsId uint32 `protobuf:"varint,4,opt,name=ecsId,proto3" json:"ecsId,omitempty"` +} + +func (x *Balise) Reset() { + *x = Balise{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Balise) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Balise) ProtoMessage() {} + +func (x *Balise) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Balise.ProtoReflect.Descriptor instead. +func (*Balise) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{11} +} + +func (x *Balise) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Balise) GetType() Balise_Type { + if x != nil { + return x.Type + } + return Balise_FB +} + +func (x *Balise) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Balise) GetEcsId() uint32 { + if x != nil { + return x.EcsId + } + return 0 +} + +// 区段分界点 +type DevidingPoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 区段分界点类型 + Type DevidingPoint_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.DevidingPoint_Type" json:"type,omitempty"` + // 区段分界点编号 + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + // 公里标 + Glb *GLB `protobuf:"bytes,4,opt,name=glb,proto3" json:"glb,omitempty"` + // 关联的物理区段/道岔端点 + SectionPorts []*SectionPort `protobuf:"bytes,5,rep,name=sectionPorts,proto3" json:"sectionPorts,omitempty"` + // 所属设备集中站id + EcsIds []uint32 `protobuf:"varint,6,rep,packed,name=ecsIds,proto3" json:"ecsIds,omitempty"` +} + +func (x *DevidingPoint) Reset() { + *x = DevidingPoint{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DevidingPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DevidingPoint) ProtoMessage() {} + +func (x *DevidingPoint) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 DevidingPoint.ProtoReflect.Descriptor instead. +func (*DevidingPoint) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{12} +} + +func (x *DevidingPoint) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DevidingPoint) GetType() DevidingPoint_Type { + if x != nil { + return x.Type + } + return DevidingPoint_Boundary +} + +func (x *DevidingPoint) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *DevidingPoint) GetGlb() *GLB { + if x != nil { + return x.Glb + } + return nil +} + +func (x *DevidingPoint) GetSectionPorts() []*SectionPort { + if x != nil { + return x.SectionPorts + } + return nil +} + +func (x *DevidingPoint) GetEcsIds() []uint32 { + if x != nil { + return x.EcsIds + } + return nil +} + +// 模型 +type Model struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 模型id + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 模型类型 + Type Model_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.Model_Type" json:"type,omitempty"` +} + +func (x *Model) Reset() { + *x = Model{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Model) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Model) ProtoMessage() {} + +func (x *Model) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Model.ProtoReflect.Descriptor instead. +func (*Model) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{13} +} + +func (x *Model) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Model) GetType() Model_Type { + if x != nil { + return x.Type + } + return Model_Unknown +} + +// 区段端点 +type SectionPort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 元素类型 + // + // enum ElementType { + // // 区段 + // Section = 0; + // // 道岔 + // Turnout = 1; + // } + // + // 类型 + Type Model_Type `protobuf:"varint,1,opt,name=type,proto3,enum=message.Model_Type" json:"type,omitempty"` + // 区段/道岔 id + Id uint32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + // 端点 + Port SectionPort_Type `protobuf:"varint,3,opt,name=port,proto3,enum=message.SectionPort_Type" json:"port,omitempty"` +} + +func (x *SectionPort) Reset() { + *x = SectionPort{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SectionPort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SectionPort) ProtoMessage() {} + +func (x *SectionPort) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 SectionPort.ProtoReflect.Descriptor instead. +func (*SectionPort) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{14} +} + +func (x *SectionPort) GetType() Model_Type { + if x != nil { + return x.Type + } + return Model_Unknown +} + +func (x *SectionPort) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SectionPort) GetPort() SectionPort_Type { + if x != nil { + return x.Port + } + return SectionPort_A +} + +// 信号机 +type Signal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 信号机编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 信号机模型型号 + Model Signal_Model `protobuf:"varint,3,opt,name=model,proto3,enum=message.Signal_Model" json:"model,omitempty"` + // 所属设备集中站id + EcsId uint32 `protobuf:"varint,4,opt,name=ecsId,proto3" json:"ecsId,omitempty"` + // 列车运行方向(上下行) + Trd TRD `protobuf:"varint,5,opt,name=trd,proto3,enum=message.TRD" json:"trd,omitempty"` +} + +func (x *Signal) Reset() { + *x = Signal{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[15] + 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_cg_repo_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 Signal.ProtoReflect.Descriptor instead. +func (*Signal) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{15} +} + +func (x *Signal) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Signal) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Signal) GetModel() Signal_Model { + if x != nil { + return x.Model + } + return Signal_HLU_0_1_1 +} + +func (x *Signal) GetEcsId() uint32 { + if x != nil { + return x.EcsId + } + return 0 +} + +func (x *Signal) GetTrd() TRD { + if x != nil { + return x.Trd + } + return TRD_Upward +} + +// 道岔 +type Turnout struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 道岔编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 道岔模型型号 + Model Turnout_Model `protobuf:"varint,3,opt,name=model,proto3,enum=message.Turnout_Model" json:"model,omitempty"` + // 道岔A端关联的区段/道岔端点 + Asp *SectionPort `protobuf:"bytes,4,opt,name=asp,proto3" json:"asp,omitempty"` + // 道岔B端关联的区段/道岔端点 + Bsp *SectionPort `protobuf:"bytes,5,opt,name=bsp,proto3" json:"bsp,omitempty"` + // 道岔C端关联的区段/道岔端点 + Csp *SectionPort `protobuf:"bytes,6,opt,name=csp,proto3" json:"csp,omitempty"` + // 所属设备集中站id + EcsId uint32 `protobuf:"varint,7,opt,name=ecsId,proto3" json:"ecsId,omitempty"` +} + +func (x *Turnout) Reset() { + *x = Turnout{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[16] + 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_cg_repo_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 Turnout.ProtoReflect.Descriptor instead. +func (*Turnout) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{16} +} + +func (x *Turnout) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Turnout) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Turnout) GetModel() Turnout_Model { + if x != nil { + return x.Model + } + return Turnout_ZDJ9_1 +} + +func (x *Turnout) GetAsp() *SectionPort { + if x != nil { + return x.Asp + } + return nil +} + +func (x *Turnout) GetBsp() *SectionPort { + if x != nil { + return x.Bsp + } + return nil +} + +func (x *Turnout) GetCsp() *SectionPort { + if x != nil { + return x.Csp + } + return nil +} + +func (x *Turnout) GetEcsId() uint32 { + if x != nil { + return x.EcsId + } + return 0 +} + +// 物理区段 +type Section struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 物理区段类型 + Type Section_Type `protobuf:"varint,3,opt,name=type,proto3,enum=message.Section_Type" json:"type,omitempty"` + // 物理区段A端关联的区段/道岔端点 + Asp *SectionPort `protobuf:"bytes,4,opt,name=asp,proto3" json:"asp,omitempty"` + // 物理区段B端关联的区段/道岔端点 + Bsp *SectionPort `protobuf:"bytes,5,opt,name=bsp,proto3" json:"bsp,omitempty"` + // 所属设备集中站id + EcsId uint32 `protobuf:"varint,6,opt,name=ecsId,proto3" json:"ecsId,omitempty"` + // 列车运行方向(上下行) + Trd TRD `protobuf:"varint,7,opt,name=trd,proto3,enum=message.TRD" json:"trd,omitempty"` +} + +func (x *Section) Reset() { + *x = Section{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[17] + 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_cg_repo_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 Section.ProtoReflect.Descriptor instead. +func (*Section) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{17} +} + +func (x *Section) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Section) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Section) GetType() Section_Type { + if x != nil { + return x.Type + } + return Section_Physical +} + +func (x *Section) GetAsp() *SectionPort { + if x != nil { + return x.Asp + } + return nil +} + +func (x *Section) GetBsp() *SectionPort { + if x != nil { + return x.Bsp + } + return nil +} + +func (x *Section) GetEcsId() uint32 { + if x != nil { + return x.EcsId + } + return 0 +} + +func (x *Section) GetTrd() TRD { + if x != nil { + return x.Trd + } + return TRD_Upward +} + +// 屏蔽门 +type Psd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 关联的站台 + PlatformId uint32 `protobuf:"varint,3,opt,name=platformId,proto3" json:"platformId,omitempty"` +} + +func (x *Psd) Reset() { + *x = Psd{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Psd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Psd) ProtoMessage() {} + +func (x *Psd) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Psd.ProtoReflect.Descriptor instead. +func (*Psd) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{18} +} + +func (x *Psd) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Psd) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Psd) GetPlatformId() uint32 { + if x != nil { + return x.PlatformId + } + return 0 +} + +// 站台 +type Platform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 所属车站 + StationId uint32 `protobuf:"varint,3,opt,name=stationId,proto3" json:"stationId,omitempty"` + // 关联物理区段(站台轨) + PhysicalSectionId uint32 `protobuf:"varint,4,opt,name=physicalSectionId,proto3" json:"physicalSectionId,omitempty"` +} + +func (x *Platform) Reset() { + *x = Platform{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[19] + 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_cg_repo_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 Platform.ProtoReflect.Descriptor instead. +func (*Platform) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{19} +} + +func (x *Platform) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Platform) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Platform) GetStationId() uint32 { + if x != nil { + return x.StationId + } + return 0 +} + +func (x *Platform) GetPhysicalSectionId() uint32 { + if x != nil { + return x.PhysicalSectionId + } + return 0 +} + +// 车站 +type Station struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 车站名 + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // 车站站名 + Zname string `protobuf:"bytes,3,opt,name=zname,proto3" json:"zname,omitempty"` + // 车站公里标 + Glb *GLB `protobuf:"bytes,4,opt,name=glb,proto3" json:"glb,omitempty"` + // 是否设备集中站(Equipment centralized station) + IsEcs bool `protobuf:"varint,5,opt,name=isEcs,proto3" json:"isEcs,omitempty"` + // 是否停车场/车辆段 + IsCd bool `protobuf:"varint,6,opt,name=isCd,proto3" json:"isCd,omitempty"` + // 集中站关联下属车站 + EcsStationIds []uint32 `protobuf:"varint,7,rep,packed,name=ecsStationIds,proto3" json:"ecsStationIds,omitempty"` +} + +func (x *Station) Reset() { + *x = Station{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[20] + 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_cg_repo_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 Station.ProtoReflect.Descriptor instead. +func (*Station) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{20} +} + +func (x *Station) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Station) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Station) GetZname() string { + if x != nil { + return x.Zname + } + return "" +} + +func (x *Station) GetGlb() *GLB { + if x != nil { + return x.Glb + } + return nil +} + +func (x *Station) GetIsEcs() bool { + if x != nil { + return x.IsEcs + } + return false +} + +func (x *Station) GetIsCd() bool { + if x != nil { + return x.IsCd + } + return false +} + +func (x *Station) GetEcsStationIds() []uint32 { + if x != nil { + return x.EcsStationIds + } + return nil +} + +// 公里标 +type GLB struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 坐标系编号 + Zbx string `protobuf:"bytes,1,opt,name=zbx,proto3" json:"zbx,omitempty"` + // 左右行 + Right bool `protobuf:"varint,2,opt,name=right,proto3" json:"right,omitempty"` + // 公里标值,单位mm + Value int64 `protobuf:"varint,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GLB) Reset() { + *x = GLB{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GLB) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GLB) ProtoMessage() {} + +func (x *GLB) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 GLB.ProtoReflect.Descriptor instead. +func (*GLB) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{21} +} + +func (x *GLB) GetZbx() string { + if x != nil { + return x.Zbx + } + return "" +} + +func (x *GLB) GetRight() bool { + if x != nil { + return x.Right + } + return false +} + +func (x *GLB) GetValue() int64 { + if x != nil { + return x.Value + } + return 0 +} + +// 联锁设备布置数据 +type CiJDQBZ struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 设备集中站uid + EcsName string `protobuf:"bytes,1,opt,name=ecsName,proto3" json:"ecsName,omitempty"` + // 继电器 + Relays []*Relay `protobuf:"bytes,2,rep,name=relays,proto3" json:"relays,omitempty"` + // 断相保护器 + Pfps []*PFP `protobuf:"bytes,3,rep,name=pfps,proto3" json:"pfps,omitempty"` + // 设备电气组合组 + DeviceEcgDatas []*DeviceEcc `protobuf:"bytes,4,rep,name=deviceEcgDatas,proto3" json:"deviceEcgDatas,omitempty"` + // 联锁采集码表 + Cjt []*CiCjTable `protobuf:"bytes,5,rep,name=cjt,proto3" json:"cjt,omitempty"` + // 联锁驱动码表 + Qdt []*CiQdTable `protobuf:"bytes,6,rep,name=qdt,proto3" json:"qdt,omitempty"` + // 联锁区段码位表 + SectionIds []uint32 `protobuf:"varint,7,rep,packed,name=sectionIds,proto3" json:"sectionIds,omitempty"` +} + +func (x *CiJDQBZ) Reset() { + *x = CiJDQBZ{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiJDQBZ) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiJDQBZ) ProtoMessage() {} + +func (x *CiJDQBZ) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 CiJDQBZ.ProtoReflect.Descriptor instead. +func (*CiJDQBZ) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{22} +} + +func (x *CiJDQBZ) GetEcsName() string { + if x != nil { + return x.EcsName + } + return "" +} + +func (x *CiJDQBZ) GetRelays() []*Relay { + if x != nil { + return x.Relays + } + return nil +} + +func (x *CiJDQBZ) GetPfps() []*PFP { + if x != nil { + return x.Pfps + } + return nil +} + +func (x *CiJDQBZ) GetDeviceEcgDatas() []*DeviceEcc { + if x != nil { + return x.DeviceEcgDatas + } + return nil +} + +func (x *CiJDQBZ) GetCjt() []*CiCjTable { + if x != nil { + return x.Cjt + } + return nil +} + +func (x *CiJDQBZ) GetQdt() []*CiQdTable { + if x != nil { + return x.Qdt + } + return nil +} + +func (x *CiJDQBZ) GetSectionIds() []uint32 { + if x != nil { + return x.SectionIds + } + return nil +} + +// 联锁区段码位表 +type CiSectionTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 区段id + SectionIds []uint32 `protobuf:"varint,1,rep,packed,name=sectionIds,proto3" json:"sectionIds,omitempty"` +} + +func (x *CiSectionTable) Reset() { + *x = CiSectionTable{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiSectionTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiSectionTable) ProtoMessage() {} + +func (x *CiSectionTable) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 CiSectionTable.ProtoReflect.Descriptor instead. +func (*CiSectionTable) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{23} +} + +func (x *CiSectionTable) GetSectionIds() []uint32 { + if x != nil { + return x.SectionIds + } + return nil +} + +// 联锁驱动码表 +type CiQdTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 继电器id(按位顺序排列) + RelayIds []string `protobuf:"bytes,1,rep,name=relayIds,proto3" json:"relayIds,omitempty"` +} + +func (x *CiQdTable) Reset() { + *x = CiQdTable{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiQdTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiQdTable) ProtoMessage() {} + +func (x *CiQdTable) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 CiQdTable.ProtoReflect.Descriptor instead. +func (*CiQdTable) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{24} +} + +func (x *CiQdTable) GetRelayIds() []string { + if x != nil { + return x.RelayIds + } + return nil +} + +// 联锁采集码表 +type CiCjTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 采集继电器接点(按位顺序排列) + Items []*CiCjItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *CiCjTable) Reset() { + *x = CiCjTable{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiCjTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiCjTable) ProtoMessage() {} + +func (x *CiCjTable) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 CiCjTable.ProtoReflect.Descriptor instead. +func (*CiCjTable) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{25} +} + +func (x *CiCjTable) GetItems() []*CiCjItem { + if x != nil { + return x.Items + } + return nil +} + +// 联锁采集项 +type CiCjItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 继电器id + Uint32 string `protobuf:"bytes,1,opt,name=uint32,proto3" json:"uint32,omitempty"` + // 采集继电器前后接点(前接点为吸起/定位),true-前接点,false-后接点 + Q bool `protobuf:"varint,2,opt,name=q,proto3" json:"q,omitempty"` +} + +func (x *CiCjItem) Reset() { + *x = CiCjItem{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CiCjItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CiCjItem) ProtoMessage() {} + +func (x *CiCjItem) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 CiCjItem.ProtoReflect.Descriptor instead. +func (*CiCjItem) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{26} +} + +func (x *CiCjItem) GetUint32() string { + if x != nil { + return x.Uint32 + } + return "" +} + +func (x *CiCjItem) GetQ() bool { + if x != nil { + return x.Q + } + return false +} + +// 断相保护器(Phase failure protector) +type PFP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *PFP) Reset() { + *x = PFP{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PFP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PFP) ProtoMessage() {} + +func (x *PFP) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 PFP.ProtoReflect.Descriptor instead. +func (*PFP) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{27} +} + +func (x *PFP) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PFP) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +// 继电器 +type Relay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 继电器型号 + Model Relay_Model `protobuf:"varint,2,opt,name=model,proto3,enum=message.Relay_Model" json:"model,omitempty"` + // 编号 + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *Relay) Reset() { + *x = Relay{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Relay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Relay) ProtoMessage() {} + +func (x *Relay) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_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 Relay.ProtoReflect.Descriptor instead. +func (*Relay) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{28} +} + +func (x *Relay) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Relay) GetModel() Relay_Model { + if x != nil { + return x.Model + } + return Relay_JPXC_1000 +} + +func (x *Relay) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +// 按钮、灯等监控盘(IBP/门控箱/PSL等) +type JKP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 数据id + Gid string `protobuf:"bytes,1,opt,name=gid,proto3" json:"gid,omitempty"` + // 数据类型 + Type JKP_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.JKP_Type" json:"type,omitempty"` + // 开关 + Kgs []*KaiGuan `protobuf:"bytes,3,rep,name=kgs,proto3" json:"kgs,omitempty"` + // 灯 + Lamps []*Lamp `protobuf:"bytes,4,rep,name=lamps,proto3" json:"lamps,omitempty"` + // 警铃 + Alarms []*Alarm `protobuf:"bytes,5,rep,name=alarms,proto3" json:"alarms,omitempty"` + // 设备电子元件组合 + DeviceEccs []*DeviceEcc `protobuf:"bytes,6,rep,name=deviceEccs,proto3" json:"deviceEccs,omitempty"` +} + +func (x *JKP) Reset() { + *x = JKP{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JKP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JKP) ProtoMessage() {} + +func (x *JKP) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[29] + 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 JKP.ProtoReflect.Descriptor instead. +func (*JKP) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{29} +} + +func (x *JKP) GetGid() string { + if x != nil { + return x.Gid + } + return "" +} + +func (x *JKP) GetType() JKP_Type { + if x != nil { + return x.Type + } + return JKP_IBP +} + +func (x *JKP) GetKgs() []*KaiGuan { + if x != nil { + return x.Kgs + } + return nil +} + +func (x *JKP) GetLamps() []*Lamp { + if x != nil { + return x.Lamps + } + return nil +} + +func (x *JKP) GetAlarms() []*Alarm { + if x != nil { + return x.Alarms + } + return nil +} + +func (x *JKP) GetDeviceEccs() []*DeviceEcc { + if x != nil { + return x.DeviceEccs + } + return nil +} + +// 警铃/蜂鸣器 +type Alarm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *Alarm) Reset() { + *x = Alarm{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Alarm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Alarm) ProtoMessage() {} + +func (x *Alarm) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[30] + 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 Alarm.ProtoReflect.Descriptor instead. +func (*Alarm) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{30} +} + +func (x *Alarm) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Alarm) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +// 开关 +type KaiGuan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // 是否自复位 + Zfw bool `protobuf:"varint,3,opt,name=zfw,proto3" json:"zfw,omitempty"` + // 是否有背光灯 + Lamp bool `protobuf:"varint,4,opt,name=lamp,proto3" json:"lamp,omitempty"` +} + +func (x *KaiGuan) Reset() { + *x = KaiGuan{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KaiGuan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KaiGuan) ProtoMessage() {} + +func (x *KaiGuan) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[31] + 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 KaiGuan.ProtoReflect.Descriptor instead. +func (*KaiGuan) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{31} +} + +func (x *KaiGuan) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *KaiGuan) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *KaiGuan) GetZfw() bool { + if x != nil { + return x.Zfw + } + return false +} + +func (x *KaiGuan) GetLamp() bool { + if x != nil { + return x.Lamp + } + return false +} + +// 灯 +type Lamp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // 编号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *Lamp) Reset() { + *x = Lamp{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Lamp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Lamp) ProtoMessage() {} + +func (x *Lamp) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[32] + 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 Lamp.ProtoReflect.Descriptor instead. +func (*Lamp) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{32} +} + +func (x *Lamp) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Lamp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +// 设备电子元件组合 +type DeviceEcc struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 模型类型 + DeviceType Model_Type `protobuf:"varint,1,opt,name=deviceType,proto3,enum=message.Model_Type" json:"deviceType,omitempty"` + // 模型编号 + DeviceCode string `protobuf:"bytes,2,opt,name=deviceCode,proto3" json:"deviceCode,omitempty"` + // 电子元件组合 + Ecc []*Ecc `protobuf:"bytes,3,rep,name=ecc,proto3" json:"ecc,omitempty"` +} + +func (x *DeviceEcc) Reset() { + *x = DeviceEcc{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeviceEcc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceEcc) ProtoMessage() {} + +func (x *DeviceEcc) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[33] + 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 DeviceEcc.ProtoReflect.Descriptor instead. +func (*DeviceEcc) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{33} +} + +func (x *DeviceEcc) GetDeviceType() Model_Type { + if x != nil { + return x.DeviceType + } + return Model_Unknown +} + +func (x *DeviceEcc) GetDeviceCode() string { + if x != nil { + return x.DeviceCode + } + return "" +} + +func (x *DeviceEcc) GetEcc() []*Ecc { + if x != nil { + return x.Ecc + } + return nil +} + +// 电子元件组合 +type Ecc struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 组合名称 + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + // 关联的电子元件(包括但不限于继电器、断相保护器、按钮、灯等)id + Ids []uint32 `protobuf:"varint,2,rep,packed,name=ids,proto3" json:"ids,omitempty"` +} + +func (x *Ecc) Reset() { + *x = Ecc{} + if protoimpl.UnsafeEnabled { + mi := &file_cg_repo_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ecc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ecc) ProtoMessage() {} + +func (x *Ecc) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[34] + 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 Ecc.ProtoReflect.Descriptor instead. +func (*Ecc) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{34} +} + +func (x *Ecc) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Ecc) GetIds() []uint32 { + if x != nil { + return x.Ids + } + return nil +} + +var File_cg_repo_proto protoreflect.FileDescriptor + +var file_cg_repo_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x63, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, + 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x6a, 0x6b, + 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x4a, 0x4b, 0x50, 0x52, 0x04, 0x6a, 0x6b, 0x70, 0x73, 0x22, 0x7d, 0x0a, 0x04, + 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, + 0x12, 0x21, 0x0a, 0x04, 0x78, 0x68, 0x62, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x58, 0x48, 0x42, 0x5a, 0x52, 0x04, 0x78, + 0x68, 0x62, 0x7a, 0x12, 0x26, 0x0a, 0x05, 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x4a, + 0x44, 0x51, 0x42, 0x5a, 0x52, 0x05, 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x22, 0xe0, 0x05, 0x0a, 0x04, + 0x58, 0x48, 0x42, 0x5a, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x73, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x73, 0x64, 0x52, + 0x04, 0x70, 0x73, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x07, + 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, + 0x70, 0x6f, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, + 0x73, 0x12, 0x1d, 0x0a, 0x03, 0x70, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x64, 0x52, 0x03, 0x70, 0x64, 0x73, + 0x12, 0x1d, 0x0a, 0x03, 0x71, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x51, 0x64, 0x52, 0x03, 0x71, 0x64, 0x73, 0x12, + 0x20, 0x0a, 0x04, 0x65, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x4d, 0x50, 0x52, 0x04, 0x65, 0x6d, 0x70, + 0x73, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x64, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x44, 0x54, 0x52, 0x04, 0x74, + 0x64, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6b, 0x78, 0x52, + 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x73, 0x6c, 0x73, 0x18, 0x10, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x53, + 0x4c, 0x52, 0x04, 0x70, 0x73, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x73, 0x70, 0x6b, 0x73, 0x18, + 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x53, 0x50, 0x4b, 0x53, 0x52, 0x04, 0x73, 0x70, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, + 0x63, 0x63, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x22, 0x4a, + 0x0a, 0x04, 0x53, 0x50, 0x4b, 0x53, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x03, 0x50, 0x53, + 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x03, 0x4d, + 0x6b, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x03, + 0x54, 0x44, 0x54, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x03, 0x45, 0x4d, 0x50, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x64, 0x22, 0x14, 0x0a, 0x02, 0x51, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x02, 0x50, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4f, + 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x67, 0x6e, 0x12, + 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x22, + 0x84, 0x01, 0x0a, 0x06, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, 0x16, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, 0x12, 0x06, + 0x0a, 0x02, 0x54, 0x42, 0x10, 0x01, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, + 0x03, 0x67, 0x6c, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x12, 0x38, 0x0a, + 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x63, 0x73, 0x49, 0x64, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x63, 0x73, 0x49, 0x64, 0x73, 0x22, + 0x25, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x5a, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x4a, 0x59, 0x4a, 0x10, 0x02, 0x22, 0x7b, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, + 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x10, 0x03, 0x22, 0x92, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x1b, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, + 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0xd8, 0x02, 0x0a, 0x06, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x03, 0x74, 0x72, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x54, 0x52, 0x44, 0x52, 0x03, 0x74, 0x72, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x05, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, + 0x31, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x5f, 0x31, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, 0x30, 0x10, + 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x05, 0x12, 0x0e, + 0x0a, 0x0a, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x06, 0x12, 0x08, + 0x0a, 0x04, 0x48, 0x4c, 0x5f, 0x30, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4c, 0x5f, 0x4c, + 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x55, 0x5f, 0x30, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, + 0x48, 0x55, 0x5f, 0x55, 0x10, 0x0a, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10, 0x0b, 0x12, 0x06, 0x0a, + 0x02, 0x41, 0x42, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x30, 0x5f, 0x31, + 0x5f, 0x30, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, + 0x30, 0x10, 0x0e, 0x22, 0x8a, 0x02, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x75, 0x72, + 0x6e, 0x6f, 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x61, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, + 0x70, 0x12, 0x26, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, + 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, + 0x1f, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, + 0x5f, 0x31, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x32, 0x10, 0x01, + 0x22, 0x96, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, + 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, + 0x61, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x63, 0x73, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x03, 0x74, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x52, 0x44, 0x52, 0x03, 0x74, 0x72, + 0x64, 0x22, 0x36, 0x0a, 0x04, 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, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x10, 0x02, 0x22, 0x49, 0x0a, 0x03, 0x50, 0x73, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, + 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, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0xb3, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x7a, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, + 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x73, 0x43, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x43, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x63, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x63, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x43, 0x0a, 0x03, 0x47, 0x4c, 0x42, 0x12, 0x10, 0x0a, + 0x03, 0x7a, 0x62, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x7a, 0x62, 0x78, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x07, + 0x43, 0x69, 0x4a, 0x44, 0x51, 0x42, 0x5a, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x52, 0x06, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x66, 0x70, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x50, 0x46, 0x50, 0x52, 0x04, 0x70, 0x66, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, + 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x6a, 0x74, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, + 0x69, 0x43, 0x6a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x63, 0x6a, 0x74, 0x12, 0x24, 0x0a, + 0x03, 0x71, 0x64, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, + 0x71, 0x64, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x22, 0x30, 0x0a, 0x0e, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x09, 0x43, 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x22, 0x34, + 0x0a, 0x09, 0x43, 0x69, 0x43, 0x6a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0x30, 0x0a, 0x08, 0x43, 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x01, 0x71, 0x22, 0x29, 0x0a, 0x03, 0x50, 0x46, 0x50, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x05, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x05, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x30, + 0x30, 0x30, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, + 0x30, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x34, 0x38, 0x30, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x32, 0x35, + 0x5f, 0x38, 0x30, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x31, 0x37, + 0x30, 0x30, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x48, 0x33, 0x34, + 0x30, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x59, 0x4a, 0x58, 0x43, 0x5f, 0x31, 0x36, 0x30, + 0x5f, 0x32, 0x36, 0x30, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x5a, 0x58, 0x43, 0x5f, 0x48, + 0x31, 0x38, 0x10, 0x07, 0x22, 0x86, 0x02, 0x0a, 0x03, 0x4a, 0x4b, 0x50, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x25, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4a, 0x4b, 0x50, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 0x61, 0x69, + 0x47, 0x75, 0x61, 0x6e, 0x52, 0x03, 0x6b, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x61, 0x6d, + 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x6c, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x26, + 0x0a, 0x06, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x06, + 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x63, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x22, 0x21, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x42, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, + 0x53, 0x4c, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x4b, 0x58, 0x10, 0x02, 0x22, 0x2b, 0x0a, + 0x05, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x53, 0x0a, 0x07, 0x4b, 0x61, + 0x69, 0x47, 0x75, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x66, 0x77, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x7a, 0x66, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6c, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x61, 0x6d, 0x70, 0x22, + 0x2a, 0x0a, 0x04, 0x4c, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x09, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x12, 0x33, 0x0a, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, + 0x0a, 0x03, 0x65, 0x63, 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x63, 0x63, 0x52, 0x03, 0x65, 0x63, 0x63, 0x22, 0x2b, + 0x0a, 0x03, 0x45, 0x63, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x2a, 0x1f, 0x0a, 0x03, 0x54, + 0x52, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x70, 0x77, 0x61, 0x72, 0x64, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x42, 0x0c, 0x5a, 0x0a, + 0x2e, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x64, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_cg_repo_proto_rawDescOnce sync.Once + file_cg_repo_proto_rawDescData = file_cg_repo_proto_rawDesc +) + +func file_cg_repo_proto_rawDescGZIP() []byte { + file_cg_repo_proto_rawDescOnce.Do(func() { + file_cg_repo_proto_rawDescData = protoimpl.X.CompressGZIP(file_cg_repo_proto_rawDescData) + }) + return file_cg_repo_proto_rawDescData +} + +var file_cg_repo_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_cg_repo_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_cg_repo_proto_goTypes = []interface{}{ + (TRD)(0), // 0: message.TRD + (Balise_Type)(0), // 1: message.Balise.Type + (DevidingPoint_Type)(0), // 2: message.DevidingPoint.Type + (Model_Type)(0), // 3: message.Model.Type + (SectionPort_Type)(0), // 4: message.SectionPort.Type + (Signal_Model)(0), // 5: message.Signal.Model + (Turnout_Model)(0), // 6: message.Turnout.Model + (Section_Type)(0), // 7: message.Section.Type + (Relay_Model)(0), // 8: message.Relay.Model + (JKP_Type)(0), // 9: message.JKP.Type + (*Modelrepo)(nil), // 10: message.modelrepo + (*Line)(nil), // 11: message.Line + (*XHBZ)(nil), // 12: message.XHBZ + (*SPKS)(nil), // 13: message.SPKS + (*PSL)(nil), // 14: message.PSL + (*Mkx)(nil), // 15: message.Mkx + (*TDT)(nil), // 16: message.TDT + (*EMP)(nil), // 17: message.EMP + (*Qd)(nil), // 18: message.Qd + (*Pd)(nil), // 19: message.Pd + (*ParkingSpot)(nil), // 20: message.ParkingSpot + (*Balise)(nil), // 21: message.Balise + (*DevidingPoint)(nil), // 22: message.DevidingPoint + (*Model)(nil), // 23: message.Model + (*SectionPort)(nil), // 24: message.SectionPort + (*Signal)(nil), // 25: message.Signal + (*Turnout)(nil), // 26: message.Turnout + (*Section)(nil), // 27: message.Section + (*Psd)(nil), // 28: message.Psd + (*Platform)(nil), // 29: message.Platform + (*Station)(nil), // 30: message.Station + (*GLB)(nil), // 31: message.GLB + (*CiJDQBZ)(nil), // 32: message.CiJDQBZ + (*CiSectionTable)(nil), // 33: message.CiSectionTable + (*CiQdTable)(nil), // 34: message.CiQdTable + (*CiCjTable)(nil), // 35: message.CiCjTable + (*CiCjItem)(nil), // 36: message.CiCjItem + (*PFP)(nil), // 37: message.PFP + (*Relay)(nil), // 38: message.Relay + (*JKP)(nil), // 39: message.JKP + (*Alarm)(nil), // 40: message.Alarm + (*KaiGuan)(nil), // 41: message.KaiGuan + (*Lamp)(nil), // 42: message.Lamp + (*DeviceEcc)(nil), // 43: message.DeviceEcc + (*Ecc)(nil), // 44: message.Ecc +} +var file_cg_repo_proto_depIdxs = []int32{ + 11, // 0: message.modelrepo.lines:type_name -> message.Line + 39, // 1: message.modelrepo.jkps:type_name -> message.JKP + 12, // 2: message.Line.xhbz:type_name -> message.XHBZ + 32, // 3: message.Line.jdqbz:type_name -> message.CiJDQBZ + 30, // 4: message.XHBZ.stations:type_name -> message.Station + 29, // 5: message.XHBZ.platforms:type_name -> message.Platform + 28, // 6: message.XHBZ.psds:type_name -> message.Psd + 27, // 7: message.XHBZ.sections:type_name -> message.Section + 26, // 8: message.XHBZ.turnouts:type_name -> message.Turnout + 22, // 9: message.XHBZ.devidingPoints:type_name -> message.DevidingPoint + 25, // 10: message.XHBZ.signals:type_name -> message.Signal + 21, // 11: message.XHBZ.balises:type_name -> message.Balise + 20, // 12: message.XHBZ.parkingSpots:type_name -> message.ParkingSpot + 19, // 13: message.XHBZ.pds:type_name -> message.Pd + 18, // 14: message.XHBZ.qds:type_name -> message.Qd + 17, // 15: message.XHBZ.emps:type_name -> message.EMP + 16, // 16: message.XHBZ.tdts:type_name -> message.TDT + 15, // 17: message.XHBZ.mkxs:type_name -> message.Mkx + 14, // 18: message.XHBZ.psls:type_name -> message.PSL + 13, // 19: message.XHBZ.spks:type_name -> message.SPKS + 43, // 20: message.XHBZ.deviceEccs:type_name -> message.DeviceEcc + 31, // 21: message.ParkingSpot.glb:type_name -> message.GLB + 1, // 22: message.Balise.type:type_name -> message.Balise.Type + 2, // 23: message.DevidingPoint.type:type_name -> message.DevidingPoint.Type + 31, // 24: message.DevidingPoint.glb:type_name -> message.GLB + 24, // 25: message.DevidingPoint.sectionPorts:type_name -> message.SectionPort + 3, // 26: message.Model.type:type_name -> message.Model.Type + 3, // 27: message.SectionPort.type:type_name -> message.Model.Type + 4, // 28: message.SectionPort.port:type_name -> message.SectionPort.Type + 5, // 29: message.Signal.model:type_name -> message.Signal.Model + 0, // 30: message.Signal.trd:type_name -> message.TRD + 6, // 31: message.Turnout.model:type_name -> message.Turnout.Model + 24, // 32: message.Turnout.asp:type_name -> message.SectionPort + 24, // 33: message.Turnout.bsp:type_name -> message.SectionPort + 24, // 34: message.Turnout.csp:type_name -> message.SectionPort + 7, // 35: message.Section.type:type_name -> message.Section.Type + 24, // 36: message.Section.asp:type_name -> message.SectionPort + 24, // 37: message.Section.bsp:type_name -> message.SectionPort + 0, // 38: message.Section.trd:type_name -> message.TRD + 31, // 39: message.Station.glb:type_name -> message.GLB + 38, // 40: message.CiJDQBZ.relays:type_name -> message.Relay + 37, // 41: message.CiJDQBZ.pfps:type_name -> message.PFP + 43, // 42: message.CiJDQBZ.deviceEcgDatas:type_name -> message.DeviceEcc + 35, // 43: message.CiJDQBZ.cjt:type_name -> message.CiCjTable + 34, // 44: message.CiJDQBZ.qdt:type_name -> message.CiQdTable + 36, // 45: message.CiCjTable.items:type_name -> message.CiCjItem + 8, // 46: message.Relay.model:type_name -> message.Relay.Model + 9, // 47: message.JKP.type:type_name -> message.JKP.Type + 41, // 48: message.JKP.kgs:type_name -> message.KaiGuan + 42, // 49: message.JKP.lamps:type_name -> message.Lamp + 40, // 50: message.JKP.alarms:type_name -> message.Alarm + 43, // 51: message.JKP.deviceEccs:type_name -> message.DeviceEcc + 3, // 52: message.DeviceEcc.deviceType:type_name -> message.Model.Type + 44, // 53: message.DeviceEcc.ecc:type_name -> message.Ecc + 54, // [54:54] is the sub-list for method output_type + 54, // [54:54] is the sub-list for method input_type + 54, // [54:54] is the sub-list for extension type_name + 54, // [54:54] is the sub-list for extension extendee + 0, // [0:54] is the sub-list for field type_name +} + +func init() { file_cg_repo_proto_init() } +func file_cg_repo_proto_init() { + if File_cg_repo_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cg_repo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Modelrepo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Line); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*XHBZ); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SPKS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PSL); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Mkx); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TDT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EMP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Qd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkingSpot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Balise); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DevidingPoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Model); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SectionPort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[15].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_cg_repo_proto_msgTypes[16].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_cg_repo_proto_msgTypes[17].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_cg_repo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Psd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[19].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_cg_repo_proto_msgTypes[20].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_cg_repo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GLB); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiJDQBZ); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiSectionTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiQdTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiCjTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CiCjItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PFP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Relay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JKP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Alarm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KaiGuan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Lamp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceEcc); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cg_repo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ecc); 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_cg_repo_proto_rawDesc, + NumEnums: 10, + NumMessages: 35, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cg_repo_proto_goTypes, + DependencyIndexes: file_cg_repo_proto_depIdxs, + EnumInfos: file_cg_repo_proto_enumTypes, + MessageInfos: file_cg_repo_proto_msgTypes, + }.Build() + File_cg_repo_proto = out.File + file_cg_repo_proto_rawDesc = nil + file_cg_repo_proto_goTypes = nil + file_cg_repo_proto_depIdxs = nil +} diff --git a/sys/common_sys/two_position_movement.go b/sys/common_sys/two_position_movement.go index 2e1d770..d2b552d 100644 --- a/sys/common_sys/two_position_movement.go +++ b/sys/common_sys/two_position_movement.go @@ -13,14 +13,14 @@ type TwoPositionMovementSys struct { func NewTwoPositionMovementSys() *TwoPositionMovementSys { return &TwoPositionMovementSys{ - query: ecs.NewQuery(filter.Contains(component.TwoPositionTransformType)), + query: ecs.NewQuery(filter.Contains(component.FixedPositionTransformType)), } } // 更新位置 func (tp *TwoPositionMovementSys) Update(w ecs.World) { tp.query.Each(w, func(entry *ecs.Entry) { - position := component.TwoPositionTransformType.Get(entry) + position := component.FixedPositionTransformType.Get(entry) if position.Speed != 0 { pos := position.Pos + position.Speed if pos < consts.TwoPosMin { diff --git a/sys/device_sys/asd.go b/sys/device_sys/asd.go index 99e37d3..191c6e9 100644 --- a/sys/device_sys/asd.go +++ b/sys/device_sys/asd.go @@ -13,7 +13,7 @@ type AsdSys struct { func NewAsdSys() *AsdSys { return &AsdSys{ - query: ecs.NewQuery(filter.Contains(component.AsdMotorStateType, component.TwoPositionTransformType)), + query: ecs.NewQuery(filter.Contains(component.AsdMotorStateType, component.FixedPositionTransformType)), } } @@ -22,7 +22,7 @@ func (s *AsdSys) Update(world ecs.World) { s.query.Each(world, func(entry *ecs.Entry) { //设置两位置转换速度 psdMotorState := component.AsdMotorStateType.Get(entry) - twoPosition := component.TwoPositionTransformType.Get(entry) + twoPosition := component.FixedPositionTransformType.Get(entry) asdState := component.AsdStateType.Get(entry) pos := twoPosition.Pos if entry.HasComponent(component.AsdCannotOpenTag) { diff --git a/sys/device_sys/zzj.go b/sys/device_sys/zzj.go index 404c93d..aa3af67 100644 --- a/sys/device_sys/zzj.go +++ b/sys/device_sys/zzj.go @@ -13,7 +13,7 @@ type ZzjSys struct { func NewZzjSys() *ZzjSys { return &ZzjSys{ - query: ecs.NewQuery(filter.Contains(component.ZzjStateType, component.TwoPositionTransformType)), + query: ecs.NewQuery(filter.Contains(component.ZzjStateType, component.FixedPositionTransformType)), } } @@ -28,7 +28,7 @@ const ( func (z *ZzjSys) Update(w ecs.World) { z.query.Each(w, func(entry *ecs.Entry) { zzj := component.ZzjStateType.Get(entry) - tp := component.TwoPositionTransformType.Get(entry) + tp := component.FixedPositionTransformType.Get(entry) if entry.HasComponent(component.TurnoutFaultJcType) { // 道岔挤岔,设置位置到中间,且不再能转动 tp.Pos = consts.TwoPosMax / 2 diff --git a/sys/iscs_sys/iscs_bas_valve.go b/sys/iscs_sys/iscs_bas_valve.go index a569913..c288be4 100644 --- a/sys/iscs_sys/iscs_bas_valve.go +++ b/sys/iscs_sys/iscs_bas_valve.go @@ -1,12 +1,13 @@ package iscs_sys import ( + "math" + "joylink.club/ecs" "joylink.club/ecs/filter" "joylink.club/rtsssimulation/component" "joylink.club/rtsssimulation/consts" "joylink.club/rtsssimulation/entity" - "math" ) // ValveSystem 阀门 @@ -16,7 +17,7 @@ type ValveSystem struct { func NewValveSystem() *ValveSystem { return &ValveSystem{ - query: ecs.NewQuery(filter.Contains(component.UidType, component.ValveType, component.ValveControllerType, component.TwoPositionTransformType)), + query: ecs.NewQuery(filter.Contains(component.UidType, component.ValveType, component.ValveControllerType, component.FixedPositionTransformType)), } } func (s *ValveSystem) Update(w ecs.World) { @@ -25,7 +26,7 @@ func (s *ValveSystem) Update(w ecs.World) { valveId := component.UidType.Get(entry).Id valve := component.ValveType.Get(entry) valveController := component.ValveControllerType.Get(entry) - position := component.TwoPositionTransformType.Get(entry) + position := component.FixedPositionTransformType.Get(entry) // valve.OpenRate = uint8((float64(position.Pos-consts.TwoPosMin) / float64(consts.TwoPosMax-consts.TwoPosMin)) * float64(100)) valve.Closed = valve.OpenRate <= 0