增加继电器驱采表状态;修改Repo构建时基础检查逻辑

This commit is contained in:
thesai 2024-01-29 14:42:12 +08:00
parent 30ec740426
commit f50f847819
8 changed files with 432 additions and 203 deletions

@ -1 +1 @@
Subproject commit 099d39589833465c09f01d83cd31d3f063b43089 Subproject commit 8edda8b7497511eda94720f1eb686a6a7f8531c6

View File

@ -200,7 +200,7 @@ func (x SimulationStatus_SimulationState) Number() protoreflect.EnumNumber {
// Deprecated: Use SimulationStatus_SimulationState.Descriptor instead. // Deprecated: Use SimulationStatus_SimulationState.Descriptor instead.
func (SimulationStatus_SimulationState) EnumDescriptor() ([]byte, []int) { func (SimulationStatus_SimulationState) EnumDescriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{25, 0} return file_device_state_proto_rawDescGZIP(), []int{26, 0}
} }
type SimulationThirdPartyApiService_Type int32 type SimulationThirdPartyApiService_Type int32
@ -252,7 +252,7 @@ func (x SimulationThirdPartyApiService_Type) Number() protoreflect.EnumNumber {
// Deprecated: Use SimulationThirdPartyApiService_Type.Descriptor instead. // Deprecated: Use SimulationThirdPartyApiService_Type.Descriptor instead.
func (SimulationThirdPartyApiService_Type) EnumDescriptor() ([]byte, []int) { func (SimulationThirdPartyApiService_Type) EnumDescriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{26, 0} return file_device_state_proto_rawDescGZIP(), []int{27, 0}
} }
// 服务状态 // 服务状态
@ -301,7 +301,7 @@ func (x SimulationThirdPartyApiService_State) Number() protoreflect.EnumNumber {
// Deprecated: Use SimulationThirdPartyApiService_State.Descriptor instead. // Deprecated: Use SimulationThirdPartyApiService_State.Descriptor instead.
func (SimulationThirdPartyApiService_State) EnumDescriptor() ([]byte, []int) { func (SimulationThirdPartyApiService_State) EnumDescriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{26, 1} return file_device_state_proto_rawDescGZIP(), []int{27, 1}
} }
// 相邻端点定义的link的状态 // 相邻端点定义的link的状态
@ -3078,6 +3078,62 @@ func (x *BaliseState) GetVariableUserTelegram() string {
return "" return ""
} }
// 车站联锁驱采状态
type StationQc struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
QdStates []*StationQc_State `protobuf:"bytes,1,rep,name=qdStates,proto3" json:"qdStates,omitempty"` //驱动状态
CjStates []*StationQc_State `protobuf:"bytes,2,rep,name=cjStates,proto3" json:"cjStates,omitempty"` //采集状态
}
func (x *StationQc) Reset() {
*x = StationQc{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StationQc) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StationQc) ProtoMessage() {}
func (x *StationQc) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 StationQc.ProtoReflect.Descriptor instead.
func (*StationQc) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{22}
}
func (x *StationQc) GetQdStates() []*StationQc_State {
if x != nil {
return x.QdStates
}
return nil
}
func (x *StationQc) GetCjStates() []*StationQc_State {
if x != nil {
return x.CjStates
}
return nil
}
// 仿真运行时状态变化量,当前时刻与上一时刻比较得到 // 仿真运行时状态变化量,当前时刻与上一时刻比较得到
type VariationStatus struct { type VariationStatus struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -3099,7 +3155,7 @@ type VariationStatus struct {
func (x *VariationStatus) Reset() { func (x *VariationStatus) Reset() {
*x = VariationStatus{} *x = VariationStatus{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[22] mi := &file_device_state_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3112,7 +3168,7 @@ func (x *VariationStatus) String() string {
func (*VariationStatus) ProtoMessage() {} func (*VariationStatus) ProtoMessage() {}
func (x *VariationStatus) ProtoReflect() protoreflect.Message { func (x *VariationStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[22] mi := &file_device_state_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3125,7 +3181,7 @@ func (x *VariationStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use VariationStatus.ProtoReflect.Descriptor instead. // Deprecated: Use VariationStatus.ProtoReflect.Descriptor instead.
func (*VariationStatus) Descriptor() ([]byte, []int) { func (*VariationStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{22} return file_device_state_proto_rawDescGZIP(), []int{23}
} }
func (x *VariationStatus) GetUpdatedTrain() []*TrainMapState { func (x *VariationStatus) GetUpdatedTrain() []*TrainMapState {
@ -3193,12 +3249,14 @@ type AllDevicesStatus struct {
PlatformState []*PlatformState `protobuf:"bytes,11,rep,name=platformState,proto3" json:"platformState,omitempty"` PlatformState []*PlatformState `protobuf:"bytes,11,rep,name=platformState,proto3" json:"platformState,omitempty"`
// 应答器状态 // 应答器状态
BaliseState []*BaliseState `protobuf:"bytes,12,rep,name=baliseState,proto3" json:"baliseState,omitempty"` BaliseState []*BaliseState `protobuf:"bytes,12,rep,name=baliseState,proto3" json:"baliseState,omitempty"`
// 车站联锁驱采状态
StationQc *StationQc `protobuf:"bytes,13,opt,name=stationQc,proto3" json:"stationQc,omitempty"`
} }
func (x *AllDevicesStatus) Reset() { func (x *AllDevicesStatus) Reset() {
*x = AllDevicesStatus{} *x = AllDevicesStatus{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[23] mi := &file_device_state_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3211,7 +3269,7 @@ func (x *AllDevicesStatus) String() string {
func (*AllDevicesStatus) ProtoMessage() {} func (*AllDevicesStatus) ProtoMessage() {}
func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message { func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[23] mi := &file_device_state_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3224,7 +3282,7 @@ func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use AllDevicesStatus.ProtoReflect.Descriptor instead. // Deprecated: Use AllDevicesStatus.ProtoReflect.Descriptor instead.
func (*AllDevicesStatus) Descriptor() ([]byte, []int) { func (*AllDevicesStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{23} return file_device_state_proto_rawDescGZIP(), []int{24}
} }
func (x *AllDevicesStatus) GetTrainState() []*TrainMapState { func (x *AllDevicesStatus) GetTrainState() []*TrainMapState {
@ -3311,6 +3369,13 @@ func (x *AllDevicesStatus) GetBaliseState() []*BaliseState {
return nil return nil
} }
func (x *AllDevicesStatus) GetStationQc() *StationQc {
if x != nil {
return x.StationQc
}
return nil
}
// 服务器端向前端推送的设备状态信息 // 服务器端向前端推送的设备状态信息
type PushedDevicesStatus struct { type PushedDevicesStatus struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -3329,7 +3394,7 @@ type PushedDevicesStatus struct {
func (x *PushedDevicesStatus) Reset() { func (x *PushedDevicesStatus) Reset() {
*x = PushedDevicesStatus{} *x = PushedDevicesStatus{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[24] mi := &file_device_state_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3342,7 +3407,7 @@ func (x *PushedDevicesStatus) String() string {
func (*PushedDevicesStatus) ProtoMessage() {} func (*PushedDevicesStatus) ProtoMessage() {}
func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message { func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[24] mi := &file_device_state_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3355,7 +3420,7 @@ func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use PushedDevicesStatus.ProtoReflect.Descriptor instead. // Deprecated: Use PushedDevicesStatus.ProtoReflect.Descriptor instead.
func (*PushedDevicesStatus) Descriptor() ([]byte, []int) { func (*PushedDevicesStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{24} return file_device_state_proto_rawDescGZIP(), []int{25}
} }
func (x *PushedDevicesStatus) GetAll() bool { func (x *PushedDevicesStatus) GetAll() bool {
@ -3392,7 +3457,7 @@ type SimulationStatus struct {
func (x *SimulationStatus) Reset() { func (x *SimulationStatus) Reset() {
*x = SimulationStatus{} *x = SimulationStatus{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[25] mi := &file_device_state_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3405,7 +3470,7 @@ func (x *SimulationStatus) String() string {
func (*SimulationStatus) ProtoMessage() {} func (*SimulationStatus) ProtoMessage() {}
func (x *SimulationStatus) ProtoReflect() protoreflect.Message { func (x *SimulationStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[25] mi := &file_device_state_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3418,7 +3483,7 @@ func (x *SimulationStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use SimulationStatus.ProtoReflect.Descriptor instead. // Deprecated: Use SimulationStatus.ProtoReflect.Descriptor instead.
func (*SimulationStatus) Descriptor() ([]byte, []int) { func (*SimulationStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{25} return file_device_state_proto_rawDescGZIP(), []int{26}
} }
func (x *SimulationStatus) GetSimulationId() string { func (x *SimulationStatus) GetSimulationId() string {
@ -3448,7 +3513,7 @@ type SimulationThirdPartyApiService struct {
func (x *SimulationThirdPartyApiService) Reset() { func (x *SimulationThirdPartyApiService) Reset() {
*x = SimulationThirdPartyApiService{} *x = SimulationThirdPartyApiService{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[26] mi := &file_device_state_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3461,7 +3526,7 @@ func (x *SimulationThirdPartyApiService) String() string {
func (*SimulationThirdPartyApiService) ProtoMessage() {} func (*SimulationThirdPartyApiService) ProtoMessage() {}
func (x *SimulationThirdPartyApiService) ProtoReflect() protoreflect.Message { func (x *SimulationThirdPartyApiService) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[26] mi := &file_device_state_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3474,7 +3539,7 @@ func (x *SimulationThirdPartyApiService) ProtoReflect() protoreflect.Message {
// Deprecated: Use SimulationThirdPartyApiService.ProtoReflect.Descriptor instead. // Deprecated: Use SimulationThirdPartyApiService.ProtoReflect.Descriptor instead.
func (*SimulationThirdPartyApiService) Descriptor() ([]byte, []int) { func (*SimulationThirdPartyApiService) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{26} return file_device_state_proto_rawDescGZIP(), []int{27}
} }
func (x *SimulationThirdPartyApiService) GetStates() []*SimulationThirdPartyApiServiceState { func (x *SimulationThirdPartyApiService) GetStates() []*SimulationThirdPartyApiServiceState {
@ -3499,7 +3564,7 @@ type SimulationThirdPartyApiServiceState struct {
func (x *SimulationThirdPartyApiServiceState) Reset() { func (x *SimulationThirdPartyApiServiceState) Reset() {
*x = SimulationThirdPartyApiServiceState{} *x = SimulationThirdPartyApiServiceState{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[27] mi := &file_device_state_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -3512,7 +3577,7 @@ func (x *SimulationThirdPartyApiServiceState) String() string {
func (*SimulationThirdPartyApiServiceState) ProtoMessage() {} func (*SimulationThirdPartyApiServiceState) ProtoMessage() {}
func (x *SimulationThirdPartyApiServiceState) ProtoReflect() protoreflect.Message { func (x *SimulationThirdPartyApiServiceState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[27] mi := &file_device_state_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -3525,7 +3590,7 @@ func (x *SimulationThirdPartyApiServiceState) ProtoReflect() protoreflect.Messag
// Deprecated: Use SimulationThirdPartyApiServiceState.ProtoReflect.Descriptor instead. // Deprecated: Use SimulationThirdPartyApiServiceState.ProtoReflect.Descriptor instead.
func (*SimulationThirdPartyApiServiceState) Descriptor() ([]byte, []int) { func (*SimulationThirdPartyApiServiceState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{27} return file_device_state_proto_rawDescGZIP(), []int{28}
} }
func (x *SimulationThirdPartyApiServiceState) GetType() SimulationThirdPartyApiService_Type { func (x *SimulationThirdPartyApiServiceState) GetType() SimulationThirdPartyApiService_Type {
@ -3542,6 +3607,69 @@ func (x *SimulationThirdPartyApiServiceState) GetState() SimulationThirdPartyApi
return SimulationThirdPartyApiService_Normal return SimulationThirdPartyApiService_Normal
} }
type StationQc_State struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` //行
Col int32 `protobuf:"varint,2,opt,name=col,proto3" json:"col,omitempty"` //列
On bool `protobuf:"varint,3,opt,name=on,proto3" json:"on,omitempty"` //接通
}
func (x *StationQc_State) Reset() {
*x = StationQc_State{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StationQc_State) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StationQc_State) ProtoMessage() {}
func (x *StationQc_State) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 StationQc_State.ProtoReflect.Descriptor instead.
func (*StationQc_State) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{22, 0}
}
func (x *StationQc_State) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *StationQc_State) GetCol() int32 {
if x != nil {
return x.Col
}
return 0
}
func (x *StationQc_State) GetOn() bool {
if x != nil {
return x.On
}
return false
}
var File_device_state_proto protoreflect.FileDescriptor var File_device_state_proto protoreflect.FileDescriptor
var file_device_state_proto_rawDesc = []byte{ var file_device_state_proto_rawDesc = []byte{
@ -4050,121 +4178,135 @@ var file_device_state_proto_rawDesc = []byte{
0x0a, 0x14, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x0a, 0x14, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65,
0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x76, 0x61,
0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72,
0x61, 0x6d, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6d, 0x22, 0xb0, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x63,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x71, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x6f, 0x6e, 0x51, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x71, 0x64, 0x53, 0x74,
0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x6a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73,
0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53,
0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08,
0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x63, 0x6a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x72, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x52, 0x03, 0x63, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x63, 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x08, 0x52, 0x02, 0x6f, 0x6e, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x75, 0x70, 0x64,
0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x35, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18,
0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65,
0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x88, 0x05, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x74,
0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70,
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72,
0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d,
0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x75,
0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03,
0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63,
0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53,
0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x74, 0x65, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69,
0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb8, 0x05, 0x0a, 0x10, 0x41, 0x6c,
0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34,
0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x69, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03,
0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x75, 0x74, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e,
0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53,
0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74,
0x74, 0x65, 0x52, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74,
0x31, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73,
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x65,
0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74,
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c,
0x50, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x70, 0x73, 0x64, 0x53, 0x74, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b,
0x3a, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28,
0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65,
0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41,
0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d,
0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74,
0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74,
0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x65, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x4c, 0x69,
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x34, 0x0a, 0x09, 0x76, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x73, 0x64, 0x53,
0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61,
0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x65, 0x2e, 0x50, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x70, 0x73, 0x64,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74,
0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74,
0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x53, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74,
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x0a, 0x0b, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20,
0x64, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69,
0x32, 0x27, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53,
0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x22, 0x4b, 0x0a, 0x0f, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x63, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69,
0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x6f, 0x6e, 0x51, 0x63, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, 0x44,
0x07, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x61, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03,
0x75, 0x73, 0x65, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x34,
0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x10, 0x04, 0x22, 0xc0, 0x01, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0a, 0x1e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74,
0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74,
0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
0x32, 0x2a, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10,
0x61, 0x74, 0x65, 0x73, 0x22, 0x3a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
0x69, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
0x22, 0x1e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f, 0x72, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75,
0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x69, 0x6d,
0x22, 0xa8, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
0x61, 0x74, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x00,
0x12, 0x0b, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x09, 0x0a,
0x05, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x10, 0x04,
0x22, 0xc0, 0x01, 0x0a, 0x1e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x69, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75,
0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79,
0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x3a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c,
0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x0a, 0x08, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11,
0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x53, 0x65, 0x6d, 0x69, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x69,
0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x37, 0x0a, 0x0b, 0x53, 0x6e, 0x10, 0x02, 0x22, 0x1e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x0a, 0x06,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x78, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x72, 0x10, 0x01, 0x22, 0xa8, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
0x05, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x68, 0x79, 0x73, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53,
0x69, 0x63, 0x10, 0x03, 0x42, 0x67, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a, 0x6f, 0x79, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74,
0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74, 0x73, 0x2e, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x61, 0x74,
0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x10, 0x44, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69, 0x72,
0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x2c, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73,
0x2d, 0x72, 0x74, 0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x74, 0x61,
0x6f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x69,
0x72, 0x6f, 0x74, 0x6f, 0x33, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x37,
0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a,
0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x78, 0x6c, 0x65, 0x10, 0x01,
0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50,
0x68, 0x79, 0x73, 0x69, 0x63, 0x10, 0x03, 0x42, 0x67, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e,
0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61,
0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
0x42, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x5a, 0x2c, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62,
0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74, 0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -4180,7 +4322,7 @@ func file_device_state_proto_rawDescGZIP() []byte {
} }
var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
var file_device_state_proto_goTypes = []interface{}{ var file_device_state_proto_goTypes = []interface{}{
(SectionType)(0), // 0: state.SectionType (SectionType)(0), // 0: state.SectionType
(Signal_Aspect)(0), // 1: state.Signal.Aspect (Signal_Aspect)(0), // 1: state.Signal.Aspect
@ -4209,66 +4351,71 @@ var file_device_state_proto_goTypes = []interface{}{
(*KeyState)(nil), // 24: state.KeyState (*KeyState)(nil), // 24: state.KeyState
(*MkxJState)(nil), // 25: state.MkxJState (*MkxJState)(nil), // 25: state.MkxJState
(*BaliseState)(nil), // 26: state.BaliseState (*BaliseState)(nil), // 26: state.BaliseState
(*VariationStatus)(nil), // 27: state.VariationStatus (*StationQc)(nil), // 27: state.StationQc
(*AllDevicesStatus)(nil), // 28: state.AllDevicesStatus (*VariationStatus)(nil), // 28: state.VariationStatus
(*PushedDevicesStatus)(nil), // 29: state.PushedDevicesStatus (*AllDevicesStatus)(nil), // 29: state.AllDevicesStatus
(*SimulationStatus)(nil), // 30: state.SimulationStatus (*PushedDevicesStatus)(nil), // 30: state.PushedDevicesStatus
(*SimulationThirdPartyApiService)(nil), // 31: state.SimulationThirdPartyApiService (*SimulationStatus)(nil), // 31: state.SimulationStatus
(*SimulationThirdPartyApiServiceState)(nil), // 32: state.SimulationThirdPartyApiServiceState (*SimulationThirdPartyApiService)(nil), // 32: state.SimulationThirdPartyApiService
nil, // 33: state.SignalState.RelayStateMapEntry (*SimulationThirdPartyApiServiceState)(nil), // 33: state.SimulationThirdPartyApiServiceState
(*request_proto.PointsParam)(nil), // 34: request.PointsParam nil, // 34: state.SignalState.RelayStateMapEntry
(*request_proto.SignalParam)(nil), // 35: request.SignalParam (*StationQc_State)(nil), // 35: state.StationQc.State
(*common_proto.TrainDynamicConfig)(nil), // 36: common.TrainDynamicConfig (*request_proto.PointsParam)(nil), // 36: request.PointsParam
(*common_proto.TrainEndsState)(nil), // 37: common.TrainEndsState (*request_proto.SignalParam)(nil), // 37: request.SignalParam
(*request_proto.PsdParam)(nil), // 38: request.PsdParam (*common_proto.TrainDynamicConfig)(nil), // 38: common.TrainDynamicConfig
(*data_proto.KilometerSystem)(nil), // 39: graphicData.KilometerSystem (*common_proto.TrainEndsState)(nil), // 39: common.TrainEndsState
(*request_proto.PsdParam)(nil), // 40: request.PsdParam
(*data_proto.KilometerSystem)(nil), // 41: graphicData.KilometerSystem
} }
var file_device_state_proto_depIdxs = []int32{ var file_device_state_proto_depIdxs = []int32{
34, // 0: state.SwitchState.param:type_name -> request.PointsParam 36, // 0: state.SwitchState.param:type_name -> request.PointsParam
1, // 1: state.SignalState.aspect:type_name -> state.Signal.Aspect 1, // 1: state.SignalState.aspect:type_name -> state.Signal.Aspect
35, // 2: state.SignalState.param:type_name -> request.SignalParam 37, // 2: state.SignalState.param:type_name -> request.SignalParam
33, // 3: state.SignalState.relayStateMap:type_name -> state.SignalState.RelayStateMapEntry 34, // 3: state.SignalState.relayStateMap:type_name -> state.SignalState.RelayStateMapEntry
18, // 4: state.PlatformState.spksState:type_name -> state.ReplyState 18, // 4: state.PlatformState.spksState:type_name -> state.ReplyState
25, // 5: state.PlatformState.mkxJState:type_name -> state.MkxJState 25, // 5: state.PlatformState.mkxJState:type_name -> state.MkxJState
13, // 6: state.TrainState.dynamicState:type_name -> state.TrainDynamicState 13, // 6: state.TrainState.dynamicState:type_name -> state.TrainDynamicState
14, // 7: state.TrainState.vobcState:type_name -> state.TrainVobcState 14, // 7: state.TrainState.vobcState:type_name -> state.TrainVobcState
36, // 8: state.TrainState.trainDynamicConfig:type_name -> common.TrainDynamicConfig 38, // 8: state.TrainState.trainDynamicConfig:type_name -> common.TrainDynamicConfig
37, // 9: state.TrainState.trainEndsA:type_name -> common.TrainEndsState 39, // 9: state.TrainState.trainEndsA:type_name -> common.TrainEndsState
37, // 10: state.TrainState.trainEndsB:type_name -> common.TrainEndsState 39, // 10: state.TrainState.trainEndsB:type_name -> common.TrainEndsState
16, // 11: state.TrainMapState.trainDynamicConfig:type_name -> state.TrainDynamicConfigMqtt 16, // 11: state.TrainMapState.trainDynamicConfig:type_name -> state.TrainDynamicConfigMqtt
17, // 12: state.TrainMapState.trainEndsA:type_name -> state.TrainEndsStateMqtt 17, // 12: state.TrainMapState.trainEndsA:type_name -> state.TrainEndsStateMqtt
17, // 13: state.TrainMapState.trainEndsB:type_name -> state.TrainEndsStateMqtt 17, // 13: state.TrainMapState.trainEndsB:type_name -> state.TrainEndsStateMqtt
23, // 14: state.PsdState.asdStates:type_name -> state.AsdState 23, // 14: state.PsdState.asdStates:type_name -> state.AsdState
38, // 15: state.PsdState.param:type_name -> request.PsdParam 40, // 15: state.PsdState.param:type_name -> request.PsdParam
18, // 16: state.MkxJState.replyState:type_name -> state.ReplyState 18, // 16: state.MkxJState.replyState:type_name -> state.ReplyState
39, // 17: state.BaliseState.km:type_name -> graphicData.KilometerSystem 41, // 17: state.BaliseState.km:type_name -> graphicData.KilometerSystem
15, // 18: state.VariationStatus.updatedTrain:type_name -> state.TrainMapState 35, // 18: state.StationQc.qdStates:type_name -> state.StationQc.State
7, // 19: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState 35, // 19: state.StationQc.cjStates:type_name -> state.StationQc.State
6, // 20: state.VariationStatus.updatedSection:type_name -> state.SectionState 15, // 20: state.VariationStatus.updatedTrain:type_name -> state.TrainMapState
18, // 21: state.VariationStatus.updatedReply:type_name -> state.ReplyState 7, // 21: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState
15, // 22: state.AllDevicesStatus.trainState:type_name -> state.TrainMapState 6, // 22: state.VariationStatus.updatedSection:type_name -> state.SectionState
7, // 23: state.AllDevicesStatus.switchState:type_name -> state.SwitchState 18, // 23: state.VariationStatus.updatedReply:type_name -> state.ReplyState
6, // 24: state.AllDevicesStatus.sectionState:type_name -> state.SectionState 15, // 24: state.AllDevicesStatus.trainState:type_name -> state.TrainMapState
18, // 25: state.AllDevicesStatus.replyState:type_name -> state.ReplyState 7, // 25: state.AllDevicesStatus.switchState:type_name -> state.SwitchState
8, // 26: state.AllDevicesStatus.signalState:type_name -> state.SignalState 6, // 26: state.AllDevicesStatus.sectionState:type_name -> state.SectionState
19, // 27: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState 18, // 27: state.AllDevicesStatus.replyState:type_name -> state.ReplyState
20, // 28: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState 8, // 28: state.AllDevicesStatus.signalState:type_name -> state.SignalState
21, // 29: state.AllDevicesStatus.LightState:type_name -> state.LightState 19, // 29: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState
22, // 30: state.AllDevicesStatus.psdState:type_name -> state.PsdState 20, // 30: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState
24, // 31: state.AllDevicesStatus.KeyState:type_name -> state.KeyState 21, // 31: state.AllDevicesStatus.LightState:type_name -> state.LightState
10, // 32: state.AllDevicesStatus.platformState:type_name -> state.PlatformState 22, // 32: state.AllDevicesStatus.psdState:type_name -> state.PsdState
26, // 33: state.AllDevicesStatus.baliseState:type_name -> state.BaliseState 24, // 33: state.AllDevicesStatus.KeyState:type_name -> state.KeyState
27, // 34: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus 10, // 34: state.AllDevicesStatus.platformState:type_name -> state.PlatformState
28, // 35: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus 26, // 35: state.AllDevicesStatus.baliseState:type_name -> state.BaliseState
2, // 36: state.SimulationStatus.state:type_name -> state.SimulationStatus.SimulationState 27, // 36: state.AllDevicesStatus.stationQc:type_name -> state.StationQc
32, // 37: state.SimulationThirdPartyApiService.states:type_name -> state.SimulationThirdPartyApiServiceState 28, // 37: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus
3, // 38: state.SimulationThirdPartyApiServiceState.type:type_name -> state.SimulationThirdPartyApiService.Type 29, // 38: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus
4, // 39: state.SimulationThirdPartyApiServiceState.state:type_name -> state.SimulationThirdPartyApiService.State 2, // 39: state.SimulationStatus.state:type_name -> state.SimulationStatus.SimulationState
40, // [40:40] is the sub-list for method output_type 33, // 40: state.SimulationThirdPartyApiService.states:type_name -> state.SimulationThirdPartyApiServiceState
40, // [40:40] is the sub-list for method input_type 3, // 41: state.SimulationThirdPartyApiServiceState.type:type_name -> state.SimulationThirdPartyApiService.Type
40, // [40:40] is the sub-list for extension type_name 4, // 42: state.SimulationThirdPartyApiServiceState.state:type_name -> state.SimulationThirdPartyApiService.State
40, // [40:40] is the sub-list for extension extendee 43, // [43:43] is the sub-list for method output_type
0, // [0:40] is the sub-list for field type_name 43, // [43:43] is the sub-list for method input_type
43, // [43:43] is the sub-list for extension type_name
43, // [43:43] is the sub-list for extension extendee
0, // [0:43] is the sub-list for field type_name
} }
func init() { file_device_state_proto_init() } func init() { file_device_state_proto_init() }
@ -4542,7 +4689,7 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VariationStatus); i { switch v := v.(*StationQc); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -4554,7 +4701,7 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AllDevicesStatus); i { switch v := v.(*VariationStatus); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -4566,7 +4713,7 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PushedDevicesStatus); i { switch v := v.(*AllDevicesStatus); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -4578,7 +4725,7 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimulationStatus); i { switch v := v.(*PushedDevicesStatus); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -4590,7 +4737,7 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimulationThirdPartyApiService); i { switch v := v.(*SimulationStatus); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -4602,6 +4749,18 @@ func file_device_state_proto_init() {
} }
} }
file_device_state_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { file_device_state_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimulationThirdPartyApiService); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimulationThirdPartyApiServiceState); i { switch v := v.(*SimulationThirdPartyApiServiceState); i {
case 0: case 0:
return &v.state return &v.state
@ -4613,6 +4772,18 @@ func file_device_state_proto_init() {
return nil return nil
} }
} }
file_device_state_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StationQc_State); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -4620,7 +4791,7 @@ func file_device_state_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_device_state_proto_rawDesc, RawDescriptor: file_device_state_proto_rawDesc,
NumEnums: 5, NumEnums: 5,
NumMessages: 29, NumMessages: 31,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -2,6 +2,7 @@ package message_server
import ( import (
"fmt" "fmt"
"joylink.club/iot/service/model"
"time" "time"
"joylink.club/bj-rtsts-server/dto/state_proto" "joylink.club/bj-rtsts-server/dto/state_proto"
@ -21,10 +22,15 @@ func NewRccMs(vs *memory.VerifySimulation, mapId int32) ms_api.MsgTask {
if err != nil { if err != nil {
return err return err
} }
stationQc, err := collectStationQcState(vs, mapId)
if err != nil {
return err
}
ststes := &state_proto.PushedDevicesStatus{ ststes := &state_proto.PushedDevicesStatus{
All: true, All: true,
AllStatus: &state_proto.AllDevicesStatus{ AllStatus: &state_proto.AllDevicesStatus{
ReplyState: relayStates, ReplyState: relayStates,
StationQc: stationQc,
}, },
} }
mqtt.GetMsgClient().PubRCCState(vs.SimulationId, mapId, ststes) mqtt.GetMsgClient().PubRCCState(vs.SimulationId, mapId, ststes)
@ -52,3 +58,43 @@ func collectRelayState(world ecs.World, mapId int32) ([]*state_proto.ReplyState,
} }
return replyStateArr, nil return replyStateArr, nil
} }
// 收集车站联锁驱采表状态
func collectStationQcState(simulation *memory.VerifySimulation, mapId int32) (*state_proto.StationQc, error) {
state := &state_proto.StationQc{}
relayData := memory.QueryGiData[*data_proto.RelayCabinetGraphicStorage](mapId)
if relayData.CiQdList == nil && relayData.CiCjList == nil {
return state, nil
}
stationCode := relayData.UniqueIdPrefix.BelongsConcentrationStation
for _, qcEntry := range entity.GetWorldData(simulation.World).CiQcEntities {
qcTable := component.CiQcTableType.Get(qcEntry)
structure := simulation.UidMap[qcTable.EcsUid]
if structure.Code != stationCode {
continue
}
//驱采表实体与地图对应后->
qcState := component.CiQcStateType.Get(qcEntry)
if len(qcTable.QdBits) != 0 {
qdBits := model.DecodeBools(qcState.Qbs)
for i, qdData := range qcTable.QdBits {
state.QdStates = append(state.QdStates, &state_proto.StationQc_State{
Row: qdData.Row,
Col: qdData.Col,
On: qdBits[i],
})
}
}
if len(qcTable.CjBits) != 0 {
cjBits := model.DecodeBools(qcState.Cbs)
for i, cjData := range qcTable.CjBits {
state.CjStates = append(state.CjStates, &state_proto.StationQc_State{
Row: cjData.Row,
Col: cjData.Col,
On: cjBits[i],
})
}
}
}
return state, nil
}

View File

@ -549,13 +549,25 @@ func collectPlatformStates(world ecs.World, mapId int32) ([]*state_proto.Platfor
if entry.HasComponent(component.SpkElectronicType) { // SPKS继电器 if entry.HasComponent(component.SpkElectronicType) { // SPKS继电器
spkElectronic := component.SpkElectronicType.Get(entry) spkElectronic := component.SpkElectronicType.Get(entry)
if isX { if isX {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKSX旁路", Xh: getRelayXqVal(spkElectronic.SPKSXPLAJ)}) if spkElectronic.SPKSXPLAJ != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS1", Xh: getRelayXqVal(spkElectronic.SPKSX1J)}) sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKSX旁路", Xh: getRelayXqVal(spkElectronic.SPKSXPLAJ)})
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS3", Xh: getRelayXqVal(spkElectronic.SPKSX3J)}) }
if spkElectronic.SPKSX1J != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS1", Xh: getRelayXqVal(spkElectronic.SPKSX1J)})
}
if spkElectronic.SPKSX3J != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS3", Xh: getRelayXqVal(spkElectronic.SPKSX3J)})
}
} else { } else {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKSS旁路", Xh: getRelayXqVal(spkElectronic.SPKSSPLAJ)}) if spkElectronic.SPKSSPLAJ != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS2", Xh: getRelayXqVal(spkElectronic.SPKSS2J)}) sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKSS旁路", Xh: getRelayXqVal(spkElectronic.SPKSSPLAJ)})
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS4", Xh: getRelayXqVal(spkElectronic.SPKSS4J)}) }
if spkElectronic.SPKSS2J != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS2", Xh: getRelayXqVal(spkElectronic.SPKSS2J)})
}
if spkElectronic.SPKSS4J != nil {
sta.SpksState = append(sta.SpksState, &state_proto.ReplyState{Code: "SPKS4", Xh: getRelayXqVal(spkElectronic.SPKSS4J)})
}
} }
} }
psdId := platformScreenDoorMap[pid] psdId := platformScreenDoorMap[pid]

@ -1 +1 @@
Subproject commit 7372a5fa72e0dbd55ecdcd3fb9161a7ef4af0998 Subproject commit 2cc7564772cdf80b74b3043037375cca0b3d24c8

View File

@ -74,10 +74,9 @@ type DynamicsTrainInfo struct {
TailRadarSpeed float32 TailRadarSpeed float32
//加速度(m/s^2) //加速度(m/s^2)
Acceleration float32 Acceleration float32
// 对应动力学生命周期值 //此次计算所使用的半实物消息的生命信号
VobcLifeSignal uint16 VobcLifeSignal uint16
//位移mm
//列车位移 单位mm
Displacement uint16 Displacement uint16
} }

View File

@ -562,6 +562,7 @@ func buildRepositoryAllUidsMap(mapIds []int32, repo *repository.Repository) map[
saveToAllUidMap(u.CurvatureIds) saveToAllUidMap(u.CurvatureIds)
saveToAllUidMap(u.ButtonIds) saveToAllUidMap(u.ButtonIds)
saveToAllUidMap(u.SpksSwitchIds) saveToAllUidMap(u.SpksSwitchIds)
saveToAllUidMap(u.StationIds)
continue continue
} }
} }

View File

@ -43,7 +43,7 @@ type VerifySimulation struct {
//Rtss仿真世界的 //Rtss仿真世界的
World ecs.World World ecs.World
//设备UID映射 key-uid //设备UID映射 key-uid
uidMap map[string]*elementIdStructure UidMap map[string]*elementIdStructure
// 运行环境配置 // 运行环境配置
runConfig *config.ThridPartyConfig runConfig *config.ThridPartyConfig
} }
@ -136,7 +136,7 @@ func CreateSimulation(projectId int32, mapIds []int32, runConfig *dto.ProjectRun
// 获取仿真世界信息 // 获取仿真世界信息
func (s *VerifySimulation) GetComIdByUid(uid string) uint32 { func (s *VerifySimulation) GetComIdByUid(uid string) uint32 {
es := s.uidMap es := s.UidMap
if es == nil { if es == nil {
panic(&dto.ErrorDto{Code: dto.DataNotExist, Message: "无映射信息"}) panic(&dto.ErrorDto{Code: dto.DataNotExist, Message: "无映射信息"})
} }
@ -220,7 +220,7 @@ func (s *VerifySimulation) CollectSectionStatus(city string, lineId string, cent
func (s *VerifySimulation) CollectDynamicsTurnoutInfo() *message.DynamicsTurnoutInfo { func (s *VerifySimulation) CollectDynamicsTurnoutInfo() *message.DynamicsTurnoutInfo {
turnoutState := &message.DynamicsTurnoutInfo{} turnoutState := &message.DynamicsTurnoutInfo{}
for _, turnout := range s.Repo.TurnoutList() { for _, turnout := range s.Repo.TurnoutList() {
sta := s.uidMap[turnout.Id()] sta := s.UidMap[turnout.Id()]
if sta == nil { if sta == nil {
continue continue
} }
@ -531,7 +531,7 @@ func (s *VerifySimulation) initRepository() error {
s.Repo = repo s.Repo = repo
s.Memory = NewWaysideMemory() s.Memory = NewWaysideMemory()
// 构建所有UID映射关系 // 构建所有UID映射关系
s.uidMap = buildRepositoryAllUidsMap(s.MapIds, s.Repo) s.UidMap = buildRepositoryAllUidsMap(s.MapIds, s.Repo)
return nil return nil
} }