diff --git a/bj-rtss-message b/bj-rtss-message index 4faeb5e..f9f2cab 160000 --- a/bj-rtss-message +++ b/bj-rtss-message @@ -1 +1 @@ -Subproject commit 4faeb5e2d5da71f17be1f6c729b5d633db235b73 +Subproject commit f9f2cabf35774b9be45afd6474a4d40f32a7da36 diff --git a/dto/common_proto/common_data.pb.go b/dto/common_proto/common_data.pb.go index e3aca2d..52f631a 100644 --- a/dto/common_proto/common_data.pb.go +++ b/dto/common_proto/common_data.pb.go @@ -31,11 +31,11 @@ type TrainDynamicConfig struct { // int32 mass=1; // // 基本阻力参数A - BaseResistanceParamA float32 `protobuf:"fixed32,1,opt,name=baseResistanceParamA,proto3" json:"baseResistanceParamA,omitempty"` + DavisParamA float32 `protobuf:"fixed32,1,opt,name=davisParamA,proto3" json:"davisParamA,omitempty"` // 基本阻力参数B - BaseResistanceParamB float32 `protobuf:"fixed32,2,opt,name=baseResistanceParamB,proto3" json:"baseResistanceParamB,omitempty"` + DavisParamB float32 `protobuf:"fixed32,2,opt,name=davisParamB,proto3" json:"davisParamB,omitempty"` // 基本阻力参数C - BaseResistanceParamC float32 `protobuf:"fixed32,3,opt,name=baseResistanceParamC,proto3" json:"baseResistanceParamC,omitempty"` + DavisParamC float32 `protobuf:"fixed32,3,opt,name=davisParamC,proto3" json:"davisParamC,omitempty"` // 曲线阻力参数R1 CurveResistanceParamR1 float32 `protobuf:"fixed32,4,opt,name=curveResistanceParamR1,proto3" json:"curveResistanceParamR1,omitempty"` // 曲线阻力参数R2 @@ -50,10 +50,11 @@ type TrainDynamicConfig struct { Jump bool `protobuf:"varint,9,opt,name=jump,proto3" json:"jump,omitempty"` // 打滑(%) Slip float32 `protobuf:"fixed32,10,opt,name=slip,proto3" json:"slip,omitempty"` - // 前溜/后溜(mm)(正数前溜,负数后溜) + // 前溜/后溜(m/s)(正数前溜,负数后溜) Slide int32 `protobuf:"varint,11,opt,name=slide,proto3" json:"slide,omitempty"` // 过标/欠标(mm)(正数过标,负数欠标) - StopSign int32 `protobuf:"varint,12,opt,name=stopSign,proto3" json:"stopSign,omitempty"` + StopSign int32 `protobuf:"varint,12,opt,name=stopSign,proto3" json:"stopSign,omitempty"` + Idling float32 `protobuf:"fixed32,13,opt,name=idling,proto3" json:"idling,omitempty"` //空转 } func (x *TrainDynamicConfig) Reset() { @@ -88,23 +89,23 @@ func (*TrainDynamicConfig) Descriptor() ([]byte, []int) { return file_common_data_proto_rawDescGZIP(), []int{0} } -func (x *TrainDynamicConfig) GetBaseResistanceParamA() float32 { +func (x *TrainDynamicConfig) GetDavisParamA() float32 { if x != nil { - return x.BaseResistanceParamA + return x.DavisParamA } return 0 } -func (x *TrainDynamicConfig) GetBaseResistanceParamB() float32 { +func (x *TrainDynamicConfig) GetDavisParamB() float32 { if x != nil { - return x.BaseResistanceParamB + return x.DavisParamB } return 0 } -func (x *TrainDynamicConfig) GetBaseResistanceParamC() float32 { +func (x *TrainDynamicConfig) GetDavisParamC() float32 { if x != nil { - return x.BaseResistanceParamC + return x.DavisParamC } return 0 } @@ -172,6 +173,13 @@ func (x *TrainDynamicConfig) GetStopSign() int32 { return 0 } +func (x *TrainDynamicConfig) GetIdling() float32 { + if x != nil { + return x.Idling + } + return 0 +} + // 列车一端的状态 type TrainEndsState struct { state protoimpl.MessageState @@ -183,8 +191,8 @@ type TrainEndsState struct { SpeedSensorEnableB bool `protobuf:"varint,2,opt,name=speedSensorEnableB,proto3" json:"speedSensorEnableB,omitempty"` // 雷达是否有效 RadarEnable bool `protobuf:"varint,3,opt,name=radarEnable,proto3" json:"radarEnable,omitempty"` - // 雷达测速数值 - RadarCheckSpeed float32 `protobuf:"fixed32,4,opt,name=radarCheckSpeed,proto3" json:"radarCheckSpeed,omitempty"` + // 雷达测速差值(米/秒) + RadarCheckSpeedDiff float32 `protobuf:"fixed32,4,opt,name=radarCheckSpeedDiff,proto3" json:"radarCheckSpeedDiff,omitempty"` // 雷达检测时间(秒) RadarCheckTime int32 `protobuf:"varint,5,opt,name=radarCheckTime,proto3" json:"radarCheckTime,omitempty"` } @@ -242,9 +250,9 @@ func (x *TrainEndsState) GetRadarEnable() bool { return false } -func (x *TrainEndsState) GetRadarCheckSpeed() float32 { +func (x *TrainEndsState) GetRadarCheckSpeedDiff() float32 { if x != nil { - return x.RadarCheckSpeed + return x.RadarCheckSpeedDiff } return 0 } @@ -260,59 +268,58 @@ var File_common_data_proto protoreflect.FileDescriptor var file_common_data_proto_rawDesc = []byte{ 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9a, 0x04, 0x0a, 0x12, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xfc, 0x03, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x14, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x41, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x43, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x43, 0x12, 0x36, - 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, - 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x52, 0x31, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x32, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x32, 0x12, 0x36, - 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, - 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x52, 0x33, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x34, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x34, 0x12, 0x2e, - 0x0a, 0x12, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x73, 0x73, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x76, 0x6f, - 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x73, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6a, 0x75, - 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x04, 0x73, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x22, 0xe4, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x12, 0x2e, 0x0a, 0x12, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x20, 0x0a, 0x0b, 0x72, - 0x61, 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x72, 0x61, 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x42, - 0x2f, 0x5a, 0x2d, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x41, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x43, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x76, + 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x43, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, + 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x52, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x31, + 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x32, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, + 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x52, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x33, + 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x34, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x76, 0x6f, + 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x73, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, + 0x61, 0x73, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x75, 0x6d, 0x70, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x73, 0x6c, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, + 0x67, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, + 0x67, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0xec, 0x01, 0x0a, 0x0e, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x12, 0x2e, 0x0a, + 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x61, 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x72, 0x61, 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x30, 0x0a, 0x13, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x72, 0x61, + 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x2f, 0x5a, 0x2d, 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, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/dto/data_proto/stationLayoutGraphics.pb.go b/dto/data_proto/stationLayoutGraphics.pb.go index aea4050..842df68 100644 --- a/dto/data_proto/stationLayoutGraphics.pb.go +++ b/dto/data_proto/stationLayoutGraphics.pb.go @@ -5055,13 +5055,13 @@ type Train struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TrainModel Train_TrainModel `protobuf:"varint,1,opt,name=trainModel,proto3,enum=graphicData.Train_TrainModel" json:"trainModel,omitempty"` // 车型 - CarriageLength int32 `protobuf:"varint,2,opt,name=carriageLength,proto3" json:"carriageLength,omitempty"` // 列车车厢长度 - TotalLength int32 `protobuf:"varint,3,opt,name=totalLength,proto3" json:"totalLength,omitempty"` // 总长度 - MinDiameter int32 `protobuf:"varint,4,opt,name=minDiameter,proto3" json:"minDiameter,omitempty"` // 车轮的最小直径 - MaxDiameter int32 `protobuf:"varint,5,opt,name=maxDiameter,proto3" json:"maxDiameter,omitempty"` // 车轮的最大直径 - TrainSets string `protobuf:"bytes,6,opt,name=trainSets,proto3" json:"trainSets,omitempty"` // 编组 - DynamicConfig *common_proto.TrainDynamicConfig `protobuf:"bytes,7,opt,name=dynamicConfig,proto3" json:"dynamicConfig,omitempty"` //动力学参数 + TrainModel Train_TrainModel `protobuf:"varint,1,opt,name=trainModel,proto3,enum=graphicData.Train_TrainModel" json:"trainModel,omitempty"` // 车型 + CarriageLength int32 `protobuf:"varint,2,opt,name=carriageLength,proto3" json:"carriageLength,omitempty"` // 列车车厢长度 + TotalLength int32 `protobuf:"varint,3,opt,name=totalLength,proto3" json:"totalLength,omitempty"` // 总长度 + // int32 minDiameter = 4; // 车轮的最小直径 + // int32 maxDiameter = 5; // 车轮的最大直径 + TrainSets string `protobuf:"bytes,6,opt,name=trainSets,proto3" json:"trainSets,omitempty"` // 编组 + DynamicConfig *common_proto.TrainDynamicConfig `protobuf:"bytes,7,opt,name=dynamicConfig,proto3" json:"dynamicConfig,omitempty"` //动力学参数 } func (x *Train) Reset() { @@ -5117,20 +5117,6 @@ func (x *Train) GetTotalLength() int32 { return 0 } -func (x *Train) GetMinDiameter() int32 { - if x != nil { - return x.MinDiameter - } - return 0 -} - -func (x *Train) GetMaxDiameter() int32 { - if x != nil { - return x.MaxDiameter - } - return 0 -} - func (x *Train) GetTrainSets() string { if x != nil { return x.TrainSets @@ -6121,7 +6107,7 @@ var file_stationLayoutGraphics_proto_rawDesc = []byte{ 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x65, 0x6e, 0x74, - 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, + 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, @@ -6131,33 +6117,29 @@ var file_stationLayoutGraphics_proto_rawDesc = []byte{ 0x0e, 0x63, 0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, - 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, - 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 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, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x28, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, - 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x03, 0x22, - 0x49, 0x0a, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x2a, 0x1d, 0x0a, 0x09, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x42, 0x69, 0x0a, 0x25, 0x63, 0x6c, 0x75, - 0x62, 0x2e, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, - 0x2e, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x73, 0x42, 0x13, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, - 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x2b, 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, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x12, + 0x40, 0x0a, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x07, 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, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x22, 0x28, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, + 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, 0x0a, + 0x01, 0x43, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x03, 0x22, 0x49, 0x0a, 0x09, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6c, + 0x64, 0x69, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x2a, 0x1d, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, + 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x42, 0x69, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a, 0x6f, + 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74, 0x73, + 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x13, + 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x5a, 0x2b, 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, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/dto/simulation.go b/dto/simulation.go index 12f0d6d..fb9360d 100644 --- a/dto/simulation.go +++ b/dto/simulation.go @@ -92,17 +92,17 @@ type ConfigTrainReqDto struct { WheelDiameter int32 `json:"wheelDiameter"` // 轮径(mm) } type ConfigTrainEnds struct { - SpeedSensorEnableA bool `json:"speedSensorEnableA"` // 2端速度传感器是否有效 - SpeedSensorEnableB bool `json:"speedSensorEnableB"` // 2端速度传感器是否有效 - RadarEnable bool `json:"radarEnable"` // 雷达是否有效 - RadarCheckSpeed float32 `json:"radarCheckSpeed"` // 雷达测速数值 - RadarCheckTime int32 `json:"radarCheckTime"` // 雷达检测时间(秒) + SpeedSensorEnableA bool `json:"speedSensorEnableA"` // 2端速度传感器是否有效 + SpeedSensorEnableB bool `json:"speedSensorEnableB"` // 2端速度传感器是否有效 + RadarEnable bool `json:"radarEnable"` // 雷达是否有效 + RadarCheckSpeedDiff float32 `json:"radarCheckSpeed"` // 雷达测速数值 + RadarCheckTime int32 `json:"radarCheckTime"` // 雷达检测时间(秒) } type ConfigTrainData struct { //Mass int32 `json:"mass" form:"mass"` // 列车的质量(100=1ton) - BaseResistanceParamA float32 `json:"baseResistanceParamA"` // 基本阻力参数A - BaseResistanceParamB float32 `json:"baseResistanceParamB"` // 基本阻力参数B - BaseResistanceParamC float32 `json:"baseResistanceParamC"` // 基本阻力参数C + DavisParamA float32 `json:"davisParamA"` // 基本阻力参数A + DavisParamB float32 `json:"davisParamB"` // 基本阻力参数B + DavisParamC float32 `json:"davisParamC"` // 基本阻力参数C CurveResistanceParamR1 float32 `json:"curveResistanceParamR1"` // 曲线阻力参数R1 CurveResistanceParamR2 float32 `json:"curveResistanceParamR2"` // 曲线阻力参数R2 CurveResistanceParamR3 float32 `json:"curveResistanceParamR3"` // 曲线阻力参数R3 @@ -112,6 +112,7 @@ type ConfigTrainData struct { Slip float32 `json:"slip"` // 打滑(%) Slide int32 `json:"slide"` // 前溜/后溜(mm)(正数前溜,负数后溜) StopSign int32 `json:"stopSign"` // 过标/欠标(mm)(正数过标,负数欠标) + Idling float32 `json:"idling"` // 空转 //TrainEndsA ConfigTrainEnds `json:"TrainEndsA"` // 车辆A端 //TrainEndsB ConfigTrainEnds `json:"TrainEndsB"` // 车辆B端 } diff --git a/dto/state_proto/device_state.pb.go b/dto/state_proto/device_state.pb.go index d9fc3da..195a0dc 100644 --- a/dto/state_proto/device_state.pb.go +++ b/dto/state_proto/device_state.pb.go @@ -201,7 +201,7 @@ func (x SimulationStatus_SimulationState) Number() protoreflect.EnumNumber { // Deprecated: Use SimulationStatus_SimulationState.Descriptor instead. func (SimulationStatus_SimulationState) EnumDescriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{23, 0} + return file_device_state_proto_rawDescGZIP(), []int{25, 0} } // 相邻端点定义的link的状态 @@ -1583,11 +1583,11 @@ type TrainMapState struct { // 通讯中断 VobcInterruption bool `protobuf:"varint,61,opt,name=vobcInterruption,proto3" json:"vobcInterruption,omitempty"` // 列车动力学配置 - TrainDynamicConfig *common_proto.TrainDynamicConfig `protobuf:"bytes,62,opt,name=trainDynamicConfig,proto3" json:"trainDynamicConfig,omitempty"` + TrainDynamicConfig *TrainDynamicConfigMqtt `protobuf:"bytes,62,opt,name=trainDynamicConfig,proto3" json:"trainDynamicConfig,omitempty"` // 列车A端 - TrainEndsA *common_proto.TrainEndsState `protobuf:"bytes,63,opt,name=trainEndsA,proto3" json:"trainEndsA,omitempty"` + TrainEndsA *TrainEndsStateMqtt `protobuf:"bytes,63,opt,name=trainEndsA,proto3" json:"trainEndsA,omitempty"` // 列车B端 - TrainEndsB *common_proto.TrainEndsState `protobuf:"bytes,64,opt,name=trainEndsB,proto3" json:"trainEndsB,omitempty"` + TrainEndsB *TrainEndsStateMqtt `protobuf:"bytes,64,opt,name=trainEndsB,proto3" json:"trainEndsB,omitempty"` } func (x *TrainMapState) Reset() { @@ -2049,27 +2049,269 @@ func (x *TrainMapState) GetVobcInterruption() bool { return false } -func (x *TrainMapState) GetTrainDynamicConfig() *common_proto.TrainDynamicConfig { +func (x *TrainMapState) GetTrainDynamicConfig() *TrainDynamicConfigMqtt { if x != nil { return x.TrainDynamicConfig } return nil } -func (x *TrainMapState) GetTrainEndsA() *common_proto.TrainEndsState { +func (x *TrainMapState) GetTrainEndsA() *TrainEndsStateMqtt { if x != nil { return x.TrainEndsA } return nil } -func (x *TrainMapState) GetTrainEndsB() *common_proto.TrainEndsState { +func (x *TrainMapState) GetTrainEndsB() *TrainEndsStateMqtt { if x != nil { return x.TrainEndsB } return nil } +// 动力学相关参数返回数据,因golang float类型数据序列化后丢失精度故使用string +// 此类型需要与 common_data 中的 TrainDynamicConfig类型属性保持一致 +type TrainDynamicConfigMqtt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 基本阻力参数A 原本数据:float + DavisParamA string `protobuf:"bytes,1,opt,name=davisParamA,proto3" json:"davisParamA,omitempty"` + // 基本阻力参数B 原本数据:float + DavisParamB string `protobuf:"bytes,2,opt,name=davisParamB,proto3" json:"davisParamB,omitempty"` + // 基本阻力参数C 原本数据:float + DavisParamC string `protobuf:"bytes,3,opt,name=davisParamC,proto3" json:"davisParamC,omitempty"` + // 曲线阻力参数R1 原本数据:float + CurveResistanceParamR1 string `protobuf:"bytes,4,opt,name=curveResistanceParamR1,proto3" json:"curveResistanceParamR1,omitempty"` + // 曲线阻力参数R2 原本数据:float + CurveResistanceParamR2 string `protobuf:"bytes,5,opt,name=curveResistanceParamR2,proto3" json:"curveResistanceParamR2,omitempty"` + // 曲线阻力参数R3 原本数据:float + CurveResistanceParamR3 string `protobuf:"bytes,6,opt,name=curveResistanceParamR3,proto3" json:"curveResistanceParamR3,omitempty"` + // 曲线阻力参数R4 原本数据:float + CurveResistanceParamR4 string `protobuf:"bytes,7,opt,name=curveResistanceParamR4,proto3" json:"curveResistanceParamR4,omitempty"` + // 旋转质量参数 原本数据:float + RevolvingMassParam string `protobuf:"bytes,8,opt,name=revolvingMassParam,proto3" json:"revolvingMassParam,omitempty"` + // 是否跳跃 + Jump bool `protobuf:"varint,9,opt,name=jump,proto3" json:"jump,omitempty"` + // 打滑(%) 原本数据:float + Slip string `protobuf:"bytes,10,opt,name=slip,proto3" json:"slip,omitempty"` + // 前溜/后溜(m/s)(正数前溜,负数后溜) + Slide int32 `protobuf:"varint,11,opt,name=slide,proto3" json:"slide,omitempty"` + // 过标/欠标(mm)(正数过标,负数欠标) + StopSign int32 `protobuf:"varint,12,opt,name=stopSign,proto3" json:"stopSign,omitempty"` + // 空转 % + Idling string `protobuf:"bytes,13,opt,name=idling,proto3" json:"idling,omitempty"` +} + +func (x *TrainDynamicConfigMqtt) Reset() { + *x = TrainDynamicConfigMqtt{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrainDynamicConfigMqtt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrainDynamicConfigMqtt) ProtoMessage() {} + +func (x *TrainDynamicConfigMqtt) 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 TrainDynamicConfigMqtt.ProtoReflect.Descriptor instead. +func (*TrainDynamicConfigMqtt) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{11} +} + +func (x *TrainDynamicConfigMqtt) GetDavisParamA() string { + if x != nil { + return x.DavisParamA + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetDavisParamB() string { + if x != nil { + return x.DavisParamB + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetDavisParamC() string { + if x != nil { + return x.DavisParamC + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetCurveResistanceParamR1() string { + if x != nil { + return x.CurveResistanceParamR1 + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetCurveResistanceParamR2() string { + if x != nil { + return x.CurveResistanceParamR2 + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetCurveResistanceParamR3() string { + if x != nil { + return x.CurveResistanceParamR3 + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetCurveResistanceParamR4() string { + if x != nil { + return x.CurveResistanceParamR4 + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetRevolvingMassParam() string { + if x != nil { + return x.RevolvingMassParam + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetJump() bool { + if x != nil { + return x.Jump + } + return false +} + +func (x *TrainDynamicConfigMqtt) GetSlip() string { + if x != nil { + return x.Slip + } + return "" +} + +func (x *TrainDynamicConfigMqtt) GetSlide() int32 { + if x != nil { + return x.Slide + } + return 0 +} + +func (x *TrainDynamicConfigMqtt) GetStopSign() int32 { + if x != nil { + return x.StopSign + } + return 0 +} + +func (x *TrainDynamicConfigMqtt) GetIdling() string { + if x != nil { + return x.Idling + } + return "" +} + +// 列车一端的状态 +type TrainEndsStateMqtt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 速度传感器 + SpeedSensorEnableA bool `protobuf:"varint,1,opt,name=speedSensorEnableA,proto3" json:"speedSensorEnableA,omitempty"` + SpeedSensorEnableB bool `protobuf:"varint,2,opt,name=speedSensorEnableB,proto3" json:"speedSensorEnableB,omitempty"` + // 雷达是否有效 + RadarEnable bool `protobuf:"varint,3,opt,name=radarEnable,proto3" json:"radarEnable,omitempty"` + // 雷达测速差值(米/秒) 原本数据:float + RadarCheckSpeedDiff string `protobuf:"bytes,4,opt,name=radarCheckSpeedDiff,proto3" json:"radarCheckSpeedDiff,omitempty"` + // 雷达检测时间(秒) + RadarCheckTime int32 `protobuf:"varint,5,opt,name=radarCheckTime,proto3" json:"radarCheckTime,omitempty"` +} + +func (x *TrainEndsStateMqtt) Reset() { + *x = TrainEndsStateMqtt{} + if protoimpl.UnsafeEnabled { + mi := &file_device_state_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrainEndsStateMqtt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrainEndsStateMqtt) ProtoMessage() {} + +func (x *TrainEndsStateMqtt) 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 TrainEndsStateMqtt.ProtoReflect.Descriptor instead. +func (*TrainEndsStateMqtt) Descriptor() ([]byte, []int) { + return file_device_state_proto_rawDescGZIP(), []int{12} +} + +func (x *TrainEndsStateMqtt) GetSpeedSensorEnableA() bool { + if x != nil { + return x.SpeedSensorEnableA + } + return false +} + +func (x *TrainEndsStateMqtt) GetSpeedSensorEnableB() bool { + if x != nil { + return x.SpeedSensorEnableB + } + return false +} + +func (x *TrainEndsStateMqtt) GetRadarEnable() bool { + if x != nil { + return x.RadarEnable + } + return false +} + +func (x *TrainEndsStateMqtt) GetRadarCheckSpeedDiff() string { + if x != nil { + return x.RadarCheckSpeedDiff + } + return "" +} + +func (x *TrainEndsStateMqtt) GetRadarCheckTime() int32 { + if x != nil { + return x.RadarCheckTime + } + return 0 +} + // 继电器状态 type ReplyState struct { state protoimpl.MessageState @@ -2089,7 +2331,7 @@ type ReplyState struct { func (x *ReplyState) Reset() { *x = ReplyState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[11] + mi := &file_device_state_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2102,7 +2344,7 @@ func (x *ReplyState) String() string { func (*ReplyState) ProtoMessage() {} func (x *ReplyState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[11] + mi := &file_device_state_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2115,7 +2357,7 @@ func (x *ReplyState) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyState.ProtoReflect.Descriptor instead. func (*ReplyState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{11} + return file_device_state_proto_rawDescGZIP(), []int{13} } func (x *ReplyState) GetId() uint32 { @@ -2160,7 +2402,7 @@ type ButtonState struct { func (x *ButtonState) Reset() { *x = ButtonState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[12] + mi := &file_device_state_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2173,7 +2415,7 @@ func (x *ButtonState) String() string { func (*ButtonState) ProtoMessage() {} func (x *ButtonState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[12] + mi := &file_device_state_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2186,7 +2428,7 @@ func (x *ButtonState) ProtoReflect() protoreflect.Message { // Deprecated: Use ButtonState.ProtoReflect.Descriptor instead. func (*ButtonState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{12} + return file_device_state_proto_rawDescGZIP(), []int{14} } func (x *ButtonState) GetId() uint32 { @@ -2223,7 +2465,7 @@ type AlarmState struct { func (x *AlarmState) Reset() { *x = AlarmState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[13] + mi := &file_device_state_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2236,7 +2478,7 @@ func (x *AlarmState) String() string { func (*AlarmState) ProtoMessage() {} func (x *AlarmState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[13] + mi := &file_device_state_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2249,7 +2491,7 @@ func (x *AlarmState) ProtoReflect() protoreflect.Message { // Deprecated: Use AlarmState.ProtoReflect.Descriptor instead. func (*AlarmState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{13} + return file_device_state_proto_rawDescGZIP(), []int{15} } func (x *AlarmState) GetId() uint32 { @@ -2279,7 +2521,7 @@ type LightState struct { func (x *LightState) Reset() { *x = LightState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[14] + mi := &file_device_state_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2292,7 +2534,7 @@ func (x *LightState) String() string { func (*LightState) ProtoMessage() {} func (x *LightState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[14] + mi := &file_device_state_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2305,7 +2547,7 @@ func (x *LightState) ProtoReflect() protoreflect.Message { // Deprecated: Use LightState.ProtoReflect.Descriptor instead. func (*LightState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{14} + return file_device_state_proto_rawDescGZIP(), []int{16} } func (x *LightState) GetId() uint32 { @@ -2336,7 +2578,7 @@ type PsdState struct { func (x *PsdState) Reset() { *x = PsdState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[15] + mi := &file_device_state_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2349,7 +2591,7 @@ func (x *PsdState) String() string { func (*PsdState) ProtoMessage() {} func (x *PsdState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[15] + mi := &file_device_state_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2362,7 +2604,7 @@ func (x *PsdState) ProtoReflect() protoreflect.Message { // Deprecated: Use PsdState.ProtoReflect.Descriptor instead. func (*PsdState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{15} + return file_device_state_proto_rawDescGZIP(), []int{17} } func (x *PsdState) GetId() uint32 { @@ -2401,7 +2643,7 @@ type AsdState struct { func (x *AsdState) Reset() { *x = AsdState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[16] + mi := &file_device_state_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2414,7 +2656,7 @@ func (x *AsdState) String() string { func (*AsdState) ProtoMessage() {} func (x *AsdState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[16] + mi := &file_device_state_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2427,7 +2669,7 @@ func (x *AsdState) ProtoReflect() protoreflect.Message { // Deprecated: Use AsdState.ProtoReflect.Descriptor instead. func (*AsdState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{16} + return file_device_state_proto_rawDescGZIP(), []int{18} } func (x *AsdState) GetCode() int32 { @@ -2471,7 +2713,7 @@ type KeyState struct { func (x *KeyState) Reset() { *x = KeyState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[17] + mi := &file_device_state_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2484,7 +2726,7 @@ func (x *KeyState) String() string { func (*KeyState) ProtoMessage() {} func (x *KeyState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[17] + mi := &file_device_state_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2497,7 +2739,7 @@ func (x *KeyState) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyState.ProtoReflect.Descriptor instead. func (*KeyState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{17} + return file_device_state_proto_rawDescGZIP(), []int{19} } func (x *KeyState) GetId() uint32 { @@ -2527,7 +2769,7 @@ type MkxJState struct { func (x *MkxJState) Reset() { *x = MkxJState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[18] + mi := &file_device_state_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2540,7 +2782,7 @@ func (x *MkxJState) String() string { func (*MkxJState) ProtoMessage() {} func (x *MkxJState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[18] + mi := &file_device_state_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2553,7 +2795,7 @@ func (x *MkxJState) ProtoReflect() protoreflect.Message { // Deprecated: Use MkxJState.ProtoReflect.Descriptor instead. func (*MkxJState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{18} + return file_device_state_proto_rawDescGZIP(), []int{20} } func (x *MkxJState) GetCode() string { @@ -2584,7 +2826,7 @@ type BaliseState struct { func (x *BaliseState) Reset() { *x = BaliseState{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[19] + mi := &file_device_state_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2597,7 +2839,7 @@ func (x *BaliseState) String() string { func (*BaliseState) ProtoMessage() {} func (x *BaliseState) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[19] + mi := &file_device_state_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2610,7 +2852,7 @@ func (x *BaliseState) ProtoReflect() protoreflect.Message { // Deprecated: Use BaliseState.ProtoReflect.Descriptor instead. func (*BaliseState) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{19} + return file_device_state_proto_rawDescGZIP(), []int{21} } func (x *BaliseState) GetId() uint32 { @@ -2655,7 +2897,7 @@ type VariationStatus struct { func (x *VariationStatus) Reset() { *x = VariationStatus{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[20] + mi := &file_device_state_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2668,7 +2910,7 @@ func (x *VariationStatus) String() string { func (*VariationStatus) ProtoMessage() {} func (x *VariationStatus) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[20] + mi := &file_device_state_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2681,7 +2923,7 @@ func (x *VariationStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use VariationStatus.ProtoReflect.Descriptor instead. func (*VariationStatus) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{20} + return file_device_state_proto_rawDescGZIP(), []int{22} } func (x *VariationStatus) GetUpdatedTrain() []*TrainMapState { @@ -2754,7 +2996,7 @@ type AllDevicesStatus struct { func (x *AllDevicesStatus) Reset() { *x = AllDevicesStatus{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[21] + mi := &file_device_state_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2767,7 +3009,7 @@ func (x *AllDevicesStatus) String() string { func (*AllDevicesStatus) ProtoMessage() {} func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[21] + mi := &file_device_state_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2780,7 +3022,7 @@ func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use AllDevicesStatus.ProtoReflect.Descriptor instead. func (*AllDevicesStatus) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{21} + return file_device_state_proto_rawDescGZIP(), []int{23} } func (x *AllDevicesStatus) GetTrainState() []*TrainMapState { @@ -2885,7 +3127,7 @@ type PushedDevicesStatus struct { func (x *PushedDevicesStatus) Reset() { *x = PushedDevicesStatus{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[22] + mi := &file_device_state_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2898,7 +3140,7 @@ func (x *PushedDevicesStatus) String() string { func (*PushedDevicesStatus) ProtoMessage() {} func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[22] + mi := &file_device_state_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2911,7 +3153,7 @@ func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use PushedDevicesStatus.ProtoReflect.Descriptor instead. func (*PushedDevicesStatus) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{22} + return file_device_state_proto_rawDescGZIP(), []int{24} } func (x *PushedDevicesStatus) GetAll() bool { @@ -2949,7 +3191,7 @@ type SimulationStatus struct { func (x *SimulationStatus) Reset() { *x = SimulationStatus{} if protoimpl.UnsafeEnabled { - mi := &file_device_state_proto_msgTypes[23] + mi := &file_device_state_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2962,7 +3204,7 @@ func (x *SimulationStatus) String() string { func (*SimulationStatus) ProtoMessage() {} func (x *SimulationStatus) ProtoReflect() protoreflect.Message { - mi := &file_device_state_proto_msgTypes[23] + mi := &file_device_state_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2975,7 +3217,7 @@ func (x *SimulationStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use SimulationStatus.ProtoReflect.Descriptor instead. func (*SimulationStatus) Descriptor() ([]byte, []int) { - return file_device_state_proto_rawDescGZIP(), []int{23} + return file_device_state_proto_rawDescGZIP(), []int{25} } func (x *SimulationStatus) GetSimulationId() string { @@ -3232,7 +3474,7 @@ var file_device_state_proto_rawDesc = []byte{ 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, - 0xb5, 0x13, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, + 0xbe, 0x13, 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, @@ -3375,155 +3617,203 @@ var file_device_state_proto_rawDesc = []byte{ 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, 0x12, 0x4a, 0x0a, 0x12, 0x74, + 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x3e, 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, 0x3f, 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, 0x40, 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, 0x56, 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, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 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, + 0x67, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, + 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x41, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, + 0x64, 0x73, 0x42, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x4d, 0x71, 0x74, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x42, + 0x22, 0x80, 0x04, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x71, 0x74, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x41, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x43, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x76, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x43, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x31, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x52, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, + 0x32, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x33, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x75, 0x72, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x52, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, + 0x34, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, 0x61, + 0x73, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, + 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x73, 0x73, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x6a, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x69, + 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x6c, + 0x69, 0x6e, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x71, 0x74, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x61, + 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x72, 0x61, 0x64, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x13, + 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, + 0x69, 0x66, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x61, 0x64, 0x61, 0x72, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x12, 0x26, + 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x56, 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, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 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, - 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, + 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 ( @@ -3539,7 +3829,7 @@ func file_device_state_proto_rawDescGZIP() []byte { } var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_device_state_proto_goTypes = []interface{}{ (SectionType)(0), // 0: state.SectionType (Signal_Aspect)(0), // 1: state.Signal.Aspect @@ -3555,62 +3845,64 @@ var file_device_state_proto_goTypes = []interface{}{ (*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 - nil, // 27: state.SignalState.RelayStateMapEntry - (*request_proto.PointsParam)(nil), // 28: request.PointsParam - (*request_proto.SignalParam)(nil), // 29: request.SignalParam - (*common_proto.TrainDynamicConfig)(nil), // 30: common.TrainDynamicConfig - (*common_proto.TrainEndsState)(nil), // 31: common.TrainEndsState - (*data_proto.KilometerSystem)(nil), // 32: graphicData.KilometerSystem + (*TrainDynamicConfigMqtt)(nil), // 14: state.TrainDynamicConfigMqtt + (*TrainEndsStateMqtt)(nil), // 15: state.TrainEndsStateMqtt + (*ReplyState)(nil), // 16: state.ReplyState + (*ButtonState)(nil), // 17: state.ButtonState + (*AlarmState)(nil), // 18: state.AlarmState + (*LightState)(nil), // 19: state.LightState + (*PsdState)(nil), // 20: state.PsdState + (*AsdState)(nil), // 21: state.AsdState + (*KeyState)(nil), // 22: state.KeyState + (*MkxJState)(nil), // 23: state.MkxJState + (*BaliseState)(nil), // 24: state.BaliseState + (*VariationStatus)(nil), // 25: state.VariationStatus + (*AllDevicesStatus)(nil), // 26: state.AllDevicesStatus + (*PushedDevicesStatus)(nil), // 27: state.PushedDevicesStatus + (*SimulationStatus)(nil), // 28: state.SimulationStatus + nil, // 29: state.SignalState.RelayStateMapEntry + (*request_proto.PointsParam)(nil), // 30: request.PointsParam + (*request_proto.SignalParam)(nil), // 31: request.SignalParam + (*common_proto.TrainDynamicConfig)(nil), // 32: common.TrainDynamicConfig + (*common_proto.TrainEndsState)(nil), // 33: common.TrainEndsState + (*data_proto.KilometerSystem)(nil), // 34: graphicData.KilometerSystem } var file_device_state_proto_depIdxs = []int32{ - 28, // 0: state.SwitchState.param:type_name -> request.PointsParam + 30, // 0: state.SwitchState.param:type_name -> request.PointsParam 1, // 1: state.SignalState.aspect:type_name -> state.Signal.Aspect - 29, // 2: state.SignalState.param:type_name -> request.SignalParam - 27, // 3: state.SignalState.relayStateMap:type_name -> state.SignalState.RelayStateMapEntry - 14, // 4: state.PlatformState.spksState:type_name -> state.ReplyState - 21, // 5: state.PlatformState.mkxJState:type_name -> state.MkxJState + 31, // 2: state.SignalState.param:type_name -> request.SignalParam + 29, // 3: state.SignalState.relayStateMap:type_name -> state.SignalState.RelayStateMapEntry + 16, // 4: state.PlatformState.spksState:type_name -> state.ReplyState + 23, // 5: state.PlatformState.mkxJState:type_name -> state.MkxJState 11, // 6: state.TrainState.dynamicState:type_name -> state.TrainDynamicState 12, // 7: state.TrainState.vobcState:type_name -> state.TrainVobcState - 30, // 8: state.TrainState.trainDynamicConfig:type_name -> common.TrainDynamicConfig - 31, // 9: state.TrainState.trainEndsA:type_name -> common.TrainEndsState - 31, // 10: state.TrainState.trainEndsB:type_name -> common.TrainEndsState - 30, // 11: state.TrainMapState.trainDynamicConfig:type_name -> common.TrainDynamicConfig - 31, // 12: state.TrainMapState.trainEndsA:type_name -> common.TrainEndsState - 31, // 13: state.TrainMapState.trainEndsB:type_name -> common.TrainEndsState - 19, // 14: state.PsdState.asdStates:type_name -> state.AsdState - 14, // 15: state.MkxJState.replyState:type_name -> state.ReplyState - 32, // 16: state.BaliseState.km:type_name -> graphicData.KilometerSystem + 32, // 8: state.TrainState.trainDynamicConfig:type_name -> common.TrainDynamicConfig + 33, // 9: state.TrainState.trainEndsA:type_name -> common.TrainEndsState + 33, // 10: state.TrainState.trainEndsB:type_name -> common.TrainEndsState + 14, // 11: state.TrainMapState.trainDynamicConfig:type_name -> state.TrainDynamicConfigMqtt + 15, // 12: state.TrainMapState.trainEndsA:type_name -> state.TrainEndsStateMqtt + 15, // 13: state.TrainMapState.trainEndsB:type_name -> state.TrainEndsStateMqtt + 21, // 14: state.PsdState.asdStates:type_name -> state.AsdState + 16, // 15: state.MkxJState.replyState:type_name -> state.ReplyState + 34, // 16: state.BaliseState.km:type_name -> graphicData.KilometerSystem 13, // 17: state.VariationStatus.updatedTrain:type_name -> state.TrainMapState 5, // 18: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState 4, // 19: state.VariationStatus.updatedSection:type_name -> state.SectionState - 14, // 20: state.VariationStatus.updatedReply:type_name -> state.ReplyState + 16, // 20: state.VariationStatus.updatedReply:type_name -> state.ReplyState 13, // 21: state.AllDevicesStatus.trainState:type_name -> state.TrainMapState 5, // 22: state.AllDevicesStatus.switchState:type_name -> state.SwitchState 4, // 23: state.AllDevicesStatus.sectionState:type_name -> state.SectionState - 14, // 24: state.AllDevicesStatus.replyState:type_name -> state.ReplyState + 16, // 24: state.AllDevicesStatus.replyState:type_name -> state.ReplyState 6, // 25: state.AllDevicesStatus.signalState:type_name -> state.SignalState - 15, // 26: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState - 16, // 27: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState - 17, // 28: state.AllDevicesStatus.LightState:type_name -> state.LightState - 18, // 29: state.AllDevicesStatus.psdState:type_name -> state.PsdState - 20, // 30: state.AllDevicesStatus.KeyState:type_name -> state.KeyState + 17, // 26: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState + 18, // 27: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState + 19, // 28: state.AllDevicesStatus.LightState:type_name -> state.LightState + 20, // 29: state.AllDevicesStatus.psdState:type_name -> state.PsdState + 22, // 30: state.AllDevicesStatus.KeyState:type_name -> state.KeyState 8, // 31: state.AllDevicesStatus.platformState:type_name -> state.PlatformState - 22, // 32: state.AllDevicesStatus.baliseState:type_name -> state.BaliseState - 23, // 33: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus - 24, // 34: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus + 24, // 32: state.AllDevicesStatus.baliseState:type_name -> state.BaliseState + 25, // 33: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus + 26, // 34: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus 2, // 35: state.SimulationStatus.state:type_name -> state.SimulationStatus.SimulationState 36, // [36:36] is the sub-list for method output_type 36, // [36:36] is the sub-list for method input_type @@ -3758,7 +4050,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplyState); i { + switch v := v.(*TrainDynamicConfigMqtt); i { case 0: return &v.state case 1: @@ -3770,7 +4062,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ButtonState); i { + switch v := v.(*TrainEndsStateMqtt); i { case 0: return &v.state case 1: @@ -3782,7 +4074,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlarmState); i { + switch v := v.(*ReplyState); i { case 0: return &v.state case 1: @@ -3794,7 +4086,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LightState); i { + switch v := v.(*ButtonState); i { case 0: return &v.state case 1: @@ -3806,7 +4098,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PsdState); i { + switch v := v.(*AlarmState); i { case 0: return &v.state case 1: @@ -3818,7 +4110,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AsdState); i { + switch v := v.(*LightState); i { case 0: return &v.state case 1: @@ -3830,7 +4122,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyState); i { + switch v := v.(*PsdState); i { case 0: return &v.state case 1: @@ -3842,7 +4134,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MkxJState); i { + switch v := v.(*AsdState); i { case 0: return &v.state case 1: @@ -3854,7 +4146,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BaliseState); i { + switch v := v.(*KeyState); i { case 0: return &v.state case 1: @@ -3866,7 +4158,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VariationStatus); i { + switch v := v.(*MkxJState); i { case 0: return &v.state case 1: @@ -3878,7 +4170,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AllDevicesStatus); i { + switch v := v.(*BaliseState); i { case 0: return &v.state case 1: @@ -3890,7 +4182,7 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PushedDevicesStatus); i { + switch v := v.(*VariationStatus); i { case 0: return &v.state case 1: @@ -3902,6 +4194,30 @@ func file_device_state_proto_init() { } } file_device_state_proto_msgTypes[23].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[24].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[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulationStatus); i { case 0: return &v.state @@ -3920,7 +4236,7 @@ func file_device_state_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_device_state_proto_rawDesc, NumEnums: 3, - NumMessages: 25, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, diff --git a/dto/trainManage.go b/dto/trainManage.go index 75f23c9..827ab6a 100644 --- a/dto/trainManage.go +++ b/dto/trainManage.go @@ -17,13 +17,13 @@ type TrainInfoReqDto struct { } type TrainInfoDto struct { - Id int32 `json:"id" form:"id"` - Name string `json:"name" form:"name"` - TrainModel int32 `json:"train_model" form:"train_model"` - CarriageLength int32 `json:"carriage_length" form:"carriage_length"` - TotalLength int32 `json:"total_length" form:"total_length"` - MinDiameter int32 `json:"min_diameter" form:"min_diameter"` - MaxDiameter int32 `json:"max_diameter" form:"max_diameter"` + Id int32 `json:"id" form:"id"` + Name string `json:"name" form:"name"` + TrainModel int32 `json:"train_model" form:"train_model"` + CarriageLength int32 `json:"carriage_length" form:"carriage_length"` + TotalLength int32 `json:"total_length" form:"total_length"` + //MinDiameter int32 `json:"min_diameter" form:"min_diameter"` + //MaxDiameter int32 `json:"max_diameter" form:"max_diameter"` TrainSets string `json:"train_sets" form:"train_sets"` Description string `json:"description" form:"description"` TrainConfigData *ConfigTrainData `json:"trainConfigData" form:"trainConfigData"` @@ -39,11 +39,10 @@ func ConvertToTrainDto(trailInfos []*PublishedDto) []*TrainInfoDto { func TrainConfigToDtoConvert(dc *common_proto.TrainDynamicConfig) *ConfigTrainData { if dc != nil { return &ConfigTrainData{ - BaseResistanceParamA: dc.BaseResistanceParamA, BaseResistanceParamB: dc.BaseResistanceParamB, BaseResistanceParamC: dc.BaseResistanceParamC, + DavisParamA: dc.DavisParamA, DavisParamB: dc.DavisParamB, DavisParamC: dc.DavisParamC, CurveResistanceParamR1: dc.CurveResistanceParamR1, CurveResistanceParamR2: dc.CurveResistanceParamR2, CurveResistanceParamR3: dc.CurveResistanceParamR3, CurveResistanceParamR4: dc.CurveResistanceParamR4, RevolvingMassParam: dc.RevolvingMassParam, - Jump: dc.Jump, Slip: dc.Slip, Slide: dc.Slide, - StopSign: dc.StopSign, + Jump: dc.Jump, Slip: dc.Slip, Slide: dc.Slide, Idling: dc.Idling, StopSign: dc.StopSign, } } return nil @@ -52,14 +51,14 @@ func ConvertDtoFromTrain(t *PublishedDto) *TrainInfoDto { message := &data_proto.Train{} proto.Unmarshal(t.Proto, message) return &TrainInfoDto{ - Id: t.ID, - Name: t.Name, - Description: t.Note, - TrainModel: int32(message.TrainModel), - CarriageLength: message.CarriageLength, - TotalLength: message.TotalLength, - MinDiameter: message.MinDiameter, - MaxDiameter: message.MaxDiameter, + Id: t.ID, + Name: t.Name, + Description: t.Note, + TrainModel: int32(message.TrainModel), + CarriageLength: message.CarriageLength, + TotalLength: message.TotalLength, + //MinDiameter: message.MinDiameter, + //MaxDiameter: message.MaxDiameter, TrainSets: message.TrainSets, TrainConfigData: TrainConfigToDtoConvert(message.DynamicConfig), } diff --git a/go.mod b/go.mod index 8ed32f3..aae3ebb 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.4.0 github.com/sagikazarmark/slog-shim v0.1.0 + github.com/shopspring/decimal v1.3.1 github.com/spf13/viper v1.18.1 github.com/stretchr/testify v1.8.4 github.com/swaggo/files v1.0.1 diff --git a/go.sum b/go.sum index c160087..ad79ce7 100644 --- a/go.sum +++ b/go.sum @@ -80,8 +80,8 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -174,6 +174,8 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samber/slog-gin v1.1.0 h1:dDvYEGJkJg0DxuNWo6m6gV5Bm+iSk85Ox9on7c7OjQU= github.com/samber/slog-gin v1.1.0/go.mod h1:vmMxOYIqDHbthu7SmiF/oOlMhpYukL62JB4Ct5etOvI= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/simonvetter/modbus v1.6.0 h1:RDHJevtc7LDIVoHAbhDun8fy+QwnGe+ZU+sLm9ZZzjc= github.com/simonvetter/modbus v1.6.0/go.mod h1:hh90ZaTaPLcK2REj6/fpTbiV0J6S7GWmd8q+GVRObPw= github.com/snksoft/crc v1.1.0 h1:HkLdI4taFlgGGG1KvsWMpz78PkOC9TkPVpTV/cuWn48= diff --git a/go.work.sum b/go.work.sum index b31b5a7..5a46ec8 100644 --- a/go.work.sum +++ b/go.work.sum @@ -181,6 +181,7 @@ github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Q github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/crypt v0.17.0/go.mod h1:SMtHTvdmsZMuY/bpZoqokSoChIrcJ/epOxZN58PbZDg= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= diff --git a/message_server/sfp_ms.go b/message_server/sfp_ms.go index ca7c86e..ae8d82e 100644 --- a/message_server/sfp_ms.go +++ b/message_server/sfp_ms.go @@ -3,6 +3,8 @@ package message_server import ( "encoding/hex" "fmt" + "joylink.club/bj-rtsts-server/dto/common_proto" + "reflect" "strings" "time" @@ -364,13 +366,44 @@ func convertTrainState(v *state_proto.TrainState) *state_proto.TrainMapState { RightDoorCloseCommand: v.VobcState.RightDoorCloseCommand, AllDoorClose: v.VobcState.AllDoorClose, VobcInterruption: v.VobcState.UdpInterruption, - TrainDynamicConfig: v.TrainDynamicConfig, - TrainEndsA: v.TrainEndsA, - TrainEndsB: v.TrainEndsB, + TrainEndsA: convertEnds(v.TrainEndsA), + TrainEndsB: convertEnds(v.TrainEndsB), } + trainConfig := &state_proto.TrainDynamicConfigMqtt{} + convertDynamicConfig(v.TrainDynamicConfig, trainConfig) + t.TrainDynamicConfig = trainConfig return t } +func convertDynamicConfig(config *common_proto.TrainDynamicConfig, dest *state_proto.TrainDynamicConfigMqtt) { + configType := reflect.TypeOf(config).Elem() + for index := 0; index < configType.NumField(); index++ { + field := configType.Field(index) + if field.IsExported() { + fieldName := field.Name + destVal := reflect.ValueOf(dest).Elem().FieldByName(fieldName) + sourceData := reflect.ValueOf(config).Elem().FieldByName(fieldName).Interface() + + if destVal.Kind() == reflect.String { + destVal.Set(reflect.ValueOf(fmt.Sprintf("%v", sourceData))) + } else { + destVal.Set(reflect.ValueOf(sourceData)) + } + } + } +} + +func convertEnds(ends *common_proto.TrainEndsState) *state_proto.TrainEndsStateMqtt { + return &state_proto.TrainEndsStateMqtt{SpeedSensorEnableA: ends.SpeedSensorEnableA, + SpeedSensorEnableB: ends.SpeedSensorEnableB, + RadarEnable: ends.RadarEnable, + RadarCheckSpeedDiff: floatToString(ends.RadarCheckSpeedDiff), + RadarCheckTime: ends.RadarCheckTime} +} +func floatToString(f float32) string { + return fmt.Sprintf("%v", f) +} + // 收集道岔状态 func collectTurnoutStates(sim *memory.VerifySimulation, mapId int32) ([]*state_proto.SwitchState, error) { uidMap := memory.QueryMapUidMapByType(mapId, &data_proto.Turnout{}) diff --git a/service/trainManage.go b/service/trainManage.go index d5eace2..8399fb9 100644 --- a/service/trainManage.go +++ b/service/trainManage.go @@ -69,9 +69,9 @@ func TrainConfigToProtoConvert(t *dto.ConfigTrainData) *common_proto.TrainDynami return nil } return &common_proto.TrainDynamicConfig{ - BaseResistanceParamA: t.BaseResistanceParamA, BaseResistanceParamB: t.BaseResistanceParamB, BaseResistanceParamC: t.BaseResistanceParamC, + DavisParamA: t.DavisParamA, DavisParamB: t.DavisParamB, DavisParamC: t.DavisParamC, CurveResistanceParamR1: t.CurveResistanceParamR1, CurveResistanceParamR2: t.CurveResistanceParamR2, CurveResistanceParamR3: t.CurveResistanceParamR3, CurveResistanceParamR4: t.CurveResistanceParamR4, - Jump: t.Jump, Slip: t.Slip, + RevolvingMassParam: t.RevolvingMassParam, Jump: t.Jump, Slip: t.Slip, Idling: t.Idling, Slide: t.Slide, StopSign: t.StopSign, } } @@ -82,10 +82,10 @@ func convertTrainDtoToProto(t *dto.TrainInfoDto) []byte { TrainModel: data_proto.Train_TrainModel(t.TrainModel), CarriageLength: t.CarriageLength, TotalLength: t.TotalLength, - MinDiameter: t.MinDiameter, - MaxDiameter: t.MaxDiameter, - TrainSets: t.TrainSets, - DynamicConfig: TrainConfigToProtoConvert(t.TrainConfigData), + //MinDiameter: t.MinDiameter, + //MaxDiameter: t.MaxDiameter, + TrainSets: t.TrainSets, + DynamicConfig: TrainConfigToProtoConvert(t.TrainConfigData), } b, _ := proto.Marshal(message) return b diff --git a/third_party/message/dynamics_http.go b/third_party/message/dynamics_http.go index 78ac002..a82e023 100644 --- a/third_party/message/dynamics_http.go +++ b/third_party/message/dynamics_http.go @@ -8,7 +8,7 @@ type InitTrainInfo struct { Speed uint16 `json:"speed"` Up bool `json:"up"` //TrainLength uint32 `json:"trainLength"` - TrainOperationConfig *TrainOperationConfig `json:"TrainOperationConfig"` + TrainOperationConfig *TrainOperationConfig `json:"config"` } // 移除列车请求参数 @@ -54,19 +54,20 @@ type Curve struct { type TrainOperationConfig struct { TrainIndex int `json:"trainIndex"` //Mass int `json:"mass" form:"mass"` //列车的质量(100=1ton) - Length int `json:"列车的长度(cm)"` - BaseResistanceParamA float32 `json:"基本阻力参数A"` - BaseResistanceParamB float32 `json:"基本阻力参数B"` - BaseResistanceParamC float32 `json:"基本阻力参数C"` - CurveResistanceParamR1 float32 `json:"曲线阻力参数R1"` - CurveResistanceParamR2 float32 `json:"曲线阻力参数R2"` - CurveResistanceParamR3 float32 `json:"曲线阻力参数R3"` - CurveResistanceParamR4 float32 `json:"曲线阻力参数R4"` - RevolvingMassParam float32 `json:"旋转质量参数"` - Jump bool `json:"是否跳跃"` - Slip float32 `json:"打滑(%)"` - Slide int `json:"前溜/后溜(mm)(正数前溜,负数后溜)"` - StopSign int `json:"过标/欠标(mm)(正数过标,负数欠标)"` + Length int `json:"length"` // 列车的长度(cm) + DavisParamA float32 `json:"davisParamA"` // 基本阻力参数A + DavisParamB float32 `json:"davisParamB"` // 基本阻力参数B + DavisParamC float32 `json:"davisParamC"` // 基本阻力参数C + CurveResistanceParamR1 float32 `json:"curveResistanceParamR1"` // 曲线阻力参数R1 + CurveResistanceParamR2 float32 `json:"curveResistanceParamR2"` // 曲线阻力参数R2 + CurveResistanceParamR3 float32 `json:"curveResistanceParamR3"` // 曲线阻力参数R3 + CurveResistanceParamR4 float32 `json:"curveResistanceParamR4"` // 曲线阻力参数R4 + RevolvingMassParam float32 `json:"revolvingMassParam"` // 旋转质量参数 + Jump bool `json:"jump"` // 是否跳跃 + Slip float32 `json:"slip"` // 打滑(%) + Idling float32 `json:"idling"` // 空转(%),默认值:0 + Slide int `json:"slide"` // 前溜/后溜(mm)(正数前溜,负数后溜) + StopSign int `json:"stopSign"` // 过标/欠标(mm)(正数过标,负数欠标) //WheelDiameter int `json:"轮径(mm)"` //RadarSpeed float32 `json:"雷达速度差值(m/s)"` //RadarDuration int `json:"雷达速度差值持续时间(ms)"` diff --git a/ts/simulation/wayside/memory/wayside_memory_train.go b/ts/simulation/wayside/memory/wayside_memory_train.go index f22bb9c..1bf8094 100644 --- a/ts/simulation/wayside/memory/wayside_memory_train.go +++ b/ts/simulation/wayside/memory/wayside_memory_train.go @@ -21,17 +21,13 @@ import ( "joylink.club/bj-rtsts-server/dto/state_proto" ) -func DtoTrainEndsToStateProto(ends dto.ConfigTrainEnds) *common_proto.TrainEndsState { - return &common_proto.TrainEndsState{SpeedSensorEnableA: ends.SpeedSensorEnableA, SpeedSensorEnableB: ends.SpeedSensorEnableB, - RadarEnable: ends.RadarEnable, RadarCheckSpeed: ends.RadarCheckSpeed, RadarCheckTime: ends.RadarCheckTime} -} func CreateMsgTrainConfig(trainId int, trainLen int64, configTrainData dto.ConfigTrainData) *message.TrainOperationConfig { return &message.TrainOperationConfig{TrainIndex: trainId, Length: int(trainLen), - BaseResistanceParamA: configTrainData.BaseResistanceParamA, BaseResistanceParamB: configTrainData.BaseResistanceParamB, - BaseResistanceParamC: configTrainData.BaseResistanceParamC, CurveResistanceParamR1: configTrainData.CurveResistanceParamR1, + DavisParamA: configTrainData.DavisParamA, DavisParamB: configTrainData.DavisParamB, + DavisParamC: configTrainData.DavisParamC, CurveResistanceParamR1: configTrainData.CurveResistanceParamR1, CurveResistanceParamR2: configTrainData.CurveResistanceParamR2, CurveResistanceParamR3: configTrainData.CurveResistanceParamR3, CurveResistanceParamR4: configTrainData.CurveResistanceParamR4, RevolvingMassParam: configTrainData.RevolvingMassParam, - Jump: configTrainData.Jump, Slip: configTrainData.Slip, Slide: int(configTrainData.Slide), + Jump: configTrainData.Jump, Slip: configTrainData.Slip, Slide: int(configTrainData.Slide), Idling: configTrainData.Idling, StopSign: int(configTrainData.StopSign)} } @@ -203,7 +199,7 @@ func copyTrainEnds(trainState *state_proto.TrainState, fieldName string, configD endsVal.SpeedSensorEnableA = configData.SpeedSensorEnableA endsVal.SpeedSensorEnableB = configData.SpeedSensorEnableB endsVal.RadarEnable = configData.RadarEnable - endsVal.RadarCheckSpeed = configData.RadarCheckSpeed + endsVal.RadarCheckSpeedDiff = configData.RadarCheckSpeedDiff endsVal.RadarCheckTime = configData.RadarCheckTime } func UpdateConfigTrain(vs *VerifySimulation, ct *dto.ConfigTrainReqDto) { @@ -217,26 +213,9 @@ func UpdateConfigTrain(vs *VerifySimulation, ct *dto.ConfigTrainReqDto) { panic(sys_error.New(fmt.Sprintf("列车参数修改断言:列车【%s】不存在", ct.TrainId))) } createOrUpdateStateDynamicConfig(trainState, ct.ConfigData, ct.TrainEndsA, ct.TrainEndsB) - /* if trainState.TrainDynamicConfig == nil { - trainState.TrainDynamicConfig = &state_proto.TrainDynamicConfig{} - }*/ - /*trainState.TrainDynamicConfig.BaseResistanceParamA = ct.ConfigData.BaseResistanceParamA - trainState.TrainDynamicConfig.BaseResistanceParamB = ct.ConfigData.BaseResistanceParamB - trainState.TrainDynamicConfig.BaseResistanceParamC = ct.ConfigData.BaseResistanceParamC - trainState.TrainDynamicConfig.CurveResistanceParamR1 = ct.ConfigData.CurveResistanceParamR1 - trainState.TrainDynamicConfig.CurveResistanceParamR2 = ct.ConfigData.CurveResistanceParamR2 - trainState.TrainDynamicConfig.CurveResistanceParamR3 = ct.ConfigData.CurveResistanceParamR3 - trainState.TrainDynamicConfig.CurveResistanceParamR4 = ct.ConfigData.CurveResistanceParamR4 - trainState.TrainDynamicConfig.Jump = ct.ConfigData.Jump - trainState.TrainDynamicConfig.Slip = ct.ConfigData.Slip - trainState.TrainDynamicConfig.Slide = ct.ConfigData.Slide - trainState.TrainDynamicConfig.StopSign = ct.ConfigData.StopSign*/ trainState.TrainLength = ct.Length - trainState.WheelDiameter = ct.WheelDiameter - //copyTrainEnds(trainState.TrainDynamicConfig, "TrainEndsA", ct.ConfigData.TrainEndsA) - //copyTrainEnds(trainState.TrainDynamicConfig, "TrainEndsB", ct.ConfigData.TrainEndsB) - //requestDynamicConfig(ct) + requestDynamicConfig(ct) } func requestDynamicConfig(ct *dto.ConfigTrainReqDto) {