rts-sim-testing-service/dto/state_proto/device_state.pb.go
2024-01-17 17:54:30 +08:00

3886 lines
134 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.32.0
// protoc v4.23.1
// source: device_state.proto
package state_proto
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
common_proto "joylink.club/bj-rtsts-server/dto/common_proto"
data_proto "joylink.club/bj-rtsts-server/dto/data_proto"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 区段类型
type SectionType int32
const (
SectionType_Any SectionType = 0
// 计轴区段
SectionType_Axle SectionType = 1
// 逻辑区段
SectionType_Logic SectionType = 2
// 物理区段
SectionType_Physic SectionType = 3
)
// Enum value maps for SectionType.
var (
SectionType_name = map[int32]string{
0: "Any",
1: "Axle",
2: "Logic",
3: "Physic",
}
SectionType_value = map[string]int32{
"Any": 0,
"Axle": 1,
"Logic": 2,
"Physic": 3,
}
)
func (x SectionType) Enum() *SectionType {
p := new(SectionType)
*p = x
return p
}
func (x SectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SectionType) Descriptor() protoreflect.EnumDescriptor {
return file_device_state_proto_enumTypes[0].Descriptor()
}
func (SectionType) Type() protoreflect.EnumType {
return &file_device_state_proto_enumTypes[0]
}
func (x SectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SectionType.Descriptor instead.
func (SectionType) EnumDescriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{0}
}
// 信号机显示枚举
type Signal_Aspect int32
const (
// 无用值
Signal_Non Signal_Aspect = 0
// 物理灭灯
Signal_OFF Signal_Aspect = 1
// 绿灯亮
Signal_L Signal_Aspect = 2
// 红
Signal_H Signal_Aspect = 3
// 黄
Signal_U Signal_Aspect = 4
// 红黄
Signal_HU Signal_Aspect = 5
// 白
Signal_B Signal_Aspect = 6
// 蓝
Signal_A Signal_Aspect = 7
)
// Enum value maps for Signal_Aspect.
var (
Signal_Aspect_name = map[int32]string{
0: "Non",
1: "OFF",
2: "L",
3: "H",
4: "U",
5: "HU",
6: "B",
7: "A",
}
Signal_Aspect_value = map[string]int32{
"Non": 0,
"OFF": 1,
"L": 2,
"H": 3,
"U": 4,
"HU": 5,
"B": 6,
"A": 7,
}
)
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_device_state_proto_enumTypes[1].Descriptor()
}
func (Signal_Aspect) Type() protoreflect.EnumType {
return &file_device_state_proto_enumTypes[1]
}
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_device_state_proto_rawDescGZIP(), []int{4, 0}
}
type SimulationStatus_SimulationState int32
const (
SimulationStatus_PAUSE SimulationStatus_SimulationState = 0
SimulationStatus_START SimulationStatus_SimulationState = 1
SimulationStatus_ERROR SimulationStatus_SimulationState = 2
SimulationStatus_DESTROY SimulationStatus_SimulationState = 3
)
// Enum value maps for SimulationStatus_SimulationState.
var (
SimulationStatus_SimulationState_name = map[int32]string{
0: "PAUSE",
1: "START",
2: "ERROR",
3: "DESTROY",
}
SimulationStatus_SimulationState_value = map[string]int32{
"PAUSE": 0,
"START": 1,
"ERROR": 2,
"DESTROY": 3,
}
)
func (x SimulationStatus_SimulationState) Enum() *SimulationStatus_SimulationState {
p := new(SimulationStatus_SimulationState)
*p = x
return p
}
func (x SimulationStatus_SimulationState) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SimulationStatus_SimulationState) Descriptor() protoreflect.EnumDescriptor {
return file_device_state_proto_enumTypes[2].Descriptor()
}
func (SimulationStatus_SimulationState) Type() protoreflect.EnumType {
return &file_device_state_proto_enumTypes[2]
}
func (x SimulationStatus_SimulationState) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SimulationStatus_SimulationState.Descriptor instead.
func (SimulationStatus_SimulationState) EnumDescriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{23, 0}
}
// 相邻端点定义的link的状态
type LinkState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// link索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// link上的列车id列表
TrainId []string `protobuf:"bytes,2,rep,name=trainId,proto3" json:"trainId,omitempty"`
}
func (x *LinkState) Reset() {
*x = LinkState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LinkState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LinkState) ProtoMessage() {}
func (x *LinkState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LinkState.ProtoReflect.Descriptor instead.
func (*LinkState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{0}
}
func (x *LinkState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *LinkState) GetTrainId() []string {
if x != nil {
return x.TrainId
}
return nil
}
// 区段状态
type SectionState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 区段索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// 区段占用
// true-占用false-出清
Occupied bool `protobuf:"varint,3,opt,name=occupied,proto3" json:"occupied,omitempty"`
// 计轴故障
AxleFault bool `protobuf:"varint,4,opt,name=axleFault,proto3" json:"axleFault,omitempty"`
}
func (x *SectionState) Reset() {
*x = SectionState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionState) ProtoMessage() {}
func (x *SectionState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionState.ProtoReflect.Descriptor instead.
func (*SectionState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{1}
}
func (x *SectionState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *SectionState) GetOccupied() bool {
if x != nil {
return x.Occupied
}
return false
}
func (x *SectionState) GetAxleFault() bool {
if x != nil {
return x.AxleFault
}
return false
}
// 道岔状态
type SwitchState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 道岔索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// 道岔处于定位(表示)
Normal bool `protobuf:"varint,2,opt,name=normal,proto3" json:"normal,omitempty"`
// 道岔处于反位(表示)
Reverse bool `protobuf:"varint,3,opt,name=reverse,proto3" json:"reverse,omitempty"`
// 道岔处于定位(实际)
Dw bool `protobuf:"varint,4,opt,name=dw,proto3" json:"dw,omitempty"`
// 道岔处于反位(实际)
Fw bool `protobuf:"varint,5,opt,name=fw,proto3" json:"fw,omitempty"`
// 是否强制(屏蔽联锁驱动)
Force bool `protobuf:"varint,6,opt,name=force,proto3" json:"force,omitempty"`
// 是否有失表故障
Sb bool `protobuf:"varint,7,opt,name=sb,proto3" json:"sb,omitempty"`
// 是否有定位失表故障
Dwsb bool `protobuf:"varint,8,opt,name=dwsb,proto3" json:"dwsb,omitempty"`
// 是否有反位失表故障
Fwsb bool `protobuf:"varint,9,opt,name=fwsb,proto3" json:"fwsb,omitempty"`
// 是否有挤岔故障
Jc bool `protobuf:"varint,10,opt,name=jc,proto3" json:"jc,omitempty"`
// 定操驱动
Qdc bool `protobuf:"varint,11,opt,name=qdc,proto3" json:"qdc,omitempty"`
// 反操驱动
Qfc bool `protobuf:"varint,12,opt,name=qfc,proto3" json:"qfc,omitempty"`
// 允许操驱动
Qyc bool `protobuf:"varint,13,opt,name=qyc,proto3" json:"qyc,omitempty"`
// 是否定操
Dc bool `protobuf:"varint,14,opt,name=dc,proto3" json:"dc,omitempty"`
// 是否反操
Fc bool `protobuf:"varint,15,opt,name=fc,proto3" json:"fc,omitempty"`
// 是否允许操作
Yc bool `protobuf:"varint,16,opt,name=yc,proto3" json:"yc,omitempty"`
// 是否占用
Occupied bool `protobuf:"varint,17,opt,name=occupied,proto3" json:"occupied,omitempty"`
}
func (x *SwitchState) Reset() {
*x = SwitchState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SwitchState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SwitchState) ProtoMessage() {}
func (x *SwitchState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SwitchState.ProtoReflect.Descriptor instead.
func (*SwitchState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{2}
}
func (x *SwitchState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *SwitchState) GetNormal() bool {
if x != nil {
return x.Normal
}
return false
}
func (x *SwitchState) GetReverse() bool {
if x != nil {
return x.Reverse
}
return false
}
func (x *SwitchState) GetDw() bool {
if x != nil {
return x.Dw
}
return false
}
func (x *SwitchState) GetFw() bool {
if x != nil {
return x.Fw
}
return false
}
func (x *SwitchState) GetForce() bool {
if x != nil {
return x.Force
}
return false
}
func (x *SwitchState) GetSb() bool {
if x != nil {
return x.Sb
}
return false
}
func (x *SwitchState) GetDwsb() bool {
if x != nil {
return x.Dwsb
}
return false
}
func (x *SwitchState) GetFwsb() bool {
if x != nil {
return x.Fwsb
}
return false
}
func (x *SwitchState) GetJc() bool {
if x != nil {
return x.Jc
}
return false
}
func (x *SwitchState) GetQdc() bool {
if x != nil {
return x.Qdc
}
return false
}
func (x *SwitchState) GetQfc() bool {
if x != nil {
return x.Qfc
}
return false
}
func (x *SwitchState) GetQyc() bool {
if x != nil {
return x.Qyc
}
return false
}
func (x *SwitchState) GetDc() bool {
if x != nil {
return x.Dc
}
return false
}
func (x *SwitchState) GetFc() bool {
if x != nil {
return x.Fc
}
return false
}
func (x *SwitchState) GetYc() bool {
if x != nil {
return x.Yc
}
return false
}
func (x *SwitchState) GetOccupied() bool {
if x != nil {
return x.Occupied
}
return false
}
// 信号机状态
type SignalState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 信号机索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// 信号机的灯列表
Aspect Signal_Aspect `protobuf:"varint,2,opt,name=aspect,proto3,enum=state.Signal_Aspect" json:"aspect,omitempty"`
}
func (x *SignalState) Reset() {
*x = SignalState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SignalState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SignalState) ProtoMessage() {}
func (x *SignalState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SignalState.ProtoReflect.Descriptor instead.
func (*SignalState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{3}
}
func (x *SignalState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *SignalState) GetAspect() Signal_Aspect {
if x != nil {
return x.Aspect
}
return Signal_Non
}
// 信号机显示定义
type Signal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Signal) Reset() {
*x = Signal{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_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_device_state_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Signal.ProtoReflect.Descriptor instead.
func (*Signal) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{4}
}
// 站台状态
type PlatformState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 站台索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// EMP继电器状态
Empj bool `protobuf:"varint,2,opt,name=empj,proto3" json:"empj,omitempty"`
// SPKS继电器状态
SpksState []*ReplyState `protobuf:"bytes,3,rep,name=spksState,proto3" json:"spksState,omitempty"`
// 门控箱继电器状态
MkxJState *MkxJState `protobuf:"bytes,4,opt,name=mkxJState,proto3" json:"mkxJState,omitempty"`
}
func (x *PlatformState) Reset() {
*x = PlatformState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlatformState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlatformState) ProtoMessage() {}
func (x *PlatformState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 PlatformState.ProtoReflect.Descriptor instead.
func (*PlatformState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{5}
}
func (x *PlatformState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *PlatformState) GetEmpj() bool {
if x != nil {
return x.Empj
}
return false
}
func (x *PlatformState) GetSpksState() []*ReplyState {
if x != nil {
return x.SpksState
}
return nil
}
func (x *PlatformState) GetMkxJState() *MkxJState {
if x != nil {
return x.MkxJState
}
return nil
}
// 车站状态
type StationState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 车站索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *StationState) Reset() {
*x = StationState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StationState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StationState) ProtoMessage() {}
func (x *StationState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 StationState.ProtoReflect.Descriptor instead.
func (*StationState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{6}
}
func (x *StationState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
// 列车状态
type TrainState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 列车索引
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// 列车初始link运行方向
Up bool `protobuf:"varint,2,opt,name=up,proto3" json:"up,omitempty"`
// 列车初始速度
Speed float32 `protobuf:"fixed32,3,opt,name=speed,proto3" json:"speed,omitempty"`
// 列车长度,1=1mm
TrainLength int64 `protobuf:"varint,4,opt,name=trainLength,proto3" json:"trainLength,omitempty"`
// 列车是否显示
Show bool `protobuf:"varint,5,opt,name=show,proto3" json:"show,omitempty"`
// 列车车头所在设备ID
HeadDeviceId uint32 `protobuf:"varint,6,opt,name=headDeviceId,proto3" json:"headDeviceId,omitempty"`
// 列车车头所在设备偏移量
HeadOffset int64 `protobuf:"varint,7,opt,name=headOffset,proto3" json:"headOffset,omitempty"`
// 设备端口
DevicePort string `protobuf:"bytes,8,opt,name=devicePort,proto3" json:"devicePort,omitempty"`
// 运行方向指向(区段A-B,道岔:-> 岔心)
PointTo bool `protobuf:"varint,9,opt,name=pointTo,proto3" json:"pointTo,omitempty"`
// 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小)
RunDirection bool `protobuf:"varint,10,opt,name=runDirection,proto3" json:"runDirection,omitempty"`
// 列车车头方向
HeadDirection bool `protobuf:"varint,11,opt,name=headDirection,proto3" json:"headDirection,omitempty"`
// 动力学信息
DynamicState *TrainDynamicState `protobuf:"bytes,12,opt,name=dynamicState,proto3" json:"dynamicState,omitempty"`
// 半实物信息
VobcState *TrainVobcState `protobuf:"bytes,13,opt,name=vobcState,proto3" json:"vobcState,omitempty"`
// 所在公里标
TrainKilometer int64 `protobuf:"varint,14,opt,name=trainKilometer,proto3" json:"trainKilometer,omitempty"`
// 控制响应延时
ControlDelayTime int64 `protobuf:"varint,15,opt,name=controlDelayTime,proto3" json:"controlDelayTime,omitempty"`
// 列车轮径
WheelDiameter int32 `protobuf:"varint,16,opt,name=wheelDiameter,proto3" json:"wheelDiameter,omitempty"`
// 列车动力学配置
TrainDynamicConfig *common_proto.TrainDynamicConfig `protobuf:"bytes,17,opt,name=trainDynamicConfig,proto3" json:"trainDynamicConfig,omitempty"`
// 列车A端
TrainEndsA *common_proto.TrainEndsState `protobuf:"bytes,18,opt,name=trainEndsA,proto3" json:"trainEndsA,omitempty"`
// 列车B端
TrainEndsB *common_proto.TrainEndsState `protobuf:"bytes,19,opt,name=trainEndsB,proto3" json:"trainEndsB,omitempty"`
}
func (x *TrainState) Reset() {
*x = TrainState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainState) ProtoMessage() {}
func (x *TrainState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 TrainState.ProtoReflect.Descriptor instead.
func (*TrainState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{7}
}
func (x *TrainState) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TrainState) GetUp() bool {
if x != nil {
return x.Up
}
return false
}
func (x *TrainState) GetSpeed() float32 {
if x != nil {
return x.Speed
}
return 0
}
func (x *TrainState) GetTrainLength() int64 {
if x != nil {
return x.TrainLength
}
return 0
}
func (x *TrainState) GetShow() bool {
if x != nil {
return x.Show
}
return false
}
func (x *TrainState) GetHeadDeviceId() uint32 {
if x != nil {
return x.HeadDeviceId
}
return 0
}
func (x *TrainState) GetHeadOffset() int64 {
if x != nil {
return x.HeadOffset
}
return 0
}
func (x *TrainState) GetDevicePort() string {
if x != nil {
return x.DevicePort
}
return ""
}
func (x *TrainState) GetPointTo() bool {
if x != nil {
return x.PointTo
}
return false
}
func (x *TrainState) GetRunDirection() bool {
if x != nil {
return x.RunDirection
}
return false
}
func (x *TrainState) GetHeadDirection() bool {
if x != nil {
return x.HeadDirection
}
return false
}
func (x *TrainState) GetDynamicState() *TrainDynamicState {
if x != nil {
return x.DynamicState
}
return nil
}
func (x *TrainState) GetVobcState() *TrainVobcState {
if x != nil {
return x.VobcState
}
return nil
}
func (x *TrainState) GetTrainKilometer() int64 {
if x != nil {
return x.TrainKilometer
}
return 0
}
func (x *TrainState) GetControlDelayTime() int64 {
if x != nil {
return x.ControlDelayTime
}
return 0
}
func (x *TrainState) GetWheelDiameter() int32 {
if x != nil {
return x.WheelDiameter
}
return 0
}
func (x *TrainState) GetTrainDynamicConfig() *common_proto.TrainDynamicConfig {
if x != nil {
return x.TrainDynamicConfig
}
return nil
}
func (x *TrainState) GetTrainEndsA() *common_proto.TrainEndsState {
if x != nil {
return x.TrainEndsA
}
return nil
}
func (x *TrainState) GetTrainEndsB() *common_proto.TrainEndsState {
if x != nil {
return x.TrainEndsB
}
return nil
}
// 动力学列车状态
type TrainDynamicState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 生命信号 每个周期+1
Heartbeat int32 `protobuf:"varint,1,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"`
// 车头所在link的索引
HeadLinkId string `protobuf:"bytes,2,opt,name=headLinkId,proto3" json:"headLinkId,omitempty"`
// 车头所在link内的偏移量单位为mm
HeadLinkOffset int64 `protobuf:"varint,3,opt,name=headLinkOffset,proto3" json:"headLinkOffset,omitempty"`
// 车尾所在link的索引
TailLinkId string `protobuf:"bytes,4,opt,name=tailLinkId,proto3" json:"tailLinkId,omitempty"`
// 车尾所在link内的偏移量单位为mm
TailLinkOffset int64 `protobuf:"varint,5,opt,name=tailLinkOffset,proto3" json:"tailLinkOffset,omitempty"`
// 列车所占用的link的索引的列表
// 顺序为从车头到车尾
OccupiedLinkIndex []string `protobuf:"bytes,6,rep,name=occupiedLinkIndex,proto3" json:"occupiedLinkIndex,omitempty"`
// 列车所在位置坡度值,1=1‰
Slope int32 `protobuf:"varint,7,opt,name=slope,proto3" json:"slope,omitempty"`
// 列车所在位置坡度走势,1=上坡true0=下坡false
Upslope bool `protobuf:"varint,8,opt,name=upslope,proto3" json:"upslope,omitempty"`
// 列车当前运行方向,1 =上行true 0 =下行false
RunningUp bool `protobuf:"varint,9,opt,name=runningUp,proto3" json:"runningUp,omitempty"`
// 实际运行阻力NtotalResistance,1=1KN
RunningResistanceSum float32 `protobuf:"fixed32,10,opt,name=runningResistanceSum,proto3" json:"runningResistanceSum,omitempty"`
// 阻力1空气阻力NairResistance,1=1KN
AirResistance float32 `protobuf:"fixed32,11,opt,name=airResistance,proto3" json:"airResistance,omitempty"`
// 阻力2坡道阻力NslopeResistance,1=1KN
RampResistance float32 `protobuf:"fixed32,12,opt,name=rampResistance,proto3" json:"rampResistance,omitempty"`
// 阻力3曲线阻力NcurveResistance,1=1KN
CurveResistance float32 `protobuf:"fixed32,13,opt,name=curveResistance,proto3" json:"curveResistance,omitempty"`
// 列车运行速度m/sspeed,1=1km/h
Speed int32 `protobuf:"varint,14,opt,name=speed,proto3" json:"speed,omitempty"`
// 头车速传1速度值m/sheadSpeed1,1=1km/h
HeadSensorSpeed1 int32 `protobuf:"varint,15,opt,name=headSensorSpeed1,proto3" json:"headSensorSpeed1,omitempty"`
// 头车速度2速度值m/sheadSpeed2,1=1km/h
HeadSensorSpeed2 int32 `protobuf:"varint,16,opt,name=headSensorSpeed2,proto3" json:"headSensorSpeed2,omitempty"`
// 尾车速传1速度值m/stailSpeed1,1=1km/h
TailSensorSpeed1 int32 `protobuf:"varint,17,opt,name=tailSensorSpeed1,proto3" json:"tailSensorSpeed1,omitempty"`
// 尾车速度2速度值m/stailSpeed2,1=1km/h
TailSensorSpeed2 int32 `protobuf:"varint,18,opt,name=tailSensorSpeed2,proto3" json:"tailSensorSpeed2,omitempty"`
// 头车雷达速度值m/sheadRadarSpeed,1=1km/h
HeadRadarSpeed int32 `protobuf:"varint,19,opt,name=headRadarSpeed,proto3" json:"headRadarSpeed,omitempty"`
// 尾车雷达速度值m/stailRadarSpeed,1=1km/h
TailRadarSpeed int32 `protobuf:"varint,20,opt,name=tailRadarSpeed,proto3" json:"tailRadarSpeed,omitempty"`
// 通讯中断
UdpInterruption bool `protobuf:"varint,21,opt,name=udpInterruption,proto3" json:"udpInterruption,omitempty"`
// 加速
Acceleration float32 `protobuf:"fixed32,22,opt,name=acceleration,proto3" json:"acceleration,omitempty"`
}
func (x *TrainDynamicState) Reset() {
*x = TrainDynamicState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainDynamicState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainDynamicState) ProtoMessage() {}
func (x *TrainDynamicState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrainDynamicState.ProtoReflect.Descriptor instead.
func (*TrainDynamicState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{8}
}
func (x *TrainDynamicState) GetHeartbeat() int32 {
if x != nil {
return x.Heartbeat
}
return 0
}
func (x *TrainDynamicState) GetHeadLinkId() string {
if x != nil {
return x.HeadLinkId
}
return ""
}
func (x *TrainDynamicState) GetHeadLinkOffset() int64 {
if x != nil {
return x.HeadLinkOffset
}
return 0
}
func (x *TrainDynamicState) GetTailLinkId() string {
if x != nil {
return x.TailLinkId
}
return ""
}
func (x *TrainDynamicState) GetTailLinkOffset() int64 {
if x != nil {
return x.TailLinkOffset
}
return 0
}
func (x *TrainDynamicState) GetOccupiedLinkIndex() []string {
if x != nil {
return x.OccupiedLinkIndex
}
return nil
}
func (x *TrainDynamicState) GetSlope() int32 {
if x != nil {
return x.Slope
}
return 0
}
func (x *TrainDynamicState) GetUpslope() bool {
if x != nil {
return x.Upslope
}
return false
}
func (x *TrainDynamicState) GetRunningUp() bool {
if x != nil {
return x.RunningUp
}
return false
}
func (x *TrainDynamicState) GetRunningResistanceSum() float32 {
if x != nil {
return x.RunningResistanceSum
}
return 0
}
func (x *TrainDynamicState) GetAirResistance() float32 {
if x != nil {
return x.AirResistance
}
return 0
}
func (x *TrainDynamicState) GetRampResistance() float32 {
if x != nil {
return x.RampResistance
}
return 0
}
func (x *TrainDynamicState) GetCurveResistance() float32 {
if x != nil {
return x.CurveResistance
}
return 0
}
func (x *TrainDynamicState) GetSpeed() int32 {
if x != nil {
return x.Speed
}
return 0
}
func (x *TrainDynamicState) GetHeadSensorSpeed1() int32 {
if x != nil {
return x.HeadSensorSpeed1
}
return 0
}
func (x *TrainDynamicState) GetHeadSensorSpeed2() int32 {
if x != nil {
return x.HeadSensorSpeed2
}
return 0
}
func (x *TrainDynamicState) GetTailSensorSpeed1() int32 {
if x != nil {
return x.TailSensorSpeed1
}
return 0
}
func (x *TrainDynamicState) GetTailSensorSpeed2() int32 {
if x != nil {
return x.TailSensorSpeed2
}
return 0
}
func (x *TrainDynamicState) GetHeadRadarSpeed() int32 {
if x != nil {
return x.HeadRadarSpeed
}
return 0
}
func (x *TrainDynamicState) GetTailRadarSpeed() int32 {
if x != nil {
return x.TailRadarSpeed
}
return 0
}
func (x *TrainDynamicState) GetUdpInterruption() bool {
if x != nil {
return x.UdpInterruption
}
return false
}
func (x *TrainDynamicState) GetAcceleration() float32 {
if x != nil {
return x.Acceleration
}
return 0
}
// vobc发过来的列车信息
type TrainVobcState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 生命信号 每个周期+1
LifeSignal int32 `protobuf:"varint,1,opt,name=lifeSignal,proto3" json:"lifeSignal,omitempty"`
// TC1激活状态 1=激活
Tc1Active bool `protobuf:"varint,2,opt,name=tc1Active,proto3" json:"tc1Active,omitempty"`
// TC2激活状态 1=激活
Tc2Active bool `protobuf:"varint,3,opt,name=tc2Active,proto3" json:"tc2Active,omitempty"`
// 列车方向向前 1=方向向前
DirectionForward bool `protobuf:"varint,4,opt,name=directionForward,proto3" json:"directionForward,omitempty"`
// 列车方向向后 1=方向向后
DirectionBackward bool `protobuf:"varint,5,opt,name=directionBackward,proto3" json:"directionBackward,omitempty"`
// 列车牵引状态 1=牵引
TractionStatus bool `protobuf:"varint,6,opt,name=tractionStatus,proto3" json:"tractionStatus,omitempty"`
// 列车制动状态 1=制动
BrakingStatus bool `protobuf:"varint,7,opt,name=brakingStatus,proto3" json:"brakingStatus,omitempty"`
// 列车紧急制动状态 1=紧急制动
EmergencyBrakingStatus bool `protobuf:"varint,8,opt,name=emergencyBrakingStatus,proto3" json:"emergencyBrakingStatus,omitempty"`
// 列车折返状态AR 1=折返
TurnbackStatus bool `protobuf:"varint,9,opt,name=turnbackStatus,proto3" json:"turnbackStatus,omitempty"`
// 跳跃状态 1=跳跃
JumpStatus bool `protobuf:"varint,10,opt,name=jumpStatus,proto3" json:"jumpStatus,omitempty"`
// ATO模式 1=ATO模式
Ato bool `protobuf:"varint,11,opt,name=ato,proto3" json:"ato,omitempty"`
// FAM模式 1=FAM模式
Fam bool `protobuf:"varint,12,opt,name=fam,proto3" json:"fam,omitempty"`
// CAM模式 1=CAM模式
Cam bool `protobuf:"varint,13,opt,name=cam,proto3" json:"cam,omitempty"`
// 牵引安全回路 1=牵引安全切除
TractionSafetyCircuit bool `protobuf:"varint,14,opt,name=tractionSafetyCircuit,proto3" json:"tractionSafetyCircuit,omitempty"`
// 停放制动状态 1=停放施加
ParkingBrakeStatus bool `protobuf:"varint,15,opt,name=parkingBrakeStatus,proto3" json:"parkingBrakeStatus,omitempty"`
// 保持制动状态 1=保持制动施加
MaintainBrakeStatus bool `protobuf:"varint,16,opt,name=maintainBrakeStatus,proto3" json:"maintainBrakeStatus,omitempty"`
// 列车牵引力 100=1KN
TractionForce int64 `protobuf:"varint,17,opt,name=tractionForce,proto3" json:"tractionForce,omitempty"`
// 列车制动力 100=1KN
BrakeForce int64 `protobuf:"varint,18,opt,name=brakeForce,proto3" json:"brakeForce,omitempty"`
// 【列车载荷 100=1ton
TrainLoad int64 `protobuf:"varint,19,opt,name=trainLoad,proto3" json:"trainLoad,omitempty"`
// 列车开左门指令 1=开门
LeftDoorOpenCommand bool `protobuf:"varint,20,opt,name=leftDoorOpenCommand,proto3" json:"leftDoorOpenCommand,omitempty"`
// 列车开右门指令 1=开门
RightDoorOpenCommand bool `protobuf:"varint,21,opt,name=rightDoorOpenCommand,proto3" json:"rightDoorOpenCommand,omitempty"`
// 列车关左门指令 1=关门
LeftDoorCloseCommand bool `protobuf:"varint,22,opt,name=leftDoorCloseCommand,proto3" json:"leftDoorCloseCommand,omitempty"`
// 列车关右门指令 1=关门
RightDoorCloseCommand bool `protobuf:"varint,23,opt,name=rightDoorCloseCommand,proto3" json:"rightDoorCloseCommand,omitempty"`
// 整列车门关好 1=门关好
AllDoorClose bool `protobuf:"varint,24,opt,name=allDoorClose,proto3" json:"allDoorClose,omitempty"`
// 通讯中断
UdpInterruption bool `protobuf:"varint,25,opt,name=udpInterruption,proto3" json:"udpInterruption,omitempty"`
// 更新时间
UpdateTime int64 `protobuf:"varint,26,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
}
func (x *TrainVobcState) Reset() {
*x = TrainVobcState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainVobcState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainVobcState) ProtoMessage() {}
func (x *TrainVobcState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrainVobcState.ProtoReflect.Descriptor instead.
func (*TrainVobcState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{9}
}
func (x *TrainVobcState) GetLifeSignal() int32 {
if x != nil {
return x.LifeSignal
}
return 0
}
func (x *TrainVobcState) GetTc1Active() bool {
if x != nil {
return x.Tc1Active
}
return false
}
func (x *TrainVobcState) GetTc2Active() bool {
if x != nil {
return x.Tc2Active
}
return false
}
func (x *TrainVobcState) GetDirectionForward() bool {
if x != nil {
return x.DirectionForward
}
return false
}
func (x *TrainVobcState) GetDirectionBackward() bool {
if x != nil {
return x.DirectionBackward
}
return false
}
func (x *TrainVobcState) GetTractionStatus() bool {
if x != nil {
return x.TractionStatus
}
return false
}
func (x *TrainVobcState) GetBrakingStatus() bool {
if x != nil {
return x.BrakingStatus
}
return false
}
func (x *TrainVobcState) GetEmergencyBrakingStatus() bool {
if x != nil {
return x.EmergencyBrakingStatus
}
return false
}
func (x *TrainVobcState) GetTurnbackStatus() bool {
if x != nil {
return x.TurnbackStatus
}
return false
}
func (x *TrainVobcState) GetJumpStatus() bool {
if x != nil {
return x.JumpStatus
}
return false
}
func (x *TrainVobcState) GetAto() bool {
if x != nil {
return x.Ato
}
return false
}
func (x *TrainVobcState) GetFam() bool {
if x != nil {
return x.Fam
}
return false
}
func (x *TrainVobcState) GetCam() bool {
if x != nil {
return x.Cam
}
return false
}
func (x *TrainVobcState) GetTractionSafetyCircuit() bool {
if x != nil {
return x.TractionSafetyCircuit
}
return false
}
func (x *TrainVobcState) GetParkingBrakeStatus() bool {
if x != nil {
return x.ParkingBrakeStatus
}
return false
}
func (x *TrainVobcState) GetMaintainBrakeStatus() bool {
if x != nil {
return x.MaintainBrakeStatus
}
return false
}
func (x *TrainVobcState) GetTractionForce() int64 {
if x != nil {
return x.TractionForce
}
return 0
}
func (x *TrainVobcState) GetBrakeForce() int64 {
if x != nil {
return x.BrakeForce
}
return 0
}
func (x *TrainVobcState) GetTrainLoad() int64 {
if x != nil {
return x.TrainLoad
}
return 0
}
func (x *TrainVobcState) GetLeftDoorOpenCommand() bool {
if x != nil {
return x.LeftDoorOpenCommand
}
return false
}
func (x *TrainVobcState) GetRightDoorOpenCommand() bool {
if x != nil {
return x.RightDoorOpenCommand
}
return false
}
func (x *TrainVobcState) GetLeftDoorCloseCommand() bool {
if x != nil {
return x.LeftDoorCloseCommand
}
return false
}
func (x *TrainVobcState) GetRightDoorCloseCommand() bool {
if x != nil {
return x.RightDoorCloseCommand
}
return false
}
func (x *TrainVobcState) GetAllDoorClose() bool {
if x != nil {
return x.AllDoorClose
}
return false
}
func (x *TrainVobcState) GetUdpInterruption() bool {
if x != nil {
return x.UdpInterruption
}
return false
}
func (x *TrainVobcState) GetUpdateTime() int64 {
if x != nil {
return x.UpdateTime
}
return 0
}
// 发给前端的列车状态
type TrainMapState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 列车索引
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// 列车初始link运行方向
Up bool `protobuf:"varint,2,opt,name=up,proto3" json:"up,omitempty"`
// 列车初始速度
InitialSpeed float32 `protobuf:"fixed32,3,opt,name=initialSpeed,proto3" json:"initialSpeed,omitempty"`
// 列车长度,1=1mm
TrainLength int64 `protobuf:"varint,4,opt,name=trainLength,proto3" json:"trainLength,omitempty"`
// 列车是否显示
Show bool `protobuf:"varint,5,opt,name=show,proto3" json:"show,omitempty"`
// 列车车头所在设备ID
HeadDeviceId uint32 `protobuf:"varint,6,opt,name=headDeviceId,proto3" json:"headDeviceId,omitempty"`
// 列车车头所在设备偏移量
HeadOffset int64 `protobuf:"varint,7,opt,name=headOffset,proto3" json:"headOffset,omitempty"`
// 设备端口
DevicePort string `protobuf:"bytes,8,opt,name=devicePort,proto3" json:"devicePort,omitempty"`
// 运行方向指向(区段A-B,道岔:-> 岔心)
PointTo bool `protobuf:"varint,9,opt,name=pointTo,proto3" json:"pointTo,omitempty"`
// 运行上下行(公里标 上行:小 -> 大,下行:大 -> 小)
RunDirection bool `protobuf:"varint,10,opt,name=runDirection,proto3" json:"runDirection,omitempty"`
// 列车车头方向
HeadDirection bool `protobuf:"varint,11,opt,name=headDirection,proto3" json:"headDirection,omitempty"`
// 所在公里标
TrainKilometer int64 `protobuf:"varint,12,opt,name=trainKilometer,proto3" json:"trainKilometer,omitempty"`
// 控制响应延时
ControlDelayTime int64 `protobuf:"varint,13,opt,name=controlDelayTime,proto3" json:"controlDelayTime,omitempty"`
// 列车轮径
WheelDiameter int32 `protobuf:"varint,14,opt,name=wheelDiameter,proto3" json:"wheelDiameter,omitempty"`
// 动力学信息
// 生命信号 每个周期+1
DynamicHeartbeat int32 `protobuf:"varint,15,opt,name=dynamicHeartbeat,proto3" json:"dynamicHeartbeat,omitempty"`
// 车头所在link的索引
HeadLinkId string `protobuf:"bytes,16,opt,name=headLinkId,proto3" json:"headLinkId,omitempty"`
// 车头所在link内的偏移量单位为mm
HeadLinkOffset int64 `protobuf:"varint,17,opt,name=headLinkOffset,proto3" json:"headLinkOffset,omitempty"`
// 车尾所在link的索引
TailLinkId string `protobuf:"bytes,18,opt,name=tailLinkId,proto3" json:"tailLinkId,omitempty"`
// 车尾所在link内的偏移量单位为mm
TailLinkOffset int64 `protobuf:"varint,19,opt,name=tailLinkOffset,proto3" json:"tailLinkOffset,omitempty"`
// 列车所占用的link的索引的列表
// 顺序为从车头到车尾
OccupiedLinkIndex []string `protobuf:"bytes,20,rep,name=occupiedLinkIndex,proto3" json:"occupiedLinkIndex,omitempty"`
// 列车所在位置坡度值,1=1‰
Slope int32 `protobuf:"varint,21,opt,name=slope,proto3" json:"slope,omitempty"`
// 列车所在位置坡度走势,1=上坡true0=下坡false
Upslope bool `protobuf:"varint,22,opt,name=upslope,proto3" json:"upslope,omitempty"`
// 列车当前运行方向,1 =上行true 0 =下行false
RunningUp bool `protobuf:"varint,23,opt,name=runningUp,proto3" json:"runningUp,omitempty"`
// 实际运行阻力NtotalResistance,1=1KN
RunningResistanceSum float32 `protobuf:"fixed32,24,opt,name=runningResistanceSum,proto3" json:"runningResistanceSum,omitempty"`
// 阻力1空气阻力NairResistance,1=1KN
AirResistance float32 `protobuf:"fixed32,25,opt,name=airResistance,proto3" json:"airResistance,omitempty"`
// 阻力2坡道阻力NslopeResistance,1=1KN
RampResistance float32 `protobuf:"fixed32,26,opt,name=rampResistance,proto3" json:"rampResistance,omitempty"`
// 阻力3曲线阻力NcurveResistance,1=1KN
CurveResistance float32 `protobuf:"fixed32,27,opt,name=curveResistance,proto3" json:"curveResistance,omitempty"`
// 列车运行速度m/sspeed,1=1km/h
Speed int32 `protobuf:"varint,28,opt,name=speed,proto3" json:"speed,omitempty"`
// 头车速传1速度值m/sheadSpeed1,1=1km/h
HeadSensorSpeed1 int32 `protobuf:"varint,29,opt,name=headSensorSpeed1,proto3" json:"headSensorSpeed1,omitempty"`
// 头车速度2速度值m/sheadSpeed2,1=1km/h
HeadSensorSpeed2 int32 `protobuf:"varint,30,opt,name=headSensorSpeed2,proto3" json:"headSensorSpeed2,omitempty"`
// 尾车速传1速度值m/stailSpeed1,1=1km/h
TailSensorSpeed1 int32 `protobuf:"varint,31,opt,name=tailSensorSpeed1,proto3" json:"tailSensorSpeed1,omitempty"`
// 尾车速度2速度值m/stailSpeed2,1=1km/h
TailSensorSpeed2 int32 `protobuf:"varint,32,opt,name=tailSensorSpeed2,proto3" json:"tailSensorSpeed2,omitempty"`
// 头车雷达速度值m/sheadRadarSpeed,1=1km/h
HeadRadarSpeed int32 `protobuf:"varint,33,opt,name=headRadarSpeed,proto3" json:"headRadarSpeed,omitempty"`
// 尾车雷达速度值m/stailRadarSpeed,1=1km/h
TailRadarSpeed int32 `protobuf:"varint,34,opt,name=tailRadarSpeed,proto3" json:"tailRadarSpeed,omitempty"`
// 通讯中断
DynamicInterruption bool `protobuf:"varint,35,opt,name=dynamicInterruption,proto3" json:"dynamicInterruption,omitempty"`
// 加速
Acceleration float32 `protobuf:"fixed32,36,opt,name=acceleration,proto3" json:"acceleration,omitempty"`
// 半实物信息
// 生命信号 每个周期+1
VobcLifeSignal int32 `protobuf:"varint,37,opt,name=vobcLifeSignal,proto3" json:"vobcLifeSignal,omitempty"`
// TC1激活状态 1=激活
Tc1Active bool `protobuf:"varint,38,opt,name=tc1Active,proto3" json:"tc1Active,omitempty"`
// TC2激活状态 1=激活
Tc2Active bool `protobuf:"varint,39,opt,name=tc2Active,proto3" json:"tc2Active,omitempty"`
// 列车方向向前 1=方向向前
DirectionForward bool `protobuf:"varint,40,opt,name=directionForward,proto3" json:"directionForward,omitempty"`
// 列车方向向后 1=方向向后
DirectionBackward bool `protobuf:"varint,41,opt,name=directionBackward,proto3" json:"directionBackward,omitempty"`
// 列车牵引状态 1=牵引
TractionStatus bool `protobuf:"varint,42,opt,name=tractionStatus,proto3" json:"tractionStatus,omitempty"`
// 列车制动状态 1=制动
BrakingStatus bool `protobuf:"varint,43,opt,name=brakingStatus,proto3" json:"brakingStatus,omitempty"`
// 列车紧急制动状态 1=紧急制动
EmergencyBrakingStatus bool `protobuf:"varint,44,opt,name=emergencyBrakingStatus,proto3" json:"emergencyBrakingStatus,omitempty"`
// 列车折返状态AR 1=折返
TurnbackStatus bool `protobuf:"varint,45,opt,name=turnbackStatus,proto3" json:"turnbackStatus,omitempty"`
// 跳跃状态 1=跳跃
JumpStatus bool `protobuf:"varint,46,opt,name=jumpStatus,proto3" json:"jumpStatus,omitempty"`
// ATO模式 1=ATO模式
Ato bool `protobuf:"varint,47,opt,name=ato,proto3" json:"ato,omitempty"`
// FAM模式 1=FAM模式
Fam bool `protobuf:"varint,48,opt,name=fam,proto3" json:"fam,omitempty"`
// CAM模式 1=CAM模式
Cam bool `protobuf:"varint,49,opt,name=cam,proto3" json:"cam,omitempty"`
// 牵引安全回路 1=牵引安全切除
TractionSafetyCircuit bool `protobuf:"varint,50,opt,name=tractionSafetyCircuit,proto3" json:"tractionSafetyCircuit,omitempty"`
// 停放制动状态 1=停放施加
ParkingBrakeStatus bool `protobuf:"varint,51,opt,name=parkingBrakeStatus,proto3" json:"parkingBrakeStatus,omitempty"`
// 保持制动状态 1=保持制动施加
MaintainBrakeStatus bool `protobuf:"varint,52,opt,name=maintainBrakeStatus,proto3" json:"maintainBrakeStatus,omitempty"`
// 列车牵引力 100=1KN
TractionForce int64 `protobuf:"varint,53,opt,name=tractionForce,proto3" json:"tractionForce,omitempty"`
// 列车制动力 100=1KN
BrakeForce int64 `protobuf:"varint,54,opt,name=brakeForce,proto3" json:"brakeForce,omitempty"`
// 【列车载荷 100=1ton
TrainLoad int64 `protobuf:"varint,55,opt,name=trainLoad,proto3" json:"trainLoad,omitempty"`
// 列车开左门指令 1=开门
LeftDoorOpenCommand bool `protobuf:"varint,56,opt,name=leftDoorOpenCommand,proto3" json:"leftDoorOpenCommand,omitempty"`
// 列车开右门指令 1=开门
RightDoorOpenCommand bool `protobuf:"varint,57,opt,name=rightDoorOpenCommand,proto3" json:"rightDoorOpenCommand,omitempty"`
// 列车关左门指令 1=关门
LeftDoorCloseCommand bool `protobuf:"varint,58,opt,name=leftDoorCloseCommand,proto3" json:"leftDoorCloseCommand,omitempty"`
// 列车关右门指令 1=关门
RightDoorCloseCommand bool `protobuf:"varint,59,opt,name=rightDoorCloseCommand,proto3" json:"rightDoorCloseCommand,omitempty"`
// 整列车门关好 1=门关好
AllDoorClose bool `protobuf:"varint,60,opt,name=allDoorClose,proto3" json:"allDoorClose,omitempty"`
// 通讯中断
VobcInterruption bool `protobuf:"varint,61,opt,name=vobcInterruption,proto3" json:"vobcInterruption,omitempty"`
}
func (x *TrainMapState) Reset() {
*x = TrainMapState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainMapState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainMapState) ProtoMessage() {}
func (x *TrainMapState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 TrainMapState.ProtoReflect.Descriptor instead.
func (*TrainMapState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{10}
}
func (x *TrainMapState) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TrainMapState) GetUp() bool {
if x != nil {
return x.Up
}
return false
}
func (x *TrainMapState) GetInitialSpeed() float32 {
if x != nil {
return x.InitialSpeed
}
return 0
}
func (x *TrainMapState) GetTrainLength() int64 {
if x != nil {
return x.TrainLength
}
return 0
}
func (x *TrainMapState) GetShow() bool {
if x != nil {
return x.Show
}
return false
}
func (x *TrainMapState) GetHeadDeviceId() uint32 {
if x != nil {
return x.HeadDeviceId
}
return 0
}
func (x *TrainMapState) GetHeadOffset() int64 {
if x != nil {
return x.HeadOffset
}
return 0
}
func (x *TrainMapState) GetDevicePort() string {
if x != nil {
return x.DevicePort
}
return ""
}
func (x *TrainMapState) GetPointTo() bool {
if x != nil {
return x.PointTo
}
return false
}
func (x *TrainMapState) GetRunDirection() bool {
if x != nil {
return x.RunDirection
}
return false
}
func (x *TrainMapState) GetHeadDirection() bool {
if x != nil {
return x.HeadDirection
}
return false
}
func (x *TrainMapState) GetTrainKilometer() int64 {
if x != nil {
return x.TrainKilometer
}
return 0
}
func (x *TrainMapState) GetControlDelayTime() int64 {
if x != nil {
return x.ControlDelayTime
}
return 0
}
func (x *TrainMapState) GetWheelDiameter() int32 {
if x != nil {
return x.WheelDiameter
}
return 0
}
func (x *TrainMapState) GetDynamicHeartbeat() int32 {
if x != nil {
return x.DynamicHeartbeat
}
return 0
}
func (x *TrainMapState) GetHeadLinkId() string {
if x != nil {
return x.HeadLinkId
}
return ""
}
func (x *TrainMapState) GetHeadLinkOffset() int64 {
if x != nil {
return x.HeadLinkOffset
}
return 0
}
func (x *TrainMapState) GetTailLinkId() string {
if x != nil {
return x.TailLinkId
}
return ""
}
func (x *TrainMapState) GetTailLinkOffset() int64 {
if x != nil {
return x.TailLinkOffset
}
return 0
}
func (x *TrainMapState) GetOccupiedLinkIndex() []string {
if x != nil {
return x.OccupiedLinkIndex
}
return nil
}
func (x *TrainMapState) GetSlope() int32 {
if x != nil {
return x.Slope
}
return 0
}
func (x *TrainMapState) GetUpslope() bool {
if x != nil {
return x.Upslope
}
return false
}
func (x *TrainMapState) GetRunningUp() bool {
if x != nil {
return x.RunningUp
}
return false
}
func (x *TrainMapState) GetRunningResistanceSum() float32 {
if x != nil {
return x.RunningResistanceSum
}
return 0
}
func (x *TrainMapState) GetAirResistance() float32 {
if x != nil {
return x.AirResistance
}
return 0
}
func (x *TrainMapState) GetRampResistance() float32 {
if x != nil {
return x.RampResistance
}
return 0
}
func (x *TrainMapState) GetCurveResistance() float32 {
if x != nil {
return x.CurveResistance
}
return 0
}
func (x *TrainMapState) GetSpeed() int32 {
if x != nil {
return x.Speed
}
return 0
}
func (x *TrainMapState) GetHeadSensorSpeed1() int32 {
if x != nil {
return x.HeadSensorSpeed1
}
return 0
}
func (x *TrainMapState) GetHeadSensorSpeed2() int32 {
if x != nil {
return x.HeadSensorSpeed2
}
return 0
}
func (x *TrainMapState) GetTailSensorSpeed1() int32 {
if x != nil {
return x.TailSensorSpeed1
}
return 0
}
func (x *TrainMapState) GetTailSensorSpeed2() int32 {
if x != nil {
return x.TailSensorSpeed2
}
return 0
}
func (x *TrainMapState) GetHeadRadarSpeed() int32 {
if x != nil {
return x.HeadRadarSpeed
}
return 0
}
func (x *TrainMapState) GetTailRadarSpeed() int32 {
if x != nil {
return x.TailRadarSpeed
}
return 0
}
func (x *TrainMapState) GetDynamicInterruption() bool {
if x != nil {
return x.DynamicInterruption
}
return false
}
func (x *TrainMapState) GetAcceleration() float32 {
if x != nil {
return x.Acceleration
}
return 0
}
func (x *TrainMapState) GetVobcLifeSignal() int32 {
if x != nil {
return x.VobcLifeSignal
}
return 0
}
func (x *TrainMapState) GetTc1Active() bool {
if x != nil {
return x.Tc1Active
}
return false
}
func (x *TrainMapState) GetTc2Active() bool {
if x != nil {
return x.Tc2Active
}
return false
}
func (x *TrainMapState) GetDirectionForward() bool {
if x != nil {
return x.DirectionForward
}
return false
}
func (x *TrainMapState) GetDirectionBackward() bool {
if x != nil {
return x.DirectionBackward
}
return false
}
func (x *TrainMapState) GetTractionStatus() bool {
if x != nil {
return x.TractionStatus
}
return false
}
func (x *TrainMapState) GetBrakingStatus() bool {
if x != nil {
return x.BrakingStatus
}
return false
}
func (x *TrainMapState) GetEmergencyBrakingStatus() bool {
if x != nil {
return x.EmergencyBrakingStatus
}
return false
}
func (x *TrainMapState) GetTurnbackStatus() bool {
if x != nil {
return x.TurnbackStatus
}
return false
}
func (x *TrainMapState) GetJumpStatus() bool {
if x != nil {
return x.JumpStatus
}
return false
}
func (x *TrainMapState) GetAto() bool {
if x != nil {
return x.Ato
}
return false
}
func (x *TrainMapState) GetFam() bool {
if x != nil {
return x.Fam
}
return false
}
func (x *TrainMapState) GetCam() bool {
if x != nil {
return x.Cam
}
return false
}
func (x *TrainMapState) GetTractionSafetyCircuit() bool {
if x != nil {
return x.TractionSafetyCircuit
}
return false
}
func (x *TrainMapState) GetParkingBrakeStatus() bool {
if x != nil {
return x.ParkingBrakeStatus
}
return false
}
func (x *TrainMapState) GetMaintainBrakeStatus() bool {
if x != nil {
return x.MaintainBrakeStatus
}
return false
}
func (x *TrainMapState) GetTractionForce() int64 {
if x != nil {
return x.TractionForce
}
return 0
}
func (x *TrainMapState) GetBrakeForce() int64 {
if x != nil {
return x.BrakeForce
}
return 0
}
func (x *TrainMapState) GetTrainLoad() int64 {
if x != nil {
return x.TrainLoad
}
return 0
}
func (x *TrainMapState) GetLeftDoorOpenCommand() bool {
if x != nil {
return x.LeftDoorOpenCommand
}
return false
}
func (x *TrainMapState) GetRightDoorOpenCommand() bool {
if x != nil {
return x.RightDoorOpenCommand
}
return false
}
func (x *TrainMapState) GetLeftDoorCloseCommand() bool {
if x != nil {
return x.LeftDoorCloseCommand
}
return false
}
func (x *TrainMapState) GetRightDoorCloseCommand() bool {
if x != nil {
return x.RightDoorCloseCommand
}
return false
}
func (x *TrainMapState) GetAllDoorClose() bool {
if x != nil {
return x.AllDoorClose
}
return false
}
func (x *TrainMapState) GetVobcInterruption() bool {
if x != nil {
return x.VobcInterruption
}
return false
}
// 继电器状态
type ReplyState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 继电器索引
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// 继电器吸合状态
Xh bool `protobuf:"varint,2,opt,name=xh,proto3" json:"xh,omitempty"`
// 继电器编号
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *ReplyState) Reset() {
*x = ReplyState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReplyState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReplyState) ProtoMessage() {}
func (x *ReplyState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 ReplyState.ProtoReflect.Descriptor instead.
func (*ReplyState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{11}
}
func (x *ReplyState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *ReplyState) GetXh() bool {
if x != nil {
return x.Xh
}
return false
}
func (x *ReplyState) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 按钮状态
type ButtonState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Down bool `protobuf:"varint,2,opt,name=down,proto3" json:"down,omitempty"`
Active bool `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"` // 带灯的按钮
}
func (x *ButtonState) Reset() {
*x = ButtonState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ButtonState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ButtonState) ProtoMessage() {}
func (x *ButtonState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 ButtonState.ProtoReflect.Descriptor instead.
func (*ButtonState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{12}
}
func (x *ButtonState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *ButtonState) GetDown() bool {
if x != nil {
return x.Down
}
return false
}
func (x *ButtonState) GetActive() bool {
if x != nil {
return x.Active
}
return false
}
// 警铃状态
type AlarmState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"`
}
func (x *AlarmState) Reset() {
*x = AlarmState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AlarmState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AlarmState) ProtoMessage() {}
func (x *AlarmState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 AlarmState.ProtoReflect.Descriptor instead.
func (*AlarmState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{13}
}
func (x *AlarmState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *AlarmState) GetActive() bool {
if x != nil {
return x.Active
}
return false
}
// 灯状态
type LightState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"`
}
func (x *LightState) Reset() {
*x = LightState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LightState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LightState) ProtoMessage() {}
func (x *LightState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 LightState.ProtoReflect.Descriptor instead.
func (*LightState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{14}
}
func (x *LightState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *LightState) GetActive() bool {
if x != nil {
return x.Active
}
return false
}
// 屏蔽门状态
type PsdState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //屏蔽门的id
AsdStates []*AsdState `protobuf:"bytes,2,rep,name=asdStates,proto3" json:"asdStates,omitempty"` //滑动门状态
Mgj bool `protobuf:"varint,3,opt,name=mgj,proto3" json:"mgj,omitempty"` //屏蔽门整体的关闭(继电器)状态
}
func (x *PsdState) Reset() {
*x = PsdState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PsdState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PsdState) ProtoMessage() {}
func (x *PsdState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 PsdState.ProtoReflect.Descriptor instead.
func (*PsdState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{15}
}
func (x *PsdState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *PsdState) GetAsdStates() []*AsdState {
if x != nil {
return x.AsdStates
}
return nil
}
func (x *PsdState) GetMgj() bool {
if x != nil {
return x.Mgj
}
return false
}
// 滑动门状态
type AsdState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` //滑动门的编号
Kmdw bool `protobuf:"varint,2,opt,name=kmdw,proto3" json:"kmdw,omitempty"` //开门到位(实际位置)
Gmdw bool `protobuf:"varint,3,opt,name=gmdw,proto3" json:"gmdw,omitempty"` //关门到位(实际位置)
Mgj bool `protobuf:"varint,4,opt,name=mgj,proto3" json:"mgj,omitempty"` //门关继电器
}
func (x *AsdState) Reset() {
*x = AsdState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AsdState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AsdState) ProtoMessage() {}
func (x *AsdState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 AsdState.ProtoReflect.Descriptor instead.
func (*AsdState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{16}
}
func (x *AsdState) GetCode() int32 {
if x != nil {
return x.Code
}
return 0
}
func (x *AsdState) GetKmdw() bool {
if x != nil {
return x.Kmdw
}
return false
}
func (x *AsdState) GetGmdw() bool {
if x != nil {
return x.Gmdw
}
return false
}
func (x *AsdState) GetMgj() bool {
if x != nil {
return x.Mgj
}
return false
}
// 钥匙状态
type KeyState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Gear int32 `protobuf:"varint,2,opt,name=gear,proto3" json:"gear,omitempty"`
}
func (x *KeyState) Reset() {
*x = KeyState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KeyState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeyState) ProtoMessage() {}
func (x *KeyState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 KeyState.ProtoReflect.Descriptor instead.
func (*KeyState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{17}
}
func (x *KeyState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *KeyState) GetGear() int32 {
if x != nil {
return x.Gear
}
return 0
}
// 战场图门控箱继电器状态
type MkxJState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
ReplyState []*ReplyState `protobuf:"bytes,2,rep,name=replyState,proto3" json:"replyState,omitempty"`
}
func (x *MkxJState) Reset() {
*x = MkxJState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MkxJState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MkxJState) ProtoMessage() {}
func (x *MkxJState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 MkxJState.ProtoReflect.Descriptor instead.
func (*MkxJState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{18}
}
func (x *MkxJState) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *MkxJState) GetReplyState() []*ReplyState {
if x != nil {
return x.ReplyState
}
return nil
}
// 应答器状态
type BaliseState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Km *data_proto.KilometerSystem `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"` //当前公里标
Telegram string `protobuf:"bytes,3,opt,name=telegram,proto3" json:"telegram,omitempty"` //当前报文16进制字符串
}
func (x *BaliseState) Reset() {
*x = BaliseState{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BaliseState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BaliseState) ProtoMessage() {}
func (x *BaliseState) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 BaliseState.ProtoReflect.Descriptor instead.
func (*BaliseState) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{19}
}
func (x *BaliseState) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *BaliseState) GetKm() *data_proto.KilometerSystem {
if x != nil {
return x.Km
}
return nil
}
func (x *BaliseState) GetTelegram() string {
if x != nil {
return x.Telegram
}
return ""
}
// 仿真运行时状态变化量,当前时刻与上一时刻比较得到
type VariationStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 新增或变化的列车的状态
UpdatedTrain []*TrainMapState `protobuf:"bytes,1,rep,name=updatedTrain,proto3" json:"updatedTrain,omitempty"`
// 移除的列车的索引
RemovedTrainId []string `protobuf:"bytes,2,rep,name=removedTrainId,proto3" json:"removedTrainId,omitempty"`
// 状态发生变化的道岔
UpdatedSwitch []*SwitchState `protobuf:"bytes,3,rep,name=updatedSwitch,proto3" json:"updatedSwitch,omitempty"`
// 状态发生变化的区段
UpdatedSection []*SectionState `protobuf:"bytes,4,rep,name=updatedSection,proto3" json:"updatedSection,omitempty"`
// 状态发送变化的继电器
UpdatedReply []*ReplyState `protobuf:"bytes,5,rep,name=updatedReply,proto3" json:"updatedReply,omitempty"`
}
func (x *VariationStatus) Reset() {
*x = VariationStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VariationStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VariationStatus) ProtoMessage() {}
func (x *VariationStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 VariationStatus.ProtoReflect.Descriptor instead.
func (*VariationStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{20}
}
func (x *VariationStatus) GetUpdatedTrain() []*TrainMapState {
if x != nil {
return x.UpdatedTrain
}
return nil
}
func (x *VariationStatus) GetRemovedTrainId() []string {
if x != nil {
return x.RemovedTrainId
}
return nil
}
func (x *VariationStatus) GetUpdatedSwitch() []*SwitchState {
if x != nil {
return x.UpdatedSwitch
}
return nil
}
func (x *VariationStatus) GetUpdatedSection() []*SectionState {
if x != nil {
return x.UpdatedSection
}
return nil
}
func (x *VariationStatus) GetUpdatedReply() []*ReplyState {
if x != nil {
return x.UpdatedReply
}
return nil
}
// 仿真运行时的所有设备的状态
type AllDevicesStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 所有列车状态
TrainState []*TrainMapState `protobuf:"bytes,1,rep,name=trainState,proto3" json:"trainState,omitempty"`
// 所有道岔状态
SwitchState []*SwitchState `protobuf:"bytes,2,rep,name=switchState,proto3" json:"switchState,omitempty"`
// 所有类型区段状态
SectionState []*SectionState `protobuf:"bytes,3,rep,name=sectionState,proto3" json:"sectionState,omitempty"`
// 所有继电器状态
ReplyState []*ReplyState `protobuf:"bytes,4,rep,name=replyState,proto3" json:"replyState,omitempty"`
// 所有信号机状态
SignalState []*SignalState `protobuf:"bytes,5,rep,name=signalState,proto3" json:"signalState,omitempty"`
// 按钮状态
ButtonState []*ButtonState `protobuf:"bytes,6,rep,name=buttonState,proto3" json:"buttonState,omitempty"`
// 警铃状态
AlarmState []*AlarmState `protobuf:"bytes,7,rep,name=AlarmState,proto3" json:"AlarmState,omitempty"`
// 灯状态
LightState []*LightState `protobuf:"bytes,8,rep,name=LightState,proto3" json:"LightState,omitempty"`
// 屏蔽门状态
PsdState []*PsdState `protobuf:"bytes,9,rep,name=psdState,proto3" json:"psdState,omitempty"`
// 钥匙状态
KeyState []*KeyState `protobuf:"bytes,10,rep,name=KeyState,proto3" json:"KeyState,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"`
}
func (x *AllDevicesStatus) Reset() {
*x = AllDevicesStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AllDevicesStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AllDevicesStatus) ProtoMessage() {}
func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 AllDevicesStatus.ProtoReflect.Descriptor instead.
func (*AllDevicesStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{21}
}
func (x *AllDevicesStatus) GetTrainState() []*TrainMapState {
if x != nil {
return x.TrainState
}
return nil
}
func (x *AllDevicesStatus) GetSwitchState() []*SwitchState {
if x != nil {
return x.SwitchState
}
return nil
}
func (x *AllDevicesStatus) GetSectionState() []*SectionState {
if x != nil {
return x.SectionState
}
return nil
}
func (x *AllDevicesStatus) GetReplyState() []*ReplyState {
if x != nil {
return x.ReplyState
}
return nil
}
func (x *AllDevicesStatus) GetSignalState() []*SignalState {
if x != nil {
return x.SignalState
}
return nil
}
func (x *AllDevicesStatus) GetButtonState() []*ButtonState {
if x != nil {
return x.ButtonState
}
return nil
}
func (x *AllDevicesStatus) GetAlarmState() []*AlarmState {
if x != nil {
return x.AlarmState
}
return nil
}
func (x *AllDevicesStatus) GetLightState() []*LightState {
if x != nil {
return x.LightState
}
return nil
}
func (x *AllDevicesStatus) GetPsdState() []*PsdState {
if x != nil {
return x.PsdState
}
return nil
}
func (x *AllDevicesStatus) GetKeyState() []*KeyState {
if x != nil {
return x.KeyState
}
return nil
}
func (x *AllDevicesStatus) GetPlatformState() []*PlatformState {
if x != nil {
return x.PlatformState
}
return nil
}
func (x *AllDevicesStatus) GetBaliseState() []*BaliseState {
if x != nil {
return x.BaliseState
}
return nil
}
// 服务器端向前端推送的设备状态信息
type PushedDevicesStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// true-全量设备状态信息此时allStatus有效
// false - 增量设备状态消息此时varStatus有效
All bool `protobuf:"varint,1,opt,name=all,proto3" json:"all,omitempty"`
// 增量设备状态消息
VarStatus *VariationStatus `protobuf:"bytes,2,opt,name=varStatus,proto3" json:"varStatus,omitempty"`
// 全量设备状态信息
AllStatus *AllDevicesStatus `protobuf:"bytes,3,opt,name=allStatus,proto3" json:"allStatus,omitempty"`
}
func (x *PushedDevicesStatus) Reset() {
*x = PushedDevicesStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PushedDevicesStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PushedDevicesStatus) ProtoMessage() {}
func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_proto_msgTypes[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 PushedDevicesStatus.ProtoReflect.Descriptor instead.
func (*PushedDevicesStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{22}
}
func (x *PushedDevicesStatus) GetAll() bool {
if x != nil {
return x.All
}
return false
}
func (x *PushedDevicesStatus) GetVarStatus() *VariationStatus {
if x != nil {
return x.VarStatus
}
return nil
}
func (x *PushedDevicesStatus) GetAllStatus() *AllDevicesStatus {
if x != nil {
return x.AllStatus
}
return nil
}
// 仿真信息状态
type SimulationStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SimulationId string `protobuf:"bytes,1,opt,name=simulationId,proto3" json:"simulationId,omitempty"`
State SimulationStatus_SimulationState `protobuf:"varint,2,opt,name=state,proto3,enum=state.SimulationStatus_SimulationState" json:"state,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
}
func (x *SimulationStatus) Reset() {
*x = SimulationStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_device_state_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SimulationStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SimulationStatus) ProtoMessage() {}
func (x *SimulationStatus) ProtoReflect() protoreflect.Message {
mi := &file_device_state_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 SimulationStatus.ProtoReflect.Descriptor instead.
func (*SimulationStatus) Descriptor() ([]byte, []int) {
return file_device_state_proto_rawDescGZIP(), []int{23}
}
func (x *SimulationStatus) GetSimulationId() string {
if x != nil {
return x.SimulationId
}
return ""
}
func (x *SimulationStatus) GetState() SimulationStatus_SimulationState {
if x != nil {
return x.State
}
return SimulationStatus_PAUSE
}
func (x *SimulationStatus) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
var File_device_state_proto protoreflect.FileDescriptor
var file_device_state_proto_rawDesc = []byte{
0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x1b, 0x73, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x09, 0x4c,
0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x69,
0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6e,
0x49, 0x64, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02,
0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x12, 0x1c,
0x0a, 0x09, 0x61, 0x78, 0x6c, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x09, 0x61, 0x78, 0x6c, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xcf, 0x02, 0x0a,
0x0b, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f,
0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x64, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x64, 0x77, 0x12, 0x0e,
0x0a, 0x02, 0x66, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x66, 0x77, 0x12, 0x14,
0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66,
0x6f, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
0x52, 0x02, 0x73, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x77, 0x73, 0x62, 0x18, 0x08, 0x20, 0x01,
0x28, 0x08, 0x52, 0x04, 0x64, 0x77, 0x73, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x77, 0x73, 0x62,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x77, 0x73, 0x62, 0x12, 0x0e, 0x0a, 0x02,
0x6a, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6a, 0x63, 0x12, 0x10, 0x0a, 0x03,
0x71, 0x64, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x71, 0x64, 0x63, 0x12, 0x10,
0x0a, 0x03, 0x71, 0x66, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x71, 0x66, 0x63,
0x12, 0x10, 0x0a, 0x03, 0x71, 0x79, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x71,
0x79, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02,
0x64, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02,
0x66, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x79, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02,
0x79, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x18, 0x11,
0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x22, 0x4b,
0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a,
0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x41, 0x73, 0x70,
0x65, 0x63, 0x74, 0x52, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x22, 0x4f, 0x0a, 0x06, 0x53,
0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x06, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12,
0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10,
0x01, 0x12, 0x05, 0x0a, 0x01, 0x4c, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10, 0x03, 0x12,
0x05, 0x0a, 0x01, 0x55, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x55, 0x10, 0x05, 0x12, 0x05,
0x0a, 0x01, 0x42, 0x10, 0x06, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x07, 0x22, 0x94, 0x01, 0x0a,
0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x65, 0x6d, 0x70, 0x6a, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x65, 0x6d,
0x70, 0x6a, 0x12, 0x2f, 0x0a, 0x09, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65,
0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x6d, 0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4d,
0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x6d, 0x6b, 0x78, 0x4a, 0x53, 0x74,
0x61, 0x74, 0x65, 0x22, 0x1e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x02, 0x69, 0x64, 0x22, 0xe9, 0x05, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02,
0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x69,
0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74,
0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68,
0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x22,
0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x18, 0x09, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x12, 0x22, 0x0a, 0x0c,
0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69,
0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69,
0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x76, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61, 0x74,
0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x54, 0x72, 0x61, 0x69, 0x6e, 0x56, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09,
0x76, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61,
0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x61,
0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a,
0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x10,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61,
0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79,
0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x74, 0x72, 0x61,
0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x36, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x18, 0x12, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61,
0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61,
0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x12, 0x36, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e,
0x45, 0x6e, 0x64, 0x73, 0x42, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74,
0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x42, 0x22,
0xcd, 0x06, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63,
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62,
0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e,
0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f,
0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x68, 0x65, 0x61,
0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74,
0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74,
0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66,
0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c,
0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11,
0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65,
0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f,
0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x09,
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12,
0x32, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74,
0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x72,
0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
0x53, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74,
0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x69, 0x72, 0x52,
0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x6d,
0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x02, 0x52, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74,
0x61, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76,
0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x70, 0x65, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65,
0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61,
0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a,
0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e,
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69,
0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x11, 0x20,
0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e,
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52,
0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
0x32, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70,
0x65, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52,
0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69,
0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65,
0x64, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x64, 0x70, 0x49,
0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x61,
0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28,
0x02, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x84, 0x08, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x56, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a,
0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61,
0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69,
0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x18,
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65,
0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63,
0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26,
0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75, 0x6d, 0x70,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x61, 0x6d, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x66, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61,
0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x63, 0x61, 0x6d, 0x12, 0x34, 0x0a, 0x15,
0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69,
0x72, 0x63, 0x75, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x72, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75,
0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61,
0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12,
0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72,
0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52,
0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72,
0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72,
0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65, 0x66, 0x74,
0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f,
0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x69,
0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44,
0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32,
0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43,
0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65,
0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43,
0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28,
0x08, 0x52, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73,
0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x44,
0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f,
0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72,
0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf9, 0x11, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x69, 0x6e,
0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x02,
0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74,
0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b,
0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12,
0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x68,
0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64,
0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54,
0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f,
0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x65, 0x61,
0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72,
0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c,
0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24,
0x0a, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18,
0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48,
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x10,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64,
0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69,
0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c,
0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c,
0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b,
0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63,
0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14,
0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73,
0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18,
0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x1c,
0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28,
0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x14,
0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
0x65, 0x53, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x6e,
0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d,
0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69,
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65,
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e,
0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28,
0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65,
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65,
0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a,
0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
0x64, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65,
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65,
0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x1e,
0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65,
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05,
0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61,
0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x26,
0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61,
0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61,
0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x30,
0x0a, 0x13, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x79, 0x6e,
0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x6f, 0x62, 0x63, 0x4c, 0x69, 0x66, 0x65,
0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x6f,
0x62, 0x63, 0x4c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09,
0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52,
0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63,
0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74,
0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x28, 0x20, 0x01,
0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52,
0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61,
0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72,
0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x36, 0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08,
0x52, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69,
0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e,
0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2e,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61,
0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x61, 0x6d, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52,
0x03, 0x66, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x6d, 0x18, 0x31, 0x20, 0x01, 0x28,
0x08, 0x52, 0x03, 0x63, 0x61, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x18,
0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12,
0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e,
0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13,
0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74,
0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24,
0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18,
0x35, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46,
0x6f, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72,
0x63, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46,
0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61,
0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f,
0x61, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70,
0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52,
0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f,
0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x39, 0x20, 0x01,
0x28, 0x08, 0x52, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65,
0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74,
0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72,
0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15,
0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x69, 0x67,
0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f,
0x73, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f,
0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e,
0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08,
0x52, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x40, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
0x12, 0x0e, 0x0a, 0x02, 0x78, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x78, 0x68,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x22, 0x49, 0x0a, 0x0b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
0x08, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22,
0x34, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a,
0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61,
0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x34, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x5b, 0x0a, 0x08, 0x50,
0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x53, 0x74,
0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x41, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x73, 0x64,
0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x67, 0x6a, 0x22, 0x58, 0x0a, 0x08, 0x41, 0x73, 0x64, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x6d, 0x64, 0x77,
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6b, 0x6d, 0x64, 0x77, 0x12, 0x12, 0x0a, 0x04,
0x67, 0x6d, 0x64, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x67, 0x6d, 0x64, 0x77,
0x12, 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6d,
0x67, 0x6a, 0x22, 0x2e, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x67, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x67, 0x65,
0x61, 0x72, 0x22, 0x52, 0x0a, 0x09, 0x4d, 0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74,
0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c,
0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x67, 0x0a, 0x0b, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65,
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52,
0x02, 0x6b, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x22,
0xa1, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72,
0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74,
0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a,
0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18,
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72,
0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12,
0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x53, 0x74, 0x61,
0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34,
0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74,
0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a,
0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53,
0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65,
0x12, 0x34, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18,
0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69,
0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61,
0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74,
0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a,
0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74,
0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
0x31, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x73, 0x64,
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x70, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
0x2b, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61,
0x74, 0x65, 0x52, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x0d,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x61, 0x6c, 0x69,
0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74,
0x65, 0x52, 0x0b, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x94,
0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x34, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74,
0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35,
0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x10, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69,
0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d,
0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a,
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x3f, 0x0a, 0x0f, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a,
0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f,
0x52, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0x03,
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 (
file_device_state_proto_rawDescOnce sync.Once
file_device_state_proto_rawDescData = file_device_state_proto_rawDesc
)
func file_device_state_proto_rawDescGZIP() []byte {
file_device_state_proto_rawDescOnce.Do(func() {
file_device_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_device_state_proto_rawDescData)
})
return file_device_state_proto_rawDescData
}
var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_device_state_proto_goTypes = []interface{}{
(SectionType)(0), // 0: state.SectionType
(Signal_Aspect)(0), // 1: state.Signal.Aspect
(SimulationStatus_SimulationState)(0), // 2: state.SimulationStatus.SimulationState
(*LinkState)(nil), // 3: state.LinkState
(*SectionState)(nil), // 4: state.SectionState
(*SwitchState)(nil), // 5: state.SwitchState
(*SignalState)(nil), // 6: state.SignalState
(*Signal)(nil), // 7: state.Signal
(*PlatformState)(nil), // 8: state.PlatformState
(*StationState)(nil), // 9: state.StationState
(*TrainState)(nil), // 10: state.TrainState
(*TrainDynamicState)(nil), // 11: state.TrainDynamicState
(*TrainVobcState)(nil), // 12: state.TrainVobcState
(*TrainMapState)(nil), // 13: state.TrainMapState
(*ReplyState)(nil), // 14: state.ReplyState
(*ButtonState)(nil), // 15: state.ButtonState
(*AlarmState)(nil), // 16: state.AlarmState
(*LightState)(nil), // 17: state.LightState
(*PsdState)(nil), // 18: state.PsdState
(*AsdState)(nil), // 19: state.AsdState
(*KeyState)(nil), // 20: state.KeyState
(*MkxJState)(nil), // 21: state.MkxJState
(*BaliseState)(nil), // 22: state.BaliseState
(*VariationStatus)(nil), // 23: state.VariationStatus
(*AllDevicesStatus)(nil), // 24: state.AllDevicesStatus
(*PushedDevicesStatus)(nil), // 25: state.PushedDevicesStatus
(*SimulationStatus)(nil), // 26: state.SimulationStatus
(*common_proto.TrainDynamicConfig)(nil), // 27: common.TrainDynamicConfig
(*common_proto.TrainEndsState)(nil), // 28: common.TrainEndsState
(*data_proto.KilometerSystem)(nil), // 29: graphicData.KilometerSystem
}
var file_device_state_proto_depIdxs = []int32{
1, // 0: state.SignalState.aspect:type_name -> state.Signal.Aspect
14, // 1: state.PlatformState.spksState:type_name -> state.ReplyState
21, // 2: state.PlatformState.mkxJState:type_name -> state.MkxJState
11, // 3: state.TrainState.dynamicState:type_name -> state.TrainDynamicState
12, // 4: state.TrainState.vobcState:type_name -> state.TrainVobcState
27, // 5: state.TrainState.trainDynamicConfig:type_name -> common.TrainDynamicConfig
28, // 6: state.TrainState.trainEndsA:type_name -> common.TrainEndsState
28, // 7: state.TrainState.trainEndsB:type_name -> common.TrainEndsState
19, // 8: state.PsdState.asdStates:type_name -> state.AsdState
14, // 9: state.MkxJState.replyState:type_name -> state.ReplyState
29, // 10: state.BaliseState.km:type_name -> graphicData.KilometerSystem
13, // 11: state.VariationStatus.updatedTrain:type_name -> state.TrainMapState
5, // 12: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState
4, // 13: state.VariationStatus.updatedSection:type_name -> state.SectionState
14, // 14: state.VariationStatus.updatedReply:type_name -> state.ReplyState
13, // 15: state.AllDevicesStatus.trainState:type_name -> state.TrainMapState
5, // 16: state.AllDevicesStatus.switchState:type_name -> state.SwitchState
4, // 17: state.AllDevicesStatus.sectionState:type_name -> state.SectionState
14, // 18: state.AllDevicesStatus.replyState:type_name -> state.ReplyState
6, // 19: state.AllDevicesStatus.signalState:type_name -> state.SignalState
15, // 20: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState
16, // 21: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState
17, // 22: state.AllDevicesStatus.LightState:type_name -> state.LightState
18, // 23: state.AllDevicesStatus.psdState:type_name -> state.PsdState
20, // 24: state.AllDevicesStatus.KeyState:type_name -> state.KeyState
8, // 25: state.AllDevicesStatus.platformState:type_name -> state.PlatformState
22, // 26: state.AllDevicesStatus.baliseState:type_name -> state.BaliseState
23, // 27: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus
24, // 28: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus
2, // 29: state.SimulationStatus.state:type_name -> state.SimulationStatus.SimulationState
30, // [30:30] is the sub-list for method output_type
30, // [30:30] is the sub-list for method input_type
30, // [30:30] is the sub-list for extension type_name
30, // [30:30] is the sub-list for extension extendee
0, // [0:30] is the sub-list for field type_name
}
func init() { file_device_state_proto_init() }
func file_device_state_proto_init() {
if File_device_state_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_device_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LinkState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SwitchState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SignalState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Signal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlatformState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StationState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainDynamicState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainVobcState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainMapState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReplyState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ButtonState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AlarmState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LightState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PsdState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AsdState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KeyState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MkxJState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BaliseState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VariationStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AllDevicesStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PushedDevicesStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_device_state_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimulationStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_device_state_proto_rawDesc,
NumEnums: 3,
NumMessages: 24,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_device_state_proto_goTypes,
DependencyIndexes: file_device_state_proto_depIdxs,
EnumInfos: file_device_state_proto_enumTypes,
MessageInfos: file_device_state_proto_msgTypes,
}.Build()
File_device_state_proto = out.File
file_device_state_proto_rawDesc = nil
file_device_state_proto_goTypes = nil
file_device_state_proto_depIdxs = nil
}