From d9073ace752c809bd80c179dbe8381e82a3eb5bb Mon Sep 17 00:00:00 2001 From: lucas Date: Sat, 22 Feb 2025 13:52:17 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=20=E6=9E=9C?= =?UTF-8?q?=E5=AD=90=E6=B2=9F=20=E6=8E=A8=E9=80=81=20=E4=B8=AD=E4=BA=A4?= =?UTF-8?q?=E5=8D=8E=E8=81=94=20=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../知物云es主题特征to中交华联.go | 192 + ...果子沟_中交华联_特征数据.yaml | 32 + ...监测_承德_轻量化特征数据.yaml | 8 +- ...测_秦皇岛_轻量化特征数据.yaml | 3 +- .../MonitorDataProtocol-V1.3.1.pb.go | 6502 +++++++++++++++++ .../MonitorDataProtocol-V1.3.1.proto | 801 ++ consumers/consumerGZG2ZJHL.go | 324 + consumers/consumerHBJCAS.go | 10 + consumers/consumerManage.go | 4 + 9 files changed, 7870 insertions(+), 6 deletions(-) create mode 100644 adaptors/知物云es主题特征to中交华联.go create mode 100644 configFiles/config_知物云果子沟_中交华联_特征数据.yaml rename configFiles/{ => 弃用备份}/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml (84%) rename configFiles/{ => 弃用备份}/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml (92%) create mode 100644 consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.pb.go create mode 100644 consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.proto create mode 100644 consumers/consumerGZG2ZJHL.go diff --git a/adaptors/知物云es主题特征to中交华联.go b/adaptors/知物云es主题特征to中交华联.go new file mode 100644 index 0000000..024853b --- /dev/null +++ b/adaptors/知物云es主题特征to中交华联.go @@ -0,0 +1,192 @@ +package adaptors + +import ( + "encoding/json" + "fmt" + "goInOut/consumers/GZG2ZJHL/protoFiles_zjhl" + + //"goInOut/consumers/GZG2ZJHL/protoFiles_zjhl" + "goInOut/consumers/HBJCAS" + "goInOut/dbOperate" + "goInOut/models" + "google.golang.org/protobuf/proto" + "log" + "math" + "strconv" + "strings" + "time" +) + +// Adaptor_ZWYES_ZJHL 知物云果子沟es 特征数据 to 中交华联平台 +type Adaptor_ZWYES_ZJHL struct { + //传感器code转换信息 + PointInfo map[int64]map[int64]int64 + StructInfo map[int64]int64 + //一些必要信息 + Info map[string]string + Redis *dbOperate.RedisHelper +} + +func (the Adaptor_ZWYES_ZJHL) Transform(structId int64, factorId int, rawMsg string) []NeedPush { + esAggDateHistogram := HBJCAS.EsThemeAggDateHistogram{} + var needPush []NeedPush + err := json.Unmarshal([]byte(rawMsg), &esAggDateHistogram) + if err != nil { + return nil + } + + Payload := the.EsAggTopToHBJCAS(structId, factorId, esAggDateHistogram) + if len(Payload) == 0 { + return needPush + } + + needPush = append(needPush, NeedPush{ + Payload: Payload, + }) + return needPush +} + +func (the Adaptor_ZWYES_ZJHL) EsAggTopToHBJCAS(structId int64, factorId int, esAggs HBJCAS.EsThemeAggDateHistogram) (result []byte) { + buckets := esAggs.Aggregations.GroupSensor.Buckets + if len(buckets) == 0 { + log.Printf("[s=%d,f=%d] ,es agg数据数量==0", structId, factorId) + return + } + //设施唯一编码(省平台) + uniqueCode := the.getUniqueCode(structId) + if uniqueCode == 0 { + log.Printf("structId=%d,无匹配省平台uniqueCode", structId) + return + } + //数据汇总 + complexData := &protoFiles_zjhl.ComplexData{} + for _, sensorBucket := range buckets { + sensorId := sensorBucket.Key + for _, dateBucket := range sensorBucket.GroupDate.Buckets { + //优先redis获取 + station := models.Station{} + k1 := fmt.Sprintf("station:%d", sensorId) + errRedis := the.Redis.GetObj(k1, &station) + if errRedis != nil { + log.Printf("redis 获取[s:%d,f:%d]测点[%d]标签异常", structId, factorId, sensorId) + continue + } + monitorCode := the.getPointCodeFromLabel(station.Labels) + if monitorCode == 0 { + log.Printf("redis 获取[s:%d,f:%d]测点[%d]标签,信息转换int64异常,跳过", structId, factorId, sensorId) + continue + } + + dataDefinition := &protoFiles_zjhl.DataDefinition{ + DataType: protoFiles_zjhl.DataType_STATISTICS, + //BridgeCode: fmt.Sprintf("%d", uniqueCode), //提示 不传该字段 + DataBody: the.EsAgg2StatisticData(factorId, monitorCode, dateBucket), + } + complexData.SensorData = append(complexData.SensorData, dataDefinition) + } + } + v, _ := json.Marshal(complexData) + log.Printf("[s:%d,f:%d] 特征数据=> %s", structId, factorId, v) + result, _ = proto.Marshal(complexData) + return result +} +func (the Adaptor_ZWYES_ZJHL) getMonitorTypeByFactorId(factorId int) protoFiles_zjhl.MonitoryType { + //桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 加速度三项监测592 + switch factorId { + case 15: + return protoFiles_zjhl.MonitoryType_INC + case 18: + return protoFiles_zjhl.MonitoryType_CRK + case 20: + return protoFiles_zjhl.MonitoryType_DIS + case 28: + return protoFiles_zjhl.MonitoryType_VIB + case 592: + return protoFiles_zjhl.MonitoryType_VIB + default: + log.Printf("factorId=%d,无匹配的MonitorType", factorId) + return protoFiles_zjhl.MonitoryType_CMM + } +} + +func (the Adaptor_ZWYES_ZJHL) EsAgg2StatisticData(factorId int, monitorCode int64, dateBucket HBJCAS.BucketsXY) *protoFiles_zjhl.DataDefinition_StatisticData { + Atime := dateBucket.KeyAsString.Add(-8 * time.Hour).UnixMilli() + maxAbsoluteValueX := max(math.Abs(dateBucket.X.Max), math.Abs(dateBucket.X.Min)) + avgValueX := dateBucket.X.Avg + rootMeanSquareX := math.Sqrt(dateBucket.X.SumOfSquares / float64(dateBucket.X.Count)) + + maxAbsoluteValueY := max(math.Abs(dateBucket.Y.Max), math.Abs(dateBucket.Y.Min)) + avgValueY := dateBucket.Y.Avg + rootMeanSquareY := math.Sqrt(dateBucket.Y.SumOfSquares / float64(dateBucket.Y.Count)) + + monitoryType := the.getMonitorTypeByFactorId(factorId) + dataDefinitionStatisticData := &protoFiles_zjhl.DataDefinition_StatisticData{ + StatisticData: &protoFiles_zjhl.StatisticData{ + MonitorType: monitoryType, + MonitorCode: monitorCode, //测点唯一编码 + EventTime: Atime, + Interval: 60 * 1000, + }, + } + + switch factorId { + case 15: //倾角 + dataDefinitionStatisticData.StatisticData.DataBody = &protoFiles_zjhl.StatisticData_Inc{Inc: &protoFiles_zjhl.INCStatistic{ + MaxAbsoluteValueX: float32(maxAbsoluteValueX), + AvgValueX: float32(avgValueX), + RootMeanSquareX: float32(rootMeanSquareX), + MaxAbsoluteValueY: float32(maxAbsoluteValueY), + AvgValueY: float32(avgValueY), + RootMeanSquareY: float32(rootMeanSquareY), + }} + case 18: //裂缝监测 + dataDefinitionStatisticData.StatisticData.DataBody = &protoFiles_zjhl.StatisticData_Crk{Crk: &protoFiles_zjhl.CRKStatistic{ + MaxAbsoluteValue: float32(maxAbsoluteValueX), + AvgValue: float32(avgValueX), + RootMeanSquare: float32(rootMeanSquareX), + TotalAbsoluteValue: float32(dateBucket.X.Max - dateBucket.X.Min), + }} + case 20: //支座位移 + dataDefinitionStatisticData.StatisticData.DataBody = &protoFiles_zjhl.StatisticData_Dis{Dis: &protoFiles_zjhl.DISStatistic{ + MaxAbsoluteValue: float32(maxAbsoluteValueX), + AvgValue: float32(avgValueX), + RootMeanSquare: float32(rootMeanSquareX), + TotalAbsoluteValue: float32(dateBucket.X.Max - dateBucket.X.Min), + }} + case 28: //振动 + dataDefinitionStatisticData.StatisticData.DataBody = &protoFiles_zjhl.StatisticData_Vib{Vib: &protoFiles_zjhl.VIBStatistic{ + MaxAbsoluteValue: float32(maxAbsoluteValueX), + RootMeanSquare: float32(rootMeanSquareY), + }} + case 592: //加速度三项监测 + dataDefinitionStatisticData.StatisticData.DataBody = &protoFiles_zjhl.StatisticData_Vib{Vib: &protoFiles_zjhl.VIBStatistic{ + MaxAbsoluteValue: float32(maxAbsoluteValueX), + RootMeanSquare: float32(rootMeanSquareX), + }} + } + + return dataDefinitionStatisticData +} + +func (the Adaptor_ZWYES_ZJHL) getUniqueCode(structId int64) (uniqueCode int64) { + if v, ok := the.StructInfo[structId]; ok { + uniqueCode = v + } + return uniqueCode +} + +func (the Adaptor_ZWYES_ZJHL) getPointCodeFromLabel(label string) int64 { + //解析label {13010600001} + pointUniqueCode := int64(0) + if len(label) > 2 { + newLabel := strings.TrimLeft(label, "{") + str := strings.TrimRight(newLabel, "}") + codeInt64, err := strconv.ParseInt(str, 10, 64) + if err != nil { + log.Printf("测点标签转换异常[%s]", label) + } + pointUniqueCode = codeInt64 + } + + return pointUniqueCode +} diff --git a/configFiles/config_知物云果子沟_中交华联_特征数据.yaml b/configFiles/config_知物云果子沟_中交华联_特征数据.yaml new file mode 100644 index 0000000..10deb1c --- /dev/null +++ b/configFiles/config_知物云果子沟_中交华联_特征数据.yaml @@ -0,0 +1,32 @@ +consumer: consumerGZG2ZJHL +ioConfig: + in: + http: + url: https://esproxy.anxinyun.cn/savoir_themes/_search + out: + mqtt: + host: 124.205.140.18 + port: 1883 + userName: bridge + password: bridge123456 + clientId: bridge_goinout + topics: + - t/gzgyy0219 +monitor: + #振动是触发式,数据迟缓 cron10min也改成1小时一次 最多上报6条,不进行10min实时上报 + cron10min: 29 0/1 * * * #6/10 * * * * + #普通类型 特征数据 + cron1hour: 06 0/1 * * * +info: + rc4key: t/gzgyy0219 +queryComponent: + redis: + address: 10.8.30.160:30379 +#结构物id对应 +structInfo: + #果子沟5296 -> 映射对方平台id + 5296: 136004 +#点位id对应信息 +pointInfo: #测点类型支持 桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 + + diff --git a/configFiles/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml b/configFiles/弃用备份/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml similarity index 84% rename from configFiles/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml rename to configFiles/弃用备份/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml index 2626f70..216eac7 100644 --- a/configFiles/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml +++ b/configFiles/弃用备份/config_河北省公路基础设施监测_承德_轻量化特征数据.yaml @@ -14,13 +14,11 @@ ioConfig: - t/province/1307 monitor: #振动是触发式,数据迟缓 cron10min也改成1小时一次 最多上报6条,不进行10min实时上报 - cron10min: 40 0/1 * * * #6/10 * * * * + cron10min: 22 0/1 * * * #6/10 * * * * #普通类型 特征数据 cron1hour: 20 0/1 * * * info: rc4key: sK3kJttzZyf7aZI94zSYgytBYCrfZRt6yil2 - - queryComponent: redis: address: 10.8.30.160:30379 @@ -28,8 +26,8 @@ queryComponent: structInfo: 5011: 130110 5016: 130109 - + 5017: 130112 #点位id对应信息 -pointInfo: #测点类型支持 桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 +pointInfo: #测点类型支持 桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 加速度三项监测592(承德隧道专用) diff --git a/configFiles/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml b/configFiles/弃用备份/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml similarity index 92% rename from configFiles/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml rename to configFiles/弃用备份/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml index c05138b..6ed363e 100644 --- a/configFiles/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml +++ b/configFiles/弃用备份/config_河北省公路基础设施监测_秦皇岛_轻量化特征数据.yaml @@ -14,7 +14,7 @@ ioConfig: - t/province/1308 monitor: #振动是触发式,数据迟缓 cron10min也改成1小时一次 最多上报6条,不进行10min实时上报 - cron10min: 35 0/1 * * * #6/10 * * * * + cron10min: 29 0/1 * * * #6/10 * * * * #普通类型 特征数据 cron1hour: 45 0/1 * * * info: @@ -24,6 +24,7 @@ queryComponent: address: 10.8.30.160:30379 #结构物id对应 structInfo: + 5222: 136004 4993: 130140 #点位id对应信息 pointInfo: #测点类型支持 桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 diff --git a/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.pb.go b/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.pb.go new file mode 100644 index 0000000..ef36e83 --- /dev/null +++ b/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.pb.go @@ -0,0 +1,6502 @@ +// +// Version 1.3.1 +// 创建时间 2023–10-11 + +// 指定protobuf的版本,proto3是最新的语法版本 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.22.2 +// source: MonitorDataProtocol-V1.3.1.proto + +package protoFiles_zjhl + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DataType int32 + +const ( + DataType_REALTIME DataType = 0 + DataType_STATISTICS DataType = 1 + DataType_EMERGENCY DataType = 2 + DataType_INSPECTION DataType = 3 +) + +// Enum value maps for DataType. +var ( + DataType_name = map[int32]string{ + 0: "REALTIME", + 1: "STATISTICS", + 2: "EMERGENCY", + 3: "INSPECTION", + } + DataType_value = map[string]int32{ + "REALTIME": 0, + "STATISTICS": 1, + "EMERGENCY": 2, + "INSPECTION": 3, + } +) + +func (x DataType) Enum() *DataType { + p := new(DataType) + *p = x + return p +} + +func (x DataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataType) Descriptor() protoreflect.EnumDescriptor { + return file_MonitorDataProtocol_V1_3_1_proto_enumTypes[0].Descriptor() +} + +func (DataType) Type() protoreflect.EnumType { + return &file_MonitorDataProtocol_V1_3_1_proto_enumTypes[0] +} + +func (x DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataType.Descriptor instead. +func (DataType) EnumDescriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{0} +} + +type MonitoryType int32 + +const ( + // 风速风向 + MonitoryType_UAN MonitoryType = 0 + // 温湿度 + MonitoryType_RHS MonitoryType = 1 + // 结构空间变形 + MonitoryType_GNSS MonitoryType = 2 + // 振动法索力 + MonitoryType_VIC MonitoryType = 3 + // 直接法索力 + MonitoryType_DIC MonitoryType = 4 + // 支座位移、梁端纵向位移 + MonitoryType_DIS MonitoryType = 5 + // 挠度 + MonitoryType_HPT MonitoryType = 6 + // 应变 + MonitoryType_RSG MonitoryType = 7 + // 转角 + MonitoryType_INC MonitoryType = 8 + // 振动 + MonitoryType_VIB MonitoryType = 9 + // 地震 + MonitoryType_VIE MonitoryType = 10 + // TMD监测 + MonitoryType_TMD MonitoryType = 11 + // 车辆荷载 + MonitoryType_HSD MonitoryType = 12 + // 结构温度 + MonitoryType_TMP MonitoryType = 13 + // 雨量 + MonitoryType_PWS MonitoryType = 14 + // 结冰 + MonitoryType_FRZ MonitoryType = 15 + // 路面状况 + MonitoryType_LMZ MonitoryType = 16 + // 支反力 + MonitoryType_STF MonitoryType = 17 + // 基础冲刷 + MonitoryType_SCO MonitoryType = 18 + // 裂缝 + MonitoryType_CRK MonitoryType = 19 + // 腐蚀 + MonitoryType_COR MonitoryType = 20 + // 振动法预应力 + MonitoryType_VIS MonitoryType = 21 + // 直接法预应力 + MonitoryType_STR MonitoryType = 22 + // 断丝 + MonitoryType_BRK MonitoryType = 23 + // 螺栓紧固力 + MonitoryType_BTF MonitoryType = 24 + // 索夹滑移 + MonitoryType_CSP MonitoryType = 25 + // 能见度 + MonitoryType_VSB MonitoryType = 26 + // 大气浓度 + MonitoryType_ACN MonitoryType = 27 + // 水位 + MonitoryType_WLV MonitoryType = 28 + // 通用 + MonitoryType_CMM MonitoryType = 99 +) + +// Enum value maps for MonitoryType. +var ( + MonitoryType_name = map[int32]string{ + 0: "UAN", + 1: "RHS", + 2: "GNSS", + 3: "VIC", + 4: "DIC", + 5: "DIS", + 6: "HPT", + 7: "RSG", + 8: "INC", + 9: "VIB", + 10: "VIE", + 11: "TMD", + 12: "HSD", + 13: "TMP", + 14: "PWS", + 15: "FRZ", + 16: "LMZ", + 17: "STF", + 18: "SCO", + 19: "CRK", + 20: "COR", + 21: "VIS", + 22: "STR", + 23: "BRK", + 24: "BTF", + 25: "CSP", + 26: "VSB", + 27: "ACN", + 28: "WLV", + 99: "CMM", + } + MonitoryType_value = map[string]int32{ + "UAN": 0, + "RHS": 1, + "GNSS": 2, + "VIC": 3, + "DIC": 4, + "DIS": 5, + "HPT": 6, + "RSG": 7, + "INC": 8, + "VIB": 9, + "VIE": 10, + "TMD": 11, + "HSD": 12, + "TMP": 13, + "PWS": 14, + "FRZ": 15, + "LMZ": 16, + "STF": 17, + "SCO": 18, + "CRK": 19, + "COR": 20, + "VIS": 21, + "STR": 22, + "BRK": 23, + "BTF": 24, + "CSP": 25, + "VSB": 26, + "ACN": 27, + "WLV": 28, + "CMM": 99, + } +) + +func (x MonitoryType) Enum() *MonitoryType { + p := new(MonitoryType) + *p = x + return p +} + +func (x MonitoryType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MonitoryType) Descriptor() protoreflect.EnumDescriptor { + return file_MonitorDataProtocol_V1_3_1_proto_enumTypes[1].Descriptor() +} + +func (MonitoryType) Type() protoreflect.EnumType { + return &file_MonitorDataProtocol_V1_3_1_proto_enumTypes[1] +} + +func (x MonitoryType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MonitoryType.Descriptor instead. +func (MonitoryType) EnumDescriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{1} +} + +// 复合类型 +type ComplexData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 各个监测数据组成的数据,解开后循环解析,生成CRC后进行加密 + SensorData []*DataDefinition `protobuf:"bytes,1,rep,name=sensorData,proto3" json:"sensorData,omitempty"` +} + +func (x *ComplexData) Reset() { + *x = ComplexData{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComplexData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComplexData) ProtoMessage() {} + +func (x *ComplexData) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComplexData.ProtoReflect.Descriptor instead. +func (*ComplexData) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{0} +} + +func (x *ComplexData) GetSensorData() []*DataDefinition { + if x != nil { + return x.SensorData + } + return nil +} + +// 定义数据内容 +type DataDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DataType DataType `protobuf:"varint,1,opt,name=dataType,proto3,enum=protoFiles_zjhl.DataType" json:"dataType,omitempty"` + // 不传该字段 + BridgeCode string `protobuf:"bytes,14,opt,name=bridgeCode,proto3" json:"bridgeCode,omitempty"` + // Types that are assignable to DataBody: + // + // *DataDefinition_RealTimeData + // *DataDefinition_StatisticData + DataBody isDataDefinition_DataBody `protobuf_oneof:"dataBody"` +} + +func (x *DataDefinition) Reset() { + *x = DataDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataDefinition) ProtoMessage() {} + +func (x *DataDefinition) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataDefinition.ProtoReflect.Descriptor instead. +func (*DataDefinition) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{1} +} + +func (x *DataDefinition) GetDataType() DataType { + if x != nil { + return x.DataType + } + return DataType_REALTIME +} + +func (x *DataDefinition) GetBridgeCode() string { + if x != nil { + return x.BridgeCode + } + return "" +} + +func (m *DataDefinition) GetDataBody() isDataDefinition_DataBody { + if m != nil { + return m.DataBody + } + return nil +} + +func (x *DataDefinition) GetRealTimeData() *RealTimeData { + if x, ok := x.GetDataBody().(*DataDefinition_RealTimeData); ok { + return x.RealTimeData + } + return nil +} + +func (x *DataDefinition) GetStatisticData() *StatisticData { + if x, ok := x.GetDataBody().(*DataDefinition_StatisticData); ok { + return x.StatisticData + } + return nil +} + +type isDataDefinition_DataBody interface { + isDataDefinition_DataBody() +} + +type DataDefinition_RealTimeData struct { + // 实时数据 + RealTimeData *RealTimeData `protobuf:"bytes,2,opt,name=realTimeData,proto3,oneof"` +} + +type DataDefinition_StatisticData struct { + // 特征值表 + StatisticData *StatisticData `protobuf:"bytes,3,opt,name=statisticData,proto3,oneof"` +} + +func (*DataDefinition_RealTimeData) isDataDefinition_DataBody() {} + +func (*DataDefinition_StatisticData) isDataDefinition_DataBody() {} + +type RealTimeData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 监测类型 + MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=protoFiles_zjhl.MonitoryType" json:"monitorType,omitempty"` + // 测点编码的别名 + MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` + // 记录时间戳 + EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` + // 采样周期 + Interval int32 `protobuf:"varint,100,opt,name=interval,proto3" json:"interval,omitempty"` + // Types that are assignable to DataBody: + // + // *RealTimeData_Uan + // *RealTimeData_Rhs + // *RealTimeData_Tmp + // *RealTimeData_Gnss + // *RealTimeData_Vic + // *RealTimeData_Dic + // *RealTimeData_Dis + // *RealTimeData_Hpt + // *RealTimeData_Rsg + // *RealTimeData_Inc + // *RealTimeData_Vie + // *RealTimeData_Tmd + // *RealTimeData_Vib + // *RealTimeData_Hsd + // *RealTimeData_Pws + // *RealTimeData_Frz + // *RealTimeData_Lmz + // *RealTimeData_Stf + // *RealTimeData_Sco + // *RealTimeData_Crk + // *RealTimeData_Cor + // *RealTimeData_Vis + // *RealTimeData_Str + // *RealTimeData_Brk + // *RealTimeData_Btf + // *RealTimeData_Csp + // *RealTimeData_Vsb + // *RealTimeData_Acn + // *RealTimeData_Wlv + DataBody isRealTimeData_DataBody `protobuf_oneof:"dataBody"` +} + +func (x *RealTimeData) Reset() { + *x = RealTimeData{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RealTimeData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RealTimeData) ProtoMessage() {} + +func (x *RealTimeData) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RealTimeData.ProtoReflect.Descriptor instead. +func (*RealTimeData) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{2} +} + +func (x *RealTimeData) GetMonitorType() MonitoryType { + if x != nil { + return x.MonitorType + } + return MonitoryType_UAN +} + +func (x *RealTimeData) GetMonitorCode() int64 { + if x != nil { + return x.MonitorCode + } + return 0 +} + +func (x *RealTimeData) GetEventTime() int64 { + if x != nil { + return x.EventTime + } + return 0 +} + +func (x *RealTimeData) GetInterval() int32 { + if x != nil { + return x.Interval + } + return 0 +} + +func (m *RealTimeData) GetDataBody() isRealTimeData_DataBody { + if m != nil { + return m.DataBody + } + return nil +} + +func (x *RealTimeData) GetUan() *UANRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Uan); ok { + return x.Uan + } + return nil +} + +func (x *RealTimeData) GetRhs() *RHSRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Rhs); ok { + return x.Rhs + } + return nil +} + +func (x *RealTimeData) GetTmp() *TMPRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Tmp); ok { + return x.Tmp + } + return nil +} + +func (x *RealTimeData) GetGnss() *GNSSRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Gnss); ok { + return x.Gnss + } + return nil +} + +func (x *RealTimeData) GetVic() *VICRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Vic); ok { + return x.Vic + } + return nil +} + +func (x *RealTimeData) GetDic() *DICRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Dic); ok { + return x.Dic + } + return nil +} + +func (x *RealTimeData) GetDis() *DISRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Dis); ok { + return x.Dis + } + return nil +} + +func (x *RealTimeData) GetHpt() *HPTRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Hpt); ok { + return x.Hpt + } + return nil +} + +func (x *RealTimeData) GetRsg() *RSGRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Rsg); ok { + return x.Rsg + } + return nil +} + +func (x *RealTimeData) GetInc() *INCRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Inc); ok { + return x.Inc + } + return nil +} + +func (x *RealTimeData) GetVie() *VIERealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Vie); ok { + return x.Vie + } + return nil +} + +func (x *RealTimeData) GetTmd() *TMDRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Tmd); ok { + return x.Tmd + } + return nil +} + +func (x *RealTimeData) GetVib() *VIBRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Vib); ok { + return x.Vib + } + return nil +} + +func (x *RealTimeData) GetHsd() *HSDRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Hsd); ok { + return x.Hsd + } + return nil +} + +func (x *RealTimeData) GetPws() *PWSRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Pws); ok { + return x.Pws + } + return nil +} + +func (x *RealTimeData) GetFrz() *FRZRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Frz); ok { + return x.Frz + } + return nil +} + +func (x *RealTimeData) GetLmz() *LMZRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Lmz); ok { + return x.Lmz + } + return nil +} + +func (x *RealTimeData) GetStf() *STFRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Stf); ok { + return x.Stf + } + return nil +} + +func (x *RealTimeData) GetSco() *SCORealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Sco); ok { + return x.Sco + } + return nil +} + +func (x *RealTimeData) GetCrk() *CRKRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Crk); ok { + return x.Crk + } + return nil +} + +func (x *RealTimeData) GetCor() *CORRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Cor); ok { + return x.Cor + } + return nil +} + +func (x *RealTimeData) GetVis() *VISRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Vis); ok { + return x.Vis + } + return nil +} + +func (x *RealTimeData) GetStr() *STRRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Str); ok { + return x.Str + } + return nil +} + +func (x *RealTimeData) GetBrk() *BRKRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Brk); ok { + return x.Brk + } + return nil +} + +func (x *RealTimeData) GetBtf() *BTFRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Btf); ok { + return x.Btf + } + return nil +} + +func (x *RealTimeData) GetCsp() *CSPRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Csp); ok { + return x.Csp + } + return nil +} + +func (x *RealTimeData) GetVsb() *VSBRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Vsb); ok { + return x.Vsb + } + return nil +} + +func (x *RealTimeData) GetAcn() *ACNRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Acn); ok { + return x.Acn + } + return nil +} + +func (x *RealTimeData) GetWlv() *WLVRealTime { + if x, ok := x.GetDataBody().(*RealTimeData_Wlv); ok { + return x.Wlv + } + return nil +} + +type isRealTimeData_DataBody interface { + isRealTimeData_DataBody() +} + +type RealTimeData_Uan struct { + // 实时数据 + // 风速风向 + Uan *UANRealTime `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` +} + +type RealTimeData_Rhs struct { + // 温湿度 + Rhs *RHSRealTime `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` +} + +type RealTimeData_Tmp struct { + // 结构温度 + Tmp *TMPRealTime `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` +} + +type RealTimeData_Gnss struct { + // 空间变形 + Gnss *GNSSRealTime `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` +} + +type RealTimeData_Vic struct { + // 索力 + Vic *VICRealTime `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` +} + +type RealTimeData_Dic struct { + Dic *DICRealTime `protobuf:"bytes,9,opt,name=dic,proto3,oneof"` +} + +type RealTimeData_Dis struct { + // 位移 + Dis *DISRealTime `protobuf:"bytes,10,opt,name=dis,proto3,oneof"` +} + +type RealTimeData_Hpt struct { + // 挠度 + Hpt *HPTRealTime `protobuf:"bytes,11,opt,name=hpt,proto3,oneof"` +} + +type RealTimeData_Rsg struct { + // 静应变 + Rsg *RSGRealTime `protobuf:"bytes,12,opt,name=rsg,proto3,oneof"` +} + +type RealTimeData_Inc struct { + // 转角 + Inc *INCRealTime `protobuf:"bytes,13,opt,name=inc,proto3,oneof"` +} + +type RealTimeData_Vie struct { + // 地震船撞 + Vie *VIERealTime `protobuf:"bytes,14,opt,name=vie,proto3,oneof"` +} + +type RealTimeData_Tmd struct { + // TMD + Tmd *TMDRealTime `protobuf:"bytes,15,opt,name=tmd,proto3,oneof"` +} + +type RealTimeData_Vib struct { + // 动力特性 + Vib *VIBRealTime `protobuf:"bytes,16,opt,name=vib,proto3,oneof"` +} + +type RealTimeData_Hsd struct { + // 动态称重 + Hsd *HSDRealTime `protobuf:"bytes,17,opt,name=hsd,proto3,oneof"` +} + +type RealTimeData_Pws struct { + // 雨量 + Pws *PWSRealTime `protobuf:"bytes,18,opt,name=pws,proto3,oneof"` +} + +type RealTimeData_Frz struct { + // 结冰 + Frz *FRZRealTime `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` +} + +type RealTimeData_Lmz struct { + // 路面状况 + Lmz *LMZRealTime `protobuf:"bytes,20,opt,name=lmz,proto3,oneof"` +} + +type RealTimeData_Stf struct { + // 支反力 + Stf *STFRealTime `protobuf:"bytes,21,opt,name=stf,proto3,oneof"` +} + +type RealTimeData_Sco struct { + // 基础冲刷 + Sco *SCORealTime `protobuf:"bytes,22,opt,name=sco,proto3,oneof"` +} + +type RealTimeData_Crk struct { + // 裂缝 + Crk *CRKRealTime `protobuf:"bytes,23,opt,name=crk,proto3,oneof"` +} + +type RealTimeData_Cor struct { + // 腐蚀 + Cor *CORRealTime `protobuf:"bytes,25,opt,name=cor,proto3,oneof"` +} + +type RealTimeData_Vis struct { + // 振动法预应力 + Vis *VISRealTime `protobuf:"bytes,26,opt,name=vis,proto3,oneof"` +} + +type RealTimeData_Str struct { + // 直接法预应力 + Str *STRRealTime `protobuf:"bytes,27,opt,name=str,proto3,oneof"` +} + +type RealTimeData_Brk struct { + // 断丝 + Brk *BRKRealTime `protobuf:"bytes,28,opt,name=brk,proto3,oneof"` +} + +type RealTimeData_Btf struct { + // 螺栓紧固力 + Btf *BTFRealTime `protobuf:"bytes,29,opt,name=btf,proto3,oneof"` +} + +type RealTimeData_Csp struct { + // 索夹滑移 + Csp *CSPRealTime `protobuf:"bytes,30,opt,name=csp,proto3,oneof"` +} + +type RealTimeData_Vsb struct { + // 能见度 + Vsb *VSBRealTime `protobuf:"bytes,31,opt,name=vsb,proto3,oneof"` +} + +type RealTimeData_Acn struct { + // 大气浓度 + Acn *ACNRealTime `protobuf:"bytes,32,opt,name=acn,proto3,oneof"` +} + +type RealTimeData_Wlv struct { + // 水位 + Wlv *WLVRealTime `protobuf:"bytes,33,opt,name=wlv,proto3,oneof"` +} + +func (*RealTimeData_Uan) isRealTimeData_DataBody() {} + +func (*RealTimeData_Rhs) isRealTimeData_DataBody() {} + +func (*RealTimeData_Tmp) isRealTimeData_DataBody() {} + +func (*RealTimeData_Gnss) isRealTimeData_DataBody() {} + +func (*RealTimeData_Vic) isRealTimeData_DataBody() {} + +func (*RealTimeData_Dic) isRealTimeData_DataBody() {} + +func (*RealTimeData_Dis) isRealTimeData_DataBody() {} + +func (*RealTimeData_Hpt) isRealTimeData_DataBody() {} + +func (*RealTimeData_Rsg) isRealTimeData_DataBody() {} + +func (*RealTimeData_Inc) isRealTimeData_DataBody() {} + +func (*RealTimeData_Vie) isRealTimeData_DataBody() {} + +func (*RealTimeData_Tmd) isRealTimeData_DataBody() {} + +func (*RealTimeData_Vib) isRealTimeData_DataBody() {} + +func (*RealTimeData_Hsd) isRealTimeData_DataBody() {} + +func (*RealTimeData_Pws) isRealTimeData_DataBody() {} + +func (*RealTimeData_Frz) isRealTimeData_DataBody() {} + +func (*RealTimeData_Lmz) isRealTimeData_DataBody() {} + +func (*RealTimeData_Stf) isRealTimeData_DataBody() {} + +func (*RealTimeData_Sco) isRealTimeData_DataBody() {} + +func (*RealTimeData_Crk) isRealTimeData_DataBody() {} + +func (*RealTimeData_Cor) isRealTimeData_DataBody() {} + +func (*RealTimeData_Vis) isRealTimeData_DataBody() {} + +func (*RealTimeData_Str) isRealTimeData_DataBody() {} + +func (*RealTimeData_Brk) isRealTimeData_DataBody() {} + +func (*RealTimeData_Btf) isRealTimeData_DataBody() {} + +func (*RealTimeData_Csp) isRealTimeData_DataBody() {} + +func (*RealTimeData_Vsb) isRealTimeData_DataBody() {} + +func (*RealTimeData_Acn) isRealTimeData_DataBody() {} + +func (*RealTimeData_Wlv) isRealTimeData_DataBody() {} + +// 风速风向的指标hsd +type UANRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 风速 + WindVelocity float32 `protobuf:"fixed32,1,opt,name=windVelocity,proto3" json:"windVelocity,omitempty"` + // 风向 + WindDirection float32 `protobuf:"fixed32,2,opt,name=windDirection,proto3" json:"windDirection,omitempty"` + // 风攻角 + WindAttackAngle *float32 `protobuf:"fixed32,3,opt,name=windAttackAngle,proto3,oneof" json:"windAttackAngle,omitempty"` +} + +func (x *UANRealTime) Reset() { + *x = UANRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UANRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UANRealTime) ProtoMessage() {} + +func (x *UANRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UANRealTime.ProtoReflect.Descriptor instead. +func (*UANRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{3} +} + +func (x *UANRealTime) GetWindVelocity() float32 { + if x != nil { + return x.WindVelocity + } + return 0 +} + +func (x *UANRealTime) GetWindDirection() float32 { + if x != nil { + return x.WindDirection + } + return 0 +} + +func (x *UANRealTime) GetWindAttackAngle() float32 { + if x != nil && x.WindAttackAngle != nil { + return *x.WindAttackAngle + } + return 0 +} + +// 温湿度指标 +type RHSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 温度 + Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` + // 湿度 + Humidity float32 `protobuf:"fixed32,2,opt,name=humidity,proto3" json:"humidity,omitempty"` +} + +func (x *RHSRealTime) Reset() { + *x = RHSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RHSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RHSRealTime) ProtoMessage() {} + +func (x *RHSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RHSRealTime.ProtoReflect.Descriptor instead. +func (*RHSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{4} +} + +func (x *RHSRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +func (x *RHSRealTime) GetHumidity() float32 { + if x != nil { + return x.Humidity + } + return 0 +} + +// 温度指标 +type TMPRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 温度 + Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *TMPRealTime) Reset() { + *x = TMPRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TMPRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TMPRealTime) ProtoMessage() {} + +func (x *TMPRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TMPRealTime.ProtoReflect.Descriptor instead. +func (*TMPRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{5} +} + +func (x *TMPRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +type GNSSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 横桥向 + X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` + // 纵桥向 + Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` + // 竖向 + Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` +} + +func (x *GNSSRealTime) Reset() { + *x = GNSSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GNSSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GNSSRealTime) ProtoMessage() {} + +func (x *GNSSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GNSSRealTime.ProtoReflect.Descriptor instead. +func (*GNSSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{6} +} + +func (x *GNSSRealTime) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *GNSSRealTime) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +func (x *GNSSRealTime) GetZ() float32 { + if x != nil { + return x.Z + } + return 0 +} + +// 索力监测 +type VICRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 索力值 + CableForce float32 `protobuf:"fixed32,1,opt,name=cableForce,proto3" json:"cableForce,omitempty"` + // 基频 + FundamentalFrequency *float32 `protobuf:"fixed32,2,opt,name=fundamentalFrequency,proto3,oneof" json:"fundamentalFrequency,omitempty"` +} + +func (x *VICRealTime) Reset() { + *x = VICRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VICRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VICRealTime) ProtoMessage() {} + +func (x *VICRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VICRealTime.ProtoReflect.Descriptor instead. +func (*VICRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{7} +} + +func (x *VICRealTime) GetCableForce() float32 { + if x != nil { + return x.CableForce + } + return 0 +} + +func (x *VICRealTime) GetFundamentalFrequency() float32 { + if x != nil && x.FundamentalFrequency != nil { + return *x.FundamentalFrequency + } + return 0 +} + +// 位移(支座位移、梁端纵向位移) +type DISRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 位移值 + Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *DISRealTime) Reset() { + *x = DISRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DISRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DISRealTime) ProtoMessage() {} + +func (x *DISRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DISRealTime.ProtoReflect.Descriptor instead. +func (*DISRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{8} +} + +func (x *DISRealTime) GetDisplacement() float32 { + if x != nil { + return x.Displacement + } + return 0 +} + +func (x *DISRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 裂缝 +type CRKRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 裂缝宽度 + CrackWidth float32 `protobuf:"fixed32,1,opt,name=crackWidth,proto3" json:"crackWidth,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *CRKRealTime) Reset() { + *x = CRKRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CRKRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CRKRealTime) ProtoMessage() {} + +func (x *CRKRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CRKRealTime.ProtoReflect.Descriptor instead. +func (*CRKRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{9} +} + +func (x *CRKRealTime) GetCrackWidth() float32 { + if x != nil { + return x.CrackWidth + } + return 0 +} + +func (x *CRKRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 挠度监测 +type HPTRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 挠度值 + Deflection float32 `protobuf:"fixed32,1,opt,name=deflection,proto3" json:"deflection,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *HPTRealTime) Reset() { + *x = HPTRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HPTRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HPTRealTime) ProtoMessage() {} + +func (x *HPTRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HPTRealTime.ProtoReflect.Descriptor instead. +func (*HPTRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{10} +} + +func (x *HPTRealTime) GetDeflection() float32 { + if x != nil { + return x.Deflection + } + return 0 +} + +func (x *HPTRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 静应变监测 +type RSGRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 应变值 + Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *RSGRealTime) Reset() { + *x = RSGRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RSGRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RSGRealTime) ProtoMessage() {} + +func (x *RSGRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_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 RSGRealTime.ProtoReflect.Descriptor instead. +func (*RSGRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{11} +} + +func (x *RSGRealTime) GetStrain() float32 { + if x != nil { + return x.Strain + } + return 0 +} + +func (x *RSGRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 梁端转角监测 +type INCRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 横桥向X + X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` + // 纵桥向Y + Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` + // 如传感器有温度数据 + Temperature []float32 `protobuf:"fixed32,3,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *INCRealTime) Reset() { + *x = INCRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *INCRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*INCRealTime) ProtoMessage() {} + +func (x *INCRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_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 INCRealTime.ProtoReflect.Descriptor instead. +func (*INCRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{12} +} + +func (x *INCRealTime) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *INCRealTime) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +func (x *INCRealTime) GetTemperature() []float32 { + if x != nil { + return x.Temperature + } + return nil +} + +// 一秒钟内动力特性 +type VIBRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` +} + +func (x *VIBRealTime) Reset() { + *x = VIBRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VIBRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VIBRealTime) ProtoMessage() {} + +func (x *VIBRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VIBRealTime.ProtoReflect.Descriptor instead. +func (*VIBRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{13} +} + +func (x *VIBRealTime) GetMonitorValues() []float32 { + if x != nil { + return x.MonitorValues + } + return nil +} + +// 一秒钟内地震船撞 +type VIERealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 多通道监测值 + MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` +} + +func (x *VIERealTime) Reset() { + *x = VIERealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VIERealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VIERealTime) ProtoMessage() {} + +func (x *VIERealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VIERealTime.ProtoReflect.Descriptor instead. +func (*VIERealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{14} +} + +func (x *VIERealTime) GetMonitorValues() []float32 { + if x != nil { + return x.MonitorValues + } + return nil +} + +// 一秒钟内TMD +type TMDRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` +} + +func (x *TMDRealTime) Reset() { + *x = TMDRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TMDRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TMDRealTime) ProtoMessage() {} + +func (x *TMDRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TMDRealTime.ProtoReflect.Descriptor instead. +func (*TMDRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{15} +} + +func (x *TMDRealTime) GetMonitorValues() []float32 { + if x != nil { + return x.MonitorValues + } + return nil +} + +// 车辆荷载 --动态称重 +type HSDRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 车道号 + LaneId int32 `protobuf:"varint,1,opt,name=laneId,proto3" json:"laneId,omitempty"` + // 上下行 + OperDirec int32 `protobuf:"varint,2,opt,name=operDirec,proto3" json:"operDirec,omitempty"` + // 轴数 + AxleNum int32 `protobuf:"varint,3,opt,name=axleNum,proto3" json:"axleNum,omitempty"` + // 轴组数 + AxleGrpNum int32 `protobuf:"varint,4,opt,name=axleGrpNum,proto3" json:"axleGrpNum,omitempty"` + // 车重 + GrossLoad int32 `protobuf:"varint,5,opt,name=grossLoad,proto3" json:"grossLoad,omitempty"` + // 车型 + VehType int32 `protobuf:"varint,6,opt,name=vehType,proto3" json:"vehType,omitempty"` + // 左1轮重 + LeftWheelWeight1 int32 `protobuf:"varint,7,opt,name=leftWheelWeight1,proto3" json:"leftWheelWeight1,omitempty"` + // 左2轮重 + LeftWheelWeight2 int32 `protobuf:"varint,8,opt,name=leftWheelWeight2,proto3" json:"leftWheelWeight2,omitempty"` + // 左3轮重 + LeftWheelWeight3 int32 `protobuf:"varint,9,opt,name=leftWheelWeight3,proto3" json:"leftWheelWeight3,omitempty"` + // 左4轮重 + LeftWheelWeight4 int32 `protobuf:"varint,10,opt,name=leftWheelWeight4,proto3" json:"leftWheelWeight4,omitempty"` + // 左5轮重 + LeftWheelWeight5 int32 `protobuf:"varint,11,opt,name=leftWheelWeight5,proto3" json:"leftWheelWeight5,omitempty"` + // 左6轮重 + LeftWheelWeight6 int32 `protobuf:"varint,12,opt,name=leftWheelWeight6,proto3" json:"leftWheelWeight6,omitempty"` + // 左7轮重 + LeftWheelWeight7 int32 `protobuf:"varint,13,opt,name=leftWheelWeight7,proto3" json:"leftWheelWeight7,omitempty"` + // 左8轮重 + LeftWheelWeight8 int32 `protobuf:"varint,14,opt,name=leftWheelWeight8,proto3" json:"leftWheelWeight8,omitempty"` + // 右1轮重 + RightWheelWeight1 int32 `protobuf:"varint,15,opt,name=rightWheelWeight1,proto3" json:"rightWheelWeight1,omitempty"` + // 右2轮重 + RightWheelWeight2 int32 `protobuf:"varint,16,opt,name=rightWheelWeight2,proto3" json:"rightWheelWeight2,omitempty"` + // 右3轮重 + RightWheelWeight3 int32 `protobuf:"varint,17,opt,name=rightWheelWeight3,proto3" json:"rightWheelWeight3,omitempty"` + // 右4轮重 + RightWheelWeight4 int32 `protobuf:"varint,18,opt,name=rightWheelWeight4,proto3" json:"rightWheelWeight4,omitempty"` + // 右5轮重 + RightWheelWeight5 int32 `protobuf:"varint,19,opt,name=rightWheelWeight5,proto3" json:"rightWheelWeight5,omitempty"` + // 右6轮重 + RightWheelWeight6 int32 `protobuf:"varint,20,opt,name=rightWheelWeight6,proto3" json:"rightWheelWeight6,omitempty"` + // 右7轮重 + RightWheelWeight7 int32 `protobuf:"varint,21,opt,name=rightWheelWeight7,proto3" json:"rightWheelWeight7,omitempty"` + // 右8轮重 + RightWheelWeight8 int32 `protobuf:"varint,22,opt,name=rightWheelWeight8,proto3" json:"rightWheelWeight8,omitempty"` + // 轴1-轴2距离 + AxleDis1 int32 `protobuf:"varint,23,opt,name=axleDis1,proto3" json:"axleDis1,omitempty"` + // 轴2-轴3距离 + AxleDis2 int32 `protobuf:"varint,24,opt,name=axleDis2,proto3" json:"axleDis2,omitempty"` + // 轴3-轴4距离 + AxleDis3 int32 `protobuf:"varint,25,opt,name=axleDis3,proto3" json:"axleDis3,omitempty"` + // 轴4-轴5距离 + AxleDis4 int32 `protobuf:"varint,26,opt,name=axleDis4,proto3" json:"axleDis4,omitempty"` + // 轴5-轴6距离 + AxleDis5 int32 `protobuf:"varint,27,opt,name=axleDis5,proto3" json:"axleDis5,omitempty"` + // 轴6-轴7距离 + AxleDis6 int32 `protobuf:"varint,28,opt,name=axleDis6,proto3" json:"axleDis6,omitempty"` + // 轴7-轴8距离 + AxleDis7 int32 `protobuf:"varint,29,opt,name=axleDis7,proto3" json:"axleDis7,omitempty"` + // 违例码 + ViolationId *int32 `protobuf:"varint,30,opt,name=violationId,proto3,oneof" json:"violationId,omitempty"` + // 超限标示 + OverloadSign *int32 `protobuf:"varint,31,opt,name=overloadSign,proto3,oneof" json:"overloadSign,omitempty"` + // 车速 + Speed int32 `protobuf:"varint,32,opt,name=speed,proto3" json:"speed,omitempty"` + // 加速度 + Acceleration *float32 `protobuf:"fixed32,33,opt,name=acceleration,proto3,oneof" json:"acceleration,omitempty"` + // 车辆长度 + VehLength int32 `protobuf:"varint,34,opt,name=vehLength,proto3" json:"vehLength,omitempty"` + // 当量轴次 + Qat *float32 `protobuf:"fixed32,35,opt,name=qat,proto3,oneof" json:"qat,omitempty"` + // 车牌号 + LicencePlate *string `protobuf:"bytes,36,opt,name=licencePlate,proto3,oneof" json:"licencePlate,omitempty"` + // 车牌颜色 + LicencePlateColor *string `protobuf:"bytes,37,opt,name=licencePlateColor,proto3,oneof" json:"licencePlateColor,omitempty"` + // 图片id + PicId *int32 `protobuf:"varint,38,opt,name=picId,proto3,oneof" json:"picId,omitempty"` + // 路面温度 + RoadTemperature *float32 `protobuf:"fixed32,39,opt,name=roadTemperature,proto3,oneof" json:"roadTemperature,omitempty"` +} + +func (x *HSDRealTime) Reset() { + *x = HSDRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HSDRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HSDRealTime) ProtoMessage() {} + +func (x *HSDRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HSDRealTime.ProtoReflect.Descriptor instead. +func (*HSDRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{16} +} + +func (x *HSDRealTime) GetLaneId() int32 { + if x != nil { + return x.LaneId + } + return 0 +} + +func (x *HSDRealTime) GetOperDirec() int32 { + if x != nil { + return x.OperDirec + } + return 0 +} + +func (x *HSDRealTime) GetAxleNum() int32 { + if x != nil { + return x.AxleNum + } + return 0 +} + +func (x *HSDRealTime) GetAxleGrpNum() int32 { + if x != nil { + return x.AxleGrpNum + } + return 0 +} + +func (x *HSDRealTime) GetGrossLoad() int32 { + if x != nil { + return x.GrossLoad + } + return 0 +} + +func (x *HSDRealTime) GetVehType() int32 { + if x != nil { + return x.VehType + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight1() int32 { + if x != nil { + return x.LeftWheelWeight1 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight2() int32 { + if x != nil { + return x.LeftWheelWeight2 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight3() int32 { + if x != nil { + return x.LeftWheelWeight3 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight4() int32 { + if x != nil { + return x.LeftWheelWeight4 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight5() int32 { + if x != nil { + return x.LeftWheelWeight5 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight6() int32 { + if x != nil { + return x.LeftWheelWeight6 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight7() int32 { + if x != nil { + return x.LeftWheelWeight7 + } + return 0 +} + +func (x *HSDRealTime) GetLeftWheelWeight8() int32 { + if x != nil { + return x.LeftWheelWeight8 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight1() int32 { + if x != nil { + return x.RightWheelWeight1 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight2() int32 { + if x != nil { + return x.RightWheelWeight2 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight3() int32 { + if x != nil { + return x.RightWheelWeight3 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight4() int32 { + if x != nil { + return x.RightWheelWeight4 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight5() int32 { + if x != nil { + return x.RightWheelWeight5 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight6() int32 { + if x != nil { + return x.RightWheelWeight6 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight7() int32 { + if x != nil { + return x.RightWheelWeight7 + } + return 0 +} + +func (x *HSDRealTime) GetRightWheelWeight8() int32 { + if x != nil { + return x.RightWheelWeight8 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis1() int32 { + if x != nil { + return x.AxleDis1 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis2() int32 { + if x != nil { + return x.AxleDis2 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis3() int32 { + if x != nil { + return x.AxleDis3 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis4() int32 { + if x != nil { + return x.AxleDis4 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis5() int32 { + if x != nil { + return x.AxleDis5 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis6() int32 { + if x != nil { + return x.AxleDis6 + } + return 0 +} + +func (x *HSDRealTime) GetAxleDis7() int32 { + if x != nil { + return x.AxleDis7 + } + return 0 +} + +func (x *HSDRealTime) GetViolationId() int32 { + if x != nil && x.ViolationId != nil { + return *x.ViolationId + } + return 0 +} + +func (x *HSDRealTime) GetOverloadSign() int32 { + if x != nil && x.OverloadSign != nil { + return *x.OverloadSign + } + return 0 +} + +func (x *HSDRealTime) GetSpeed() int32 { + if x != nil { + return x.Speed + } + return 0 +} + +func (x *HSDRealTime) GetAcceleration() float32 { + if x != nil && x.Acceleration != nil { + return *x.Acceleration + } + return 0 +} + +func (x *HSDRealTime) GetVehLength() int32 { + if x != nil { + return x.VehLength + } + return 0 +} + +func (x *HSDRealTime) GetQat() float32 { + if x != nil && x.Qat != nil { + return *x.Qat + } + return 0 +} + +func (x *HSDRealTime) GetLicencePlate() string { + if x != nil && x.LicencePlate != nil { + return *x.LicencePlate + } + return "" +} + +func (x *HSDRealTime) GetLicencePlateColor() string { + if x != nil && x.LicencePlateColor != nil { + return *x.LicencePlateColor + } + return "" +} + +func (x *HSDRealTime) GetPicId() int32 { + if x != nil && x.PicId != nil { + return *x.PicId + } + return 0 +} + +func (x *HSDRealTime) GetRoadTemperature() float32 { + if x != nil && x.RoadTemperature != nil { + return *x.RoadTemperature + } + return 0 +} + +// 雨量指标 +type PWSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 雨量 + Rainfall float32 `protobuf:"fixed32,1,opt,name=rainfall,proto3" json:"rainfall,omitempty"` +} + +func (x *PWSRealTime) Reset() { + *x = PWSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PWSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PWSRealTime) ProtoMessage() {} + +func (x *PWSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PWSRealTime.ProtoReflect.Descriptor instead. +func (*PWSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{17} +} + +func (x *PWSRealTime) GetRainfall() float32 { + if x != nil { + return x.Rainfall + } + return 0 +} + +// 结冰监测 +type FRZRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 结冰厚度 + IceThickness float32 `protobuf:"fixed32,1,opt,name=iceThickness,proto3" json:"iceThickness,omitempty"` + // 如传感器有温度数据 + Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *FRZRealTime) Reset() { + *x = FRZRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FRZRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FRZRealTime) ProtoMessage() {} + +func (x *FRZRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FRZRealTime.ProtoReflect.Descriptor instead. +func (*FRZRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{18} +} + +func (x *FRZRealTime) GetIceThickness() float32 { + if x != nil { + return x.IceThickness + } + return 0 +} + +func (x *FRZRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +// 路面状况监测 +type LMZRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 路面状况 + RoadCondition float32 `protobuf:"fixed32,1,opt,name=roadCondition,proto3" json:"roadCondition,omitempty"` + // 如传感器有温度数据 + Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *LMZRealTime) Reset() { + *x = LMZRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LMZRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LMZRealTime) ProtoMessage() {} + +func (x *LMZRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LMZRealTime.ProtoReflect.Descriptor instead. +func (*LMZRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{19} +} + +func (x *LMZRealTime) GetRoadCondition() float32 { + if x != nil { + return x.RoadCondition + } + return 0 +} + +func (x *LMZRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +// 直接法测索力监测 +type DICRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 索力值 + CableForce float32 `protobuf:"fixed32,1,opt,name=cableForce,proto3" json:"cableForce,omitempty"` + // 如传感器有温度数据 + Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *DICRealTime) Reset() { + *x = DICRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DICRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DICRealTime) ProtoMessage() {} + +func (x *DICRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DICRealTime.ProtoReflect.Descriptor instead. +func (*DICRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{20} +} + +func (x *DICRealTime) GetCableForce() float32 { + if x != nil { + return x.CableForce + } + return 0 +} + +func (x *DICRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +// 支反力监测 +type STFRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 反力值 + SupportAction float32 `protobuf:"fixed32,1,opt,name=supportAction,proto3" json:"supportAction,omitempty"` + // 如传感器有温度数据 + Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *STFRealTime) Reset() { + *x = STFRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *STFRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*STFRealTime) ProtoMessage() {} + +func (x *STFRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use STFRealTime.ProtoReflect.Descriptor instead. +func (*STFRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{21} +} + +func (x *STFRealTime) GetSupportAction() float32 { + if x != nil { + return x.SupportAction + } + return 0 +} + +func (x *STFRealTime) GetTemperature() float32 { + if x != nil { + return x.Temperature + } + return 0 +} + +// 基础冲刷监测 +type SCORealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 深度 + Depth float32 `protobuf:"fixed32,1,opt,name=depth,proto3" json:"depth,omitempty"` +} + +func (x *SCORealTime) Reset() { + *x = SCORealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCORealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCORealTime) ProtoMessage() {} + +func (x *SCORealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCORealTime.ProtoReflect.Descriptor instead. +func (*SCORealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{22} +} + +func (x *SCORealTime) GetDepth() float32 { + if x != nil { + return x.Depth + } + return 0 +} + +// 腐蚀监测 +type CORRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 氯离子浓度 + ChlorideConcentration float32 `protobuf:"fixed32,1,opt,name=chlorideConcentration,proto3" json:"chlorideConcentration,omitempty"` + // 侵蚀深度 + CorrosionDepth float32 `protobuf:"fixed32,2,opt,name=corrosionDepth,proto3" json:"corrosionDepth,omitempty"` +} + +func (x *CORRealTime) Reset() { + *x = CORRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CORRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CORRealTime) ProtoMessage() {} + +func (x *CORRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CORRealTime.ProtoReflect.Descriptor instead. +func (*CORRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{23} +} + +func (x *CORRealTime) GetChlorideConcentration() float32 { + if x != nil { + return x.ChlorideConcentration + } + return 0 +} + +func (x *CORRealTime) GetCorrosionDepth() float32 { + if x != nil { + return x.CorrosionDepth + } + return 0 +} + +// 振动法预应力监测 +type VISRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 预应力 + MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` +} + +func (x *VISRealTime) Reset() { + *x = VISRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VISRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VISRealTime) ProtoMessage() {} + +func (x *VISRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VISRealTime.ProtoReflect.Descriptor instead. +func (*VISRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{24} +} + +func (x *VISRealTime) GetMonitorValues() []float32 { + if x != nil { + return x.MonitorValues + } + return nil +} + +// 预应力监测 +type STRRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 预应力值 + Stress float32 `protobuf:"fixed32,1,opt,name=stress,proto3" json:"stress,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *STRRealTime) Reset() { + *x = STRRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *STRRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*STRRealTime) ProtoMessage() {} + +func (x *STRRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use STRRealTime.ProtoReflect.Descriptor instead. +func (*STRRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{25} +} + +func (x *STRRealTime) GetStress() float32 { + if x != nil { + return x.Stress + } + return 0 +} + +func (x *STRRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 断丝监测 +type BRKRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 状态 + State bool `protobuf:"varint,1,opt,name=state,proto3" json:"state,omitempty"` +} + +func (x *BRKRealTime) Reset() { + *x = BRKRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BRKRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BRKRealTime) ProtoMessage() {} + +func (x *BRKRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BRKRealTime.ProtoReflect.Descriptor instead. +func (*BRKRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{26} +} + +func (x *BRKRealTime) GetState() bool { + if x != nil { + return x.State + } + return false +} + +// 螺栓紧固力监测 +type BTFRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 力值 + BoltTightForce float32 `protobuf:"fixed32,1,opt,name=boltTightForce,proto3" json:"boltTightForce,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *BTFRealTime) Reset() { + *x = BTFRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BTFRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BTFRealTime) ProtoMessage() {} + +func (x *BTFRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BTFRealTime.ProtoReflect.Descriptor instead. +func (*BTFRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{27} +} + +func (x *BTFRealTime) GetBoltTightForce() float32 { + if x != nil { + return x.BoltTightForce + } + return 0 +} + +func (x *BTFRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 索夹滑移监测 +type CSPRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 位移值 + Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` + // 如传感器有温度数据 + Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` +} + +func (x *CSPRealTime) Reset() { + *x = CSPRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPRealTime) ProtoMessage() {} + +func (x *CSPRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPRealTime.ProtoReflect.Descriptor instead. +func (*CSPRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{28} +} + +func (x *CSPRealTime) GetDisplacement() float32 { + if x != nil { + return x.Displacement + } + return 0 +} + +func (x *CSPRealTime) GetTemperature() float32 { + if x != nil && x.Temperature != nil { + return *x.Temperature + } + return 0 +} + +// 能见度 +type VSBRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 能见度值 + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *VSBRealTime) Reset() { + *x = VSBRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VSBRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VSBRealTime) ProtoMessage() {} + +func (x *VSBRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VSBRealTime.ProtoReflect.Descriptor instead. +func (*VSBRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{29} +} + +func (x *VSBRealTime) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +// 大气浓度 +type ACNRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 大气浓度最大值 + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *ACNRealTime) Reset() { + *x = ACNRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ACNRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ACNRealTime) ProtoMessage() {} + +func (x *ACNRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ACNRealTime.ProtoReflect.Descriptor instead. +func (*ACNRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{30} +} + +func (x *ACNRealTime) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +// 水位 +type WLVRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 水位 + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *WLVRealTime) Reset() { + *x = WLVRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WLVRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WLVRealTime) ProtoMessage() {} + +func (x *WLVRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WLVRealTime.ProtoReflect.Descriptor instead. +func (*WLVRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{31} +} + +func (x *WLVRealTime) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +// 特征值 +type StatisticData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 监测类型 + MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=protoFiles_zjhl.MonitoryType" json:"monitorType,omitempty"` + // 测点编码的别名 + MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` + // 记录时间戳 + EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` + // 采样周期 + Interval int32 `protobuf:"varint,100,opt,name=interval,proto3" json:"interval,omitempty"` + // Types that are assignable to DataBody: + // + // *StatisticData_Uan + // *StatisticData_Rhs + // *StatisticData_Tmp + // *StatisticData_Gnss + // *StatisticData_Vic + // *StatisticData_Dis + // *StatisticData_Hpt + // *StatisticData_Rsg + // *StatisticData_Inc + // *StatisticData_Vie + // *StatisticData_Tmd + // *StatisticData_Vib + // *StatisticData_Hsd + // *StatisticData_And + // *StatisticData_Crk + // *StatisticData_Frz + // *StatisticData_Pws + // *StatisticData_Vsb + // *StatisticData_Acn + // *StatisticData_Wlv + // *StatisticData_Btf + // *StatisticData_Csp + DataBody isStatisticData_DataBody `protobuf_oneof:"dataBody"` +} + +func (x *StatisticData) Reset() { + *x = StatisticData{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatisticData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatisticData) ProtoMessage() {} + +func (x *StatisticData) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatisticData.ProtoReflect.Descriptor instead. +func (*StatisticData) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{32} +} + +func (x *StatisticData) GetMonitorType() MonitoryType { + if x != nil { + return x.MonitorType + } + return MonitoryType_UAN +} + +func (x *StatisticData) GetMonitorCode() int64 { + if x != nil { + return x.MonitorCode + } + return 0 +} + +func (x *StatisticData) GetEventTime() int64 { + if x != nil { + return x.EventTime + } + return 0 +} + +func (x *StatisticData) GetInterval() int32 { + if x != nil { + return x.Interval + } + return 0 +} + +func (m *StatisticData) GetDataBody() isStatisticData_DataBody { + if m != nil { + return m.DataBody + } + return nil +} + +func (x *StatisticData) GetUan() *UANStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Uan); ok { + return x.Uan + } + return nil +} + +func (x *StatisticData) GetRhs() *RHSStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Rhs); ok { + return x.Rhs + } + return nil +} + +func (x *StatisticData) GetTmp() *TMPStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Tmp); ok { + return x.Tmp + } + return nil +} + +func (x *StatisticData) GetGnss() *GNSSStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Gnss); ok { + return x.Gnss + } + return nil +} + +func (x *StatisticData) GetVic() *VICStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Vic); ok { + return x.Vic + } + return nil +} + +func (x *StatisticData) GetDis() *DISStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Dis); ok { + return x.Dis + } + return nil +} + +func (x *StatisticData) GetHpt() *HPTStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Hpt); ok { + return x.Hpt + } + return nil +} + +func (x *StatisticData) GetRsg() *RSGStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Rsg); ok { + return x.Rsg + } + return nil +} + +func (x *StatisticData) GetInc() *INCStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Inc); ok { + return x.Inc + } + return nil +} + +func (x *StatisticData) GetVie() *VIEStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Vie); ok { + return x.Vie + } + return nil +} + +func (x *StatisticData) GetTmd() *TMDStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Tmd); ok { + return x.Tmd + } + return nil +} + +func (x *StatisticData) GetVib() *VIBStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Vib); ok { + return x.Vib + } + return nil +} + +func (x *StatisticData) GetHsd() *HSDStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Hsd); ok { + return x.Hsd + } + return nil +} + +func (x *StatisticData) GetAnd() *ANDStatistic { + if x, ok := x.GetDataBody().(*StatisticData_And); ok { + return x.And + } + return nil +} + +func (x *StatisticData) GetCrk() *CRKStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Crk); ok { + return x.Crk + } + return nil +} + +func (x *StatisticData) GetFrz() *FRZStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Frz); ok { + return x.Frz + } + return nil +} + +func (x *StatisticData) GetPws() *PWSStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Pws); ok { + return x.Pws + } + return nil +} + +func (x *StatisticData) GetVsb() *VSBStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Vsb); ok { + return x.Vsb + } + return nil +} + +func (x *StatisticData) GetAcn() *ACNStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Acn); ok { + return x.Acn + } + return nil +} + +func (x *StatisticData) GetWlv() *WLVStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Wlv); ok { + return x.Wlv + } + return nil +} + +func (x *StatisticData) GetBtf() *BTFStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Btf); ok { + return x.Btf + } + return nil +} + +func (x *StatisticData) GetCsp() *CSPStatistic { + if x, ok := x.GetDataBody().(*StatisticData_Csp); ok { + return x.Csp + } + return nil +} + +type isStatisticData_DataBody interface { + isStatisticData_DataBody() +} + +type StatisticData_Uan struct { + // 风速风向 + Uan *UANStatistic `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` +} + +type StatisticData_Rhs struct { + // 温湿度 + Rhs *RHSStatistic `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` +} + +type StatisticData_Tmp struct { + // 结构温度 + Tmp *TMPStatistic `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` +} + +type StatisticData_Gnss struct { + // 空间变形 + Gnss *GNSSStatistic `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` +} + +type StatisticData_Vic struct { + // 索力 + Vic *VICStatistic `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` +} + +type StatisticData_Dis struct { + // 位移 (支座位移、梁端纵向位移) + Dis *DISStatistic `protobuf:"bytes,9,opt,name=dis,proto3,oneof"` +} + +type StatisticData_Hpt struct { + // 挠度 + Hpt *HPTStatistic `protobuf:"bytes,10,opt,name=hpt,proto3,oneof"` +} + +type StatisticData_Rsg struct { + // 应变 + Rsg *RSGStatistic `protobuf:"bytes,11,opt,name=rsg,proto3,oneof"` +} + +type StatisticData_Inc struct { + // 转角 + Inc *INCStatistic `protobuf:"bytes,12,opt,name=inc,proto3,oneof"` +} + +type StatisticData_Vie struct { + // 地震船撞 + Vie *VIEStatistic `protobuf:"bytes,13,opt,name=vie,proto3,oneof"` +} + +type StatisticData_Tmd struct { + // TMD + Tmd *TMDStatistic `protobuf:"bytes,14,opt,name=tmd,proto3,oneof"` +} + +type StatisticData_Vib struct { + // 动力特性 + Vib *VIBStatistic `protobuf:"bytes,15,opt,name=vib,proto3,oneof"` +} + +type StatisticData_Hsd struct { + // 动态称重 + Hsd *HSDStatistic `protobuf:"bytes,16,opt,name=hsd,proto3,oneof"` +} + +type StatisticData_And struct { + // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 + And *ANDStatistic `protobuf:"bytes,17,opt,name=and,proto3,oneof"` +} + +type StatisticData_Crk struct { + // 裂缝 + Crk *CRKStatistic `protobuf:"bytes,18,opt,name=crk,proto3,oneof"` +} + +type StatisticData_Frz struct { + // 结冰 + Frz *FRZStatistic `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` +} + +type StatisticData_Pws struct { + // 降雨量 + Pws *PWSStatistic `protobuf:"bytes,20,opt,name=pws,proto3,oneof"` +} + +type StatisticData_Vsb struct { + // 能见度 + Vsb *VSBStatistic `protobuf:"bytes,21,opt,name=vsb,proto3,oneof"` +} + +type StatisticData_Acn struct { + // 大气浓度 + Acn *ACNStatistic `protobuf:"bytes,22,opt,name=acn,proto3,oneof"` +} + +type StatisticData_Wlv struct { + // 水位 + Wlv *WLVStatistic `protobuf:"bytes,23,opt,name=wlv,proto3,oneof"` +} + +type StatisticData_Btf struct { + // 螺杆状态 + Btf *BTFStatistic `protobuf:"bytes,24,opt,name=btf,proto3,oneof"` +} + +type StatisticData_Csp struct { + // 索夹滑移 + Csp *CSPStatistic `protobuf:"bytes,25,opt,name=csp,proto3,oneof"` +} + +func (*StatisticData_Uan) isStatisticData_DataBody() {} + +func (*StatisticData_Rhs) isStatisticData_DataBody() {} + +func (*StatisticData_Tmp) isStatisticData_DataBody() {} + +func (*StatisticData_Gnss) isStatisticData_DataBody() {} + +func (*StatisticData_Vic) isStatisticData_DataBody() {} + +func (*StatisticData_Dis) isStatisticData_DataBody() {} + +func (*StatisticData_Hpt) isStatisticData_DataBody() {} + +func (*StatisticData_Rsg) isStatisticData_DataBody() {} + +func (*StatisticData_Inc) isStatisticData_DataBody() {} + +func (*StatisticData_Vie) isStatisticData_DataBody() {} + +func (*StatisticData_Tmd) isStatisticData_DataBody() {} + +func (*StatisticData_Vib) isStatisticData_DataBody() {} + +func (*StatisticData_Hsd) isStatisticData_DataBody() {} + +func (*StatisticData_And) isStatisticData_DataBody() {} + +func (*StatisticData_Crk) isStatisticData_DataBody() {} + +func (*StatisticData_Frz) isStatisticData_DataBody() {} + +func (*StatisticData_Pws) isStatisticData_DataBody() {} + +func (*StatisticData_Vsb) isStatisticData_DataBody() {} + +func (*StatisticData_Acn) isStatisticData_DataBody() {} + +func (*StatisticData_Wlv) isStatisticData_DataBody() {} + +func (*StatisticData_Btf) isStatisticData_DataBody() {} + +func (*StatisticData_Csp) isStatisticData_DataBody() {} + +// 风速风向监测特征值 周期 10min +type UANStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的风速平均值 + AvgVelocity float32 `protobuf:"fixed32,1,opt,name=avgVelocity,proto3" json:"avgVelocity,omitempty"` + // 统计时间范围内的风向平均值 + AvgDirection float32 `protobuf:"fixed32,2,opt,name=avgDirection,proto3" json:"avgDirection,omitempty"` + // 统计时间范围内的风攻角平均值 + AvgAttackAngle *float32 `protobuf:"fixed32,3,opt,name=avgAttackAngle,proto3,oneof" json:"avgAttackAngle,omitempty"` +} + +func (x *UANStatistic) Reset() { + *x = UANStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UANStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UANStatistic) ProtoMessage() {} + +func (x *UANStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UANStatistic.ProtoReflect.Descriptor instead. +func (*UANStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{33} +} + +func (x *UANStatistic) GetAvgVelocity() float32 { + if x != nil { + return x.AvgVelocity + } + return 0 +} + +func (x *UANStatistic) GetAvgDirection() float32 { + if x != nil { + return x.AvgDirection + } + return 0 +} + +func (x *UANStatistic) GetAvgAttackAngle() float32 { + if x != nil && x.AvgAttackAngle != nil { + return *x.AvgAttackAngle + } + return 0 +} + +// 温湿度监测特征值,周期 1h +type RHSStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的温度最大值 + MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` + // 统计时间范围内的温度最小值 + MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` + // 统计时间范围内的温度平均值 + AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` + // 统计时间范围内的温差值 + MaxTemperatureDifference float32 `protobuf:"fixed32,4,opt,name=maxTemperatureDifference,proto3" json:"maxTemperatureDifference,omitempty"` + // 统计时间范围内的湿度最大值 + MaxHumidity float32 `protobuf:"fixed32,5,opt,name=maxHumidity,proto3" json:"maxHumidity,omitempty"` + // 统计时间范围内的湿度最小值 + MinHumidity float32 `protobuf:"fixed32,6,opt,name=minHumidity,proto3" json:"minHumidity,omitempty"` + // 统计时间范围内的湿度平均值 + AvgHumidity float32 `protobuf:"fixed32,7,opt,name=avgHumidity,proto3" json:"avgHumidity,omitempty"` + // 湿度超限持续时间,分钟 + HumidityExceedDuration int32 `protobuf:"varint,8,opt,name=humidityExceedDuration,proto3" json:"humidityExceedDuration,omitempty"` +} + +func (x *RHSStatistic) Reset() { + *x = RHSStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RHSStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RHSStatistic) ProtoMessage() {} + +func (x *RHSStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RHSStatistic.ProtoReflect.Descriptor instead. +func (*RHSStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{34} +} + +func (x *RHSStatistic) GetMaxTemperature() float32 { + if x != nil { + return x.MaxTemperature + } + return 0 +} + +func (x *RHSStatistic) GetMinTemperature() float32 { + if x != nil { + return x.MinTemperature + } + return 0 +} + +func (x *RHSStatistic) GetAvgTemperature() float32 { + if x != nil { + return x.AvgTemperature + } + return 0 +} + +func (x *RHSStatistic) GetMaxTemperatureDifference() float32 { + if x != nil { + return x.MaxTemperatureDifference + } + return 0 +} + +func (x *RHSStatistic) GetMaxHumidity() float32 { + if x != nil { + return x.MaxHumidity + } + return 0 +} + +func (x *RHSStatistic) GetMinHumidity() float32 { + if x != nil { + return x.MinHumidity + } + return 0 +} + +func (x *RHSStatistic) GetAvgHumidity() float32 { + if x != nil { + return x.AvgHumidity + } + return 0 +} + +func (x *RHSStatistic) GetHumidityExceedDuration() int32 { + if x != nil { + return x.HumidityExceedDuration + } + return 0 +} + +// 温度监测特征值 周期 1h +type TMPStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的温度最大值 + MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` + // 统计时间范围内的温度最小值 + MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` + // 统计时间范围内的温度平均值 + AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` + // 统计时间范围内的温差值 + MaxDifference float32 `protobuf:"fixed32,4,opt,name=maxDifference,proto3" json:"maxDifference,omitempty"` +} + +func (x *TMPStatistic) Reset() { + *x = TMPStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TMPStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TMPStatistic) ProtoMessage() {} + +func (x *TMPStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[35] + 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 TMPStatistic.ProtoReflect.Descriptor instead. +func (*TMPStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{35} +} + +func (x *TMPStatistic) GetMaxTemperature() float32 { + if x != nil { + return x.MaxTemperature + } + return 0 +} + +func (x *TMPStatistic) GetMinTemperature() float32 { + if x != nil { + return x.MinTemperature + } + return 0 +} + +func (x *TMPStatistic) GetAvgTemperature() float32 { + if x != nil { + return x.AvgTemperature + } + return 0 +} + +func (x *TMPStatistic) GetMaxDifference() float32 { + if x != nil { + return x.MaxDifference + } + return 0 +} + +// 结构空间变形监测特征值 位移(主梁、塔顶、主缆、高墩墩顶、拱顶) 周期: 1h +type GNSSStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的空间变形X绝对最大值 + MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` + // 统计时间范围内的空间变形X平均值 + AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` + // 统计时间范围内的空间变形X均方根 + RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` + // 统计时间范围内的空间变形Y绝对最大值 + MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` + // 统计时间范围内的空间变形Y平均值 + AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` + // 统计时间范围内的空间变形Y均方根 + RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` + // 统计时间范围内的空间变形Z绝对最大值 + MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` + // 统计时间范围内的空间变形Z平均值 + AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` + // 统计时间范围内的空间变形Z均方根 + RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` +} + +func (x *GNSSStatistic) Reset() { + *x = GNSSStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GNSSStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GNSSStatistic) ProtoMessage() {} + +func (x *GNSSStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[36] + 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 GNSSStatistic.ProtoReflect.Descriptor instead. +func (*GNSSStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{36} +} + +func (x *GNSSStatistic) GetMaxAbsoluteValueX() float32 { + if x != nil { + return x.MaxAbsoluteValueX + } + return 0 +} + +func (x *GNSSStatistic) GetAvgValueX() float32 { + if x != nil { + return x.AvgValueX + } + return 0 +} + +func (x *GNSSStatistic) GetRootMeanSquareX() float32 { + if x != nil { + return x.RootMeanSquareX + } + return 0 +} + +func (x *GNSSStatistic) GetMaxAbsoluteValueY() float32 { + if x != nil { + return x.MaxAbsoluteValueY + } + return 0 +} + +func (x *GNSSStatistic) GetAvgValueY() float32 { + if x != nil { + return x.AvgValueY + } + return 0 +} + +func (x *GNSSStatistic) GetRootMeanSquareY() float32 { + if x != nil { + return x.RootMeanSquareY + } + return 0 +} + +func (x *GNSSStatistic) GetMaxAbsoluteValueZ() float32 { + if x != nil { + return x.MaxAbsoluteValueZ + } + return 0 +} + +func (x *GNSSStatistic) GetAvgValueZ() float32 { + if x != nil { + return x.AvgValueZ + } + return 0 +} + +func (x *GNSSStatistic) GetRootMeanSquareZ() float32 { + if x != nil { + return x.RootMeanSquareZ + } + return 0 +} + +// 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 周期 24h +type ANDStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的空间变形X绝对最大值 + MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` + // 统计时间范围内的空间变形X平均值 + AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` + // 统计时间范围内的空间变形X均方根 + RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` + // 统计时间范围内的空间变形Y绝对最大值 + MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` + // 统计时间范围内的空间变形Y平均值 + AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` + // 统计时间范围内的空间变形Y均方根 + RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` + // 统计时间范围内的空间变形Z绝对最大值 + MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` + // 统计时间范围内的空间变形Z平均值 + AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` + // 统计时间范围内的空间变形Z均方根 + RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` +} + +func (x *ANDStatistic) Reset() { + *x = ANDStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ANDStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ANDStatistic) ProtoMessage() {} + +func (x *ANDStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[37] + 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 ANDStatistic.ProtoReflect.Descriptor instead. +func (*ANDStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{37} +} + +func (x *ANDStatistic) GetMaxAbsoluteValueX() float32 { + if x != nil { + return x.MaxAbsoluteValueX + } + return 0 +} + +func (x *ANDStatistic) GetAvgValueX() float32 { + if x != nil { + return x.AvgValueX + } + return 0 +} + +func (x *ANDStatistic) GetRootMeanSquareX() float32 { + if x != nil { + return x.RootMeanSquareX + } + return 0 +} + +func (x *ANDStatistic) GetMaxAbsoluteValueY() float32 { + if x != nil { + return x.MaxAbsoluteValueY + } + return 0 +} + +func (x *ANDStatistic) GetAvgValueY() float32 { + if x != nil { + return x.AvgValueY + } + return 0 +} + +func (x *ANDStatistic) GetRootMeanSquareY() float32 { + if x != nil { + return x.RootMeanSquareY + } + return 0 +} + +func (x *ANDStatistic) GetMaxAbsoluteValueZ() float32 { + if x != nil { + return x.MaxAbsoluteValueZ + } + return 0 +} + +func (x *ANDStatistic) GetAvgValueZ() float32 { + if x != nil { + return x.AvgValueZ + } + return 0 +} + +func (x *ANDStatistic) GetRootMeanSquareZ() float32 { + if x != nil { + return x.RootMeanSquareZ + } + return 0 +} + +// 位移监测特征值 位移(支座位移、梁端纵向位移) 周期 1h +type DISStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的位移平均值 + AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的位移均方根值 + RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` + // 统计时间范围内的绝对值累积量 + TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` +} + +func (x *DISStatistic) Reset() { + *x = DISStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DISStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DISStatistic) ProtoMessage() {} + +func (x *DISStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[38] + 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 DISStatistic.ProtoReflect.Descriptor instead. +func (*DISStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{38} +} + +func (x *DISStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *DISStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *DISStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +func (x *DISStatistic) GetTotalAbsoluteValue() float32 { + if x != nil { + return x.TotalAbsoluteValue + } + return 0 +} + +// 挠度监测特征值 周期1h +type HPTStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的位移平均值 + AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的位移均方根值 + RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *HPTStatistic) Reset() { + *x = HPTStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HPTStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HPTStatistic) ProtoMessage() {} + +func (x *HPTStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[39] + 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 HPTStatistic.ProtoReflect.Descriptor instead. +func (*HPTStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{39} +} + +func (x *HPTStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *HPTStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *HPTStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// 转角监测特征值 周期 1h +type INCStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内横桥向的绝对最大值 + MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` + // 统计时间范围内横桥向的转角平均值 + AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` + // 统计时间范围内横桥向的转角均方根值 + RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` + // 统计时间范围内纵桥向的绝对最大值 + MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` + // 统计时间范围内纵桥向的转角平均值 + AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` + // 统计时间范围内纵桥向的转角均方根值 + RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` +} + +func (x *INCStatistic) Reset() { + *x = INCStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *INCStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*INCStatistic) ProtoMessage() {} + +func (x *INCStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[40] + 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 INCStatistic.ProtoReflect.Descriptor instead. +func (*INCStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{40} +} + +func (x *INCStatistic) GetMaxAbsoluteValueX() float32 { + if x != nil { + return x.MaxAbsoluteValueX + } + return 0 +} + +func (x *INCStatistic) GetAvgValueX() float32 { + if x != nil { + return x.AvgValueX + } + return 0 +} + +func (x *INCStatistic) GetRootMeanSquareX() float32 { + if x != nil { + return x.RootMeanSquareX + } + return 0 +} + +func (x *INCStatistic) GetMaxAbsoluteValueY() float32 { + if x != nil { + return x.MaxAbsoluteValueY + } + return 0 +} + +func (x *INCStatistic) GetAvgValueY() float32 { + if x != nil { + return x.AvgValueY + } + return 0 +} + +func (x *INCStatistic) GetRootMeanSquareY() float32 { + if x != nil { + return x.RootMeanSquareY + } + return 0 +} + +// 应变监测特征值 周期 1h +type RSGStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的应变/应力绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的应变/应力平均值 + AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的温度平均值 + AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` +} + +func (x *RSGStatistic) Reset() { + *x = RSGStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RSGStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RSGStatistic) ProtoMessage() {} + +func (x *RSGStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[41] + 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 RSGStatistic.ProtoReflect.Descriptor instead. +func (*RSGStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{41} +} + +func (x *RSGStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *RSGStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *RSGStatistic) GetAvgTemperature() float32 { + if x != nil && x.AvgTemperature != nil { + return *x.AvgTemperature + } + return 0 +} + +// 索力监测特征值 周期 1h +type VICStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的索力最大值 + MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` + // 统计时间范围内的索力最小值 + MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` + // 统计时间范围内的索力平均值 + AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的索力均方根值 + RootMeanSquare float32 `protobuf:"fixed32,4,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *VICStatistic) Reset() { + *x = VICStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VICStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VICStatistic) ProtoMessage() {} + +func (x *VICStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[42] + 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 VICStatistic.ProtoReflect.Descriptor instead. +func (*VICStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{42} +} + +func (x *VICStatistic) GetMaxValue() float32 { + if x != nil { + return x.MaxValue + } + return 0 +} + +func (x *VICStatistic) GetMinValue() float32 { + if x != nil { + return x.MinValue + } + return 0 +} + +func (x *VICStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *VICStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// 动力特性监测特征值 振动(主梁、索塔、拱圈) 周期 10min +type VIBStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的均方根值 + RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *VIBStatistic) Reset() { + *x = VIBStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VIBStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VIBStatistic) ProtoMessage() {} + +func (x *VIBStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[43] + 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 VIBStatistic.ProtoReflect.Descriptor instead. +func (*VIBStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{43} +} + +func (x *VIBStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *VIBStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// 地震船撞特性监测特征值 周期10min +type VIEStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的均方根值 + RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *VIEStatistic) Reset() { + *x = VIEStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VIEStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VIEStatistic) ProtoMessage() {} + +func (x *VIEStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[44] + 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 VIEStatistic.ProtoReflect.Descriptor instead. +func (*VIEStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{44} +} + +func (x *VIEStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *VIEStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// TMD监测特征值 周期10min +type TMDStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的均方根值 + RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *TMDStatistic) Reset() { + *x = TMDStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TMDStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TMDStatistic) ProtoMessage() {} + +func (x *TMDStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[45] + 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 TMDStatistic.ProtoReflect.Descriptor instead. +func (*TMDStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{45} +} + +func (x *TMDStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *TMDStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// 车辆载荷监测特征值 -动态称重 周期 1h +type HSDStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的车流量 + TrafficFlow int32 `protobuf:"varint,1,opt,name=trafficFlow,proto3" json:"trafficFlow,omitempty"` + // 统计时间范围内的最大车重 + MaxTotalLoad int32 `protobuf:"varint,2,opt,name=maxTotalLoad,proto3" json:"maxTotalLoad,omitempty"` + // 统计时间范围内的最大轴重 + MaxAxleLoad int32 `protobuf:"varint,3,opt,name=maxAxleLoad,proto3" json:"maxAxleLoad,omitempty"` + // 统计时间范围内的超载车数量 + OverLoadCount int32 `protobuf:"varint,4,opt,name=overLoadCount,proto3" json:"overLoadCount,omitempty"` +} + +func (x *HSDStatistic) Reset() { + *x = HSDStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HSDStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HSDStatistic) ProtoMessage() {} + +func (x *HSDStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[46] + 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 HSDStatistic.ProtoReflect.Descriptor instead. +func (*HSDStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{46} +} + +func (x *HSDStatistic) GetTrafficFlow() int32 { + if x != nil { + return x.TrafficFlow + } + return 0 +} + +func (x *HSDStatistic) GetMaxTotalLoad() int32 { + if x != nil { + return x.MaxTotalLoad + } + return 0 +} + +func (x *HSDStatistic) GetMaxAxleLoad() int32 { + if x != nil { + return x.MaxAxleLoad + } + return 0 +} + +func (x *HSDStatistic) GetOverLoadCount() int32 { + if x != nil { + return x.OverLoadCount + } + return 0 +} + +// 裂缝监测特征值 位移( 周期 1h) +type CRKStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的位移平均值 + AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的位移均方根值 + RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` + // 统计时间范围内的绝对值累积量 + TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` +} + +func (x *CRKStatistic) Reset() { + *x = CRKStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CRKStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CRKStatistic) ProtoMessage() {} + +func (x *CRKStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[47] + 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 CRKStatistic.ProtoReflect.Descriptor instead. +func (*CRKStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{47} +} + +func (x *CRKStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *CRKStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *CRKStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +func (x *CRKStatistic) GetTotalAbsoluteValue() float32 { + if x != nil { + return x.TotalAbsoluteValue + } + return 0 +} + +// 结冰(周期 1h) +type FRZStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的结冰最大值 + MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` + // 统计时间范围内的结冰最小值 + MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` + // 统计时间范围内的结冰平均值 + AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` +} + +func (x *FRZStatistic) Reset() { + *x = FRZStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FRZStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FRZStatistic) ProtoMessage() {} + +func (x *FRZStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[48] + 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 FRZStatistic.ProtoReflect.Descriptor instead. +func (*FRZStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{48} +} + +func (x *FRZStatistic) GetMaxValue() float32 { + if x != nil { + return x.MaxValue + } + return 0 +} + +func (x *FRZStatistic) GetMinValue() float32 { + if x != nil { + return x.MinValue + } + return 0 +} + +func (x *FRZStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +// 降雨量(周期 10min) +type PWSStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的降雨量平均值 + AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` +} + +func (x *PWSStatistic) Reset() { + *x = PWSStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PWSStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PWSStatistic) ProtoMessage() {} + +func (x *PWSStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[49] + 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 PWSStatistic.ProtoReflect.Descriptor instead. +func (*PWSStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{49} +} + +func (x *PWSStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +// 能见度(周期 10min) +type VSBStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的能见度值 + AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` +} + +func (x *VSBStatistic) Reset() { + *x = VSBStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VSBStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VSBStatistic) ProtoMessage() {} + +func (x *VSBStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[50] + 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 VSBStatistic.ProtoReflect.Descriptor instead. +func (*VSBStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{50} +} + +func (x *VSBStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +// 大气浓度(周期 1h) +type ACNStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的大气浓度最大值 + MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` + // 统计时间范围内的大气浓度最小值 + MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` + // 统计时间范围内的大气浓度平均值 + AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` +} + +func (x *ACNStatistic) Reset() { + *x = ACNStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ACNStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ACNStatistic) ProtoMessage() {} + +func (x *ACNStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[51] + 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 ACNStatistic.ProtoReflect.Descriptor instead. +func (*ACNStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{51} +} + +func (x *ACNStatistic) GetMaxValue() float32 { + if x != nil { + return x.MaxValue + } + return 0 +} + +func (x *ACNStatistic) GetMinValue() float32 { + if x != nil { + return x.MinValue + } + return 0 +} + +func (x *ACNStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +// 水位(周期 1h) +type WLVStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的水位最大值 + MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` + // 统计时间范围内的水位最小值 + MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` + // 统计时间范围内的水位平均值 + AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` +} + +func (x *WLVStatistic) Reset() { + *x = WLVStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WLVStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WLVStatistic) ProtoMessage() {} + +func (x *WLVStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[52] + 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 WLVStatistic.ProtoReflect.Descriptor instead. +func (*WLVStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{52} +} + +func (x *WLVStatistic) GetMaxValue() float32 { + if x != nil { + return x.MaxValue + } + return 0 +} + +func (x *WLVStatistic) GetMinValue() float32 { + if x != nil { + return x.MinValue + } + return 0 +} + +func (x *WLVStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +// 螺杆状态(周期 1h) +type BTFStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的螺杆状态平均值 + AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的螺杆状态绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的螺杆状态均方根值 + RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *BTFStatistic) Reset() { + *x = BTFStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BTFStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BTFStatistic) ProtoMessage() {} + +func (x *BTFStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[53] + 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 BTFStatistic.ProtoReflect.Descriptor instead. +func (*BTFStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{53} +} + +func (x *BTFStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *BTFStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *BTFStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +// 索夹滑移(周期 1h) +type CSPStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 统计时间范围内的索夹滑移平均值 + AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` + // 统计时间范围内的索夹滑移绝对最大值 + MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` + // 统计时间范围内的索夹滑移均方根值 + RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` +} + +func (x *CSPStatistic) Reset() { + *x = CSPStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPStatistic) ProtoMessage() {} + +func (x *CSPStatistic) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_V1_3_1_proto_msgTypes[54] + 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 CSPStatistic.ProtoReflect.Descriptor instead. +func (*CSPStatistic) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP(), []int{54} +} + +func (x *CSPStatistic) GetAvgValue() float32 { + if x != nil { + return x.AvgValue + } + return 0 +} + +func (x *CSPStatistic) GetMaxAbsoluteValue() float32 { + if x != nil { + return x.MaxAbsoluteValue + } + return 0 +} + +func (x *CSPStatistic) GetRootMeanSquare() float32 { + if x != nil { + return x.RootMeanSquare + } + return 0 +} + +var File_MonitorDataProtocol_V1_3_1_proto protoreflect.FileDescriptor + +var file_MonitorDataProtocol_V1_3_1_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x56, 0x31, 0x2e, 0x33, 0x2e, 0x31, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, + 0x6a, 0x68, 0x6c, 0x22, 0x4e, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x80, 0x02, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x43, 0x0a, + 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xe4, 0x0c, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, + 0x6a, 0x68, 0x6c, 0x2e, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, + 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x30, 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x04, 0x67, 0x6e, + 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, + 0x30, 0x0a, 0x03, 0x76, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, + 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, + 0x63, 0x12, 0x30, 0x0a, 0x03, 0x64, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, + 0x2e, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, + 0x64, 0x69, 0x63, 0x12, 0x30, 0x0a, 0x03, 0x64, 0x69, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, + 0x68, 0x6c, 0x2e, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, + 0x52, 0x03, 0x64, 0x69, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, + 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x30, 0x0a, 0x03, 0x69, 0x6e, 0x63, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x30, 0x0a, 0x03, 0x76, + 0x69, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, 0x49, 0x45, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x30, 0x0a, + 0x03, 0x74, 0x6d, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x54, 0x4d, 0x44, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, + 0x30, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, + 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, + 0x62, 0x12, 0x30, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, + 0x2e, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, + 0x68, 0x73, 0x64, 0x12, 0x30, 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, + 0x68, 0x6c, 0x2e, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, + 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, + 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x30, 0x0a, 0x03, 0x6c, 0x6d, 0x7a, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6d, 0x7a, 0x12, 0x30, 0x0a, 0x03, 0x73, 0x74, 0x66, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x66, 0x12, 0x30, 0x0a, 0x03, 0x73, + 0x63, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x53, 0x43, 0x4f, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x30, 0x0a, + 0x03, 0x63, 0x72, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x43, 0x52, 0x4b, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, + 0x30, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x43, + 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6f, + 0x72, 0x12, 0x30, 0x0a, 0x03, 0x76, 0x69, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, + 0x2e, 0x56, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, + 0x76, 0x69, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, + 0x68, 0x6c, 0x2e, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, + 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x30, 0x0a, 0x03, 0x62, 0x72, 0x6b, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, + 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x48, 0x00, 0x52, 0x03, 0x62, 0x72, 0x6b, 0x12, 0x30, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x30, 0x0a, 0x03, 0x63, 0x73, 0x70, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x03, 0x76, + 0x73, 0x62, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, 0x53, 0x42, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x73, 0x62, 0x12, 0x30, 0x0a, + 0x03, 0x61, 0x63, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x41, 0x43, 0x4e, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, + 0x30, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x57, + 0x4c, 0x56, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, + 0x76, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x9a, 0x01, + 0x0a, 0x0b, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, + 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x00, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x52, 0x48, + 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, + 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x68, + 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x2f, 0x0a, 0x0b, 0x54, 0x4d, 0x50, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x47, 0x4e, 0x53, 0x53, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x01, 0x7a, 0x22, 0x7f, 0x0a, 0x0b, 0x56, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, + 0x65, 0x12, 0x37, 0x0a, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x00, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x79, 0x22, 0x68, 0x0a, 0x0b, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, + 0x0b, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0b, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5c, 0x0a, 0x0b, 0x52, 0x53, 0x47, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x01, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x42, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, + 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x45, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x54, 0x4d, + 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0xb2, 0x0c, 0x0a, 0x0b, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, + 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x78, 0x6c, + 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x78, 0x6c, 0x65, + 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x47, 0x72, 0x70, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x47, 0x72, 0x70, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, + 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x31, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, + 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, + 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x33, 0x12, + 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, + 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x34, 0x12, 0x2a, 0x0a, 0x10, 0x6c, + 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x35, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x35, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, + 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x36, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, + 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x37, 0x12, + 0x2a, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x38, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x57, + 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x38, 0x12, 0x2c, 0x0a, 0x11, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x31, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, + 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x31, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x33, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x33, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, + 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x34, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, + 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x35, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x36, 0x12, + 0x2c, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x37, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x37, 0x12, 0x2c, 0x0a, + 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x38, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x57, + 0x68, 0x65, 0x65, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x38, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, + 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x33, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x33, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x35, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, + 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x36, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x37, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x37, 0x12, + 0x25, 0x0a, 0x0b, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0b, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, + 0x61, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x61, + 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x65, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x76, 0x65, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x03, + 0x71, 0x61, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x03, 0x71, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, + 0x61, 0x74, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x11, 0x6c, 0x69, 0x63, 0x65, 0x6e, + 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, + 0x52, 0x05, 0x70, 0x69, 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x72, 0x6f, + 0x61, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x0f, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x69, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x71, 0x61, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, + 0x6c, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, + 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x50, 0x57, 0x53, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, + 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, + 0x61, 0x6c, 0x6c, 0x22, 0x53, 0x0a, 0x0b, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, + 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x4c, 0x4d, 0x5a, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x6f, 0x61, 0x64, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, + 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x4f, 0x0a, 0x0b, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x22, 0x55, 0x0a, 0x0b, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x43, 0x4f, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x6b, 0x0a, 0x0b, + 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x63, + 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x63, 0x68, 0x6c, 0x6f, + 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, + 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x53, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, + 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, + 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x22, 0x23, 0x0a, 0x0b, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6c, 0x0a, 0x0b, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, + 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x62, 0x6f, + 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0x68, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, + 0x0b, 0x56, 0x53, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x41, 0x43, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x57, 0x4c, 0x56, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x0a, 0x0a, + 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, + 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x03, 0x75, + 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x55, 0x41, 0x4e, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x31, + 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x52, 0x48, + 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, + 0x73, 0x12, 0x31, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, + 0x2e, 0x54, 0x4d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, + 0x03, 0x74, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, + 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x03, 0x76, 0x69, + 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x63, 0x12, 0x31, 0x0a, + 0x03, 0x64, 0x69, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x44, 0x49, 0x53, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x73, + 0x12, 0x31, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, + 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, + 0x68, 0x70, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, + 0x68, 0x6c, 0x2e, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, + 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x03, 0x69, 0x6e, 0x63, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x31, 0x0a, 0x03, 0x76, 0x69, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x31, 0x0a, 0x03, + 0x74, 0x6d, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x54, 0x4d, 0x44, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, + 0x31, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x56, + 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, + 0x69, 0x62, 0x12, 0x31, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, + 0x6c, 0x2e, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, + 0x52, 0x03, 0x68, 0x73, 0x64, 0x12, 0x31, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, + 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x41, 0x4e, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x03, 0x63, 0x72, 0x6b, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x31, 0x0a, 0x03, 0x66, + 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x46, 0x52, 0x5a, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x31, + 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x50, 0x57, + 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, + 0x73, 0x12, 0x31, 0x0a, 0x03, 0x76, 0x73, 0x62, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, + 0x2e, 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, + 0x03, 0x76, 0x73, 0x62, 0x12, 0x31, 0x0a, 0x03, 0x61, 0x63, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, + 0x6a, 0x68, 0x6c, 0x2e, 0x41, 0x43, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, 0x31, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, 0x76, 0x12, 0x31, 0x0a, 0x03, 0x62, 0x74, + 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x31, 0x0a, + 0x03, 0x63, 0x73, 0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x2e, 0x43, 0x53, 0x50, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, + 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x94, 0x01, 0x0a, + 0x0c, 0x55, 0x41, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, + 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x22, 0xe0, 0x02, 0x0a, 0x0c, 0x52, 0x48, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, + 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, + 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x18, + 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, + 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x48, + 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, + 0x61, 0x78, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x69, + 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0b, 0x6d, 0x69, 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x36, + 0x0a, 0x16, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, + 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x54, 0x4d, 0x50, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, + 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, + 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x0d, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, + 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, + 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, + 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, + 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, + 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, + 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, + 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, + 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xf0, 0x02, 0x0a, 0x0c, 0x41, 0x4e, + 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, + 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, + 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, + 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, + 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, + 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, + 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, + 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xae, 0x01, 0x0a, + 0x0c, 0x44, 0x49, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, + 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7e, 0x0a, + 0x0c, 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, + 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xfa, 0x01, + 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, + 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, + 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, + 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, + 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, + 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, + 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x52, + 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, + 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, + 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, + 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, + 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, + 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, + 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x54, 0x4d, 0x44, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, + 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, + 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x9c, 0x01, 0x0a, + 0x0c, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, + 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, + 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, + 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x76, + 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x0c, + 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, + 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, + 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, + 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, + 0x46, 0x52, 0x5a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x2a, 0x0a, 0x0c, 0x50, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x0c, + 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x41, 0x43, 0x4e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, + 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x7e, 0x0a, 0x0c, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, + 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, + 0x22, 0x7e, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, + 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, + 0x2a, 0x47, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, + 0x52, 0x45, 0x41, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x53, 0x54, 0x49, 0x43, 0x53, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x4d, + 0x45, 0x52, 0x47, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x9d, 0x02, 0x0a, 0x0c, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x41, + 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x48, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x47, 0x4e, 0x53, 0x53, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x43, 0x10, 0x03, 0x12, + 0x07, 0x0a, 0x03, 0x44, 0x49, 0x43, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x53, 0x10, + 0x05, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x50, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x53, + 0x47, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x43, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, + 0x56, 0x49, 0x42, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x45, 0x10, 0x0a, 0x12, 0x07, + 0x0a, 0x03, 0x54, 0x4d, 0x44, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x53, 0x44, 0x10, 0x0c, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4d, 0x50, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x57, 0x53, + 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x52, 0x5a, 0x10, 0x0f, 0x12, 0x07, 0x0a, 0x03, 0x4c, + 0x4d, 0x5a, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x46, 0x10, 0x11, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x43, 0x4f, 0x10, 0x12, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x52, 0x4b, 0x10, 0x13, 0x12, + 0x07, 0x0a, 0x03, 0x43, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x53, 0x10, + 0x15, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x52, 0x10, 0x16, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x52, + 0x4b, 0x10, 0x17, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x46, 0x10, 0x18, 0x12, 0x07, 0x0a, 0x03, + 0x43, 0x53, 0x50, 0x10, 0x19, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x53, 0x42, 0x10, 0x1a, 0x12, 0x07, + 0x0a, 0x03, 0x41, 0x43, 0x4e, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x4c, 0x56, 0x10, 0x1c, + 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4d, 0x4d, 0x10, 0x63, 0x42, 0x14, 0x5a, 0x12, 0x2e, 0x2e, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_MonitorDataProtocol_V1_3_1_proto_rawDescOnce sync.Once + file_MonitorDataProtocol_V1_3_1_proto_rawDescData = file_MonitorDataProtocol_V1_3_1_proto_rawDesc +) + +func file_MonitorDataProtocol_V1_3_1_proto_rawDescGZIP() []byte { + file_MonitorDataProtocol_V1_3_1_proto_rawDescOnce.Do(func() { + file_MonitorDataProtocol_V1_3_1_proto_rawDescData = protoimpl.X.CompressGZIP(file_MonitorDataProtocol_V1_3_1_proto_rawDescData) + }) + return file_MonitorDataProtocol_V1_3_1_proto_rawDescData +} + +var file_MonitorDataProtocol_V1_3_1_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_MonitorDataProtocol_V1_3_1_proto_msgTypes = make([]protoimpl.MessageInfo, 55) +var file_MonitorDataProtocol_V1_3_1_proto_goTypes = []interface{}{ + (DataType)(0), // 0: protoFiles_zjhl.DataType + (MonitoryType)(0), // 1: protoFiles_zjhl.MonitoryType + (*ComplexData)(nil), // 2: protoFiles_zjhl.ComplexData + (*DataDefinition)(nil), // 3: protoFiles_zjhl.DataDefinition + (*RealTimeData)(nil), // 4: protoFiles_zjhl.RealTimeData + (*UANRealTime)(nil), // 5: protoFiles_zjhl.UANRealTime + (*RHSRealTime)(nil), // 6: protoFiles_zjhl.RHSRealTime + (*TMPRealTime)(nil), // 7: protoFiles_zjhl.TMPRealTime + (*GNSSRealTime)(nil), // 8: protoFiles_zjhl.GNSSRealTime + (*VICRealTime)(nil), // 9: protoFiles_zjhl.VICRealTime + (*DISRealTime)(nil), // 10: protoFiles_zjhl.DISRealTime + (*CRKRealTime)(nil), // 11: protoFiles_zjhl.CRKRealTime + (*HPTRealTime)(nil), // 12: protoFiles_zjhl.HPTRealTime + (*RSGRealTime)(nil), // 13: protoFiles_zjhl.RSGRealTime + (*INCRealTime)(nil), // 14: protoFiles_zjhl.INCRealTime + (*VIBRealTime)(nil), // 15: protoFiles_zjhl.VIBRealTime + (*VIERealTime)(nil), // 16: protoFiles_zjhl.VIERealTime + (*TMDRealTime)(nil), // 17: protoFiles_zjhl.TMDRealTime + (*HSDRealTime)(nil), // 18: protoFiles_zjhl.HSDRealTime + (*PWSRealTime)(nil), // 19: protoFiles_zjhl.PWSRealTime + (*FRZRealTime)(nil), // 20: protoFiles_zjhl.FRZRealTime + (*LMZRealTime)(nil), // 21: protoFiles_zjhl.LMZRealTime + (*DICRealTime)(nil), // 22: protoFiles_zjhl.DICRealTime + (*STFRealTime)(nil), // 23: protoFiles_zjhl.STFRealTime + (*SCORealTime)(nil), // 24: protoFiles_zjhl.SCORealTime + (*CORRealTime)(nil), // 25: protoFiles_zjhl.CORRealTime + (*VISRealTime)(nil), // 26: protoFiles_zjhl.VISRealTime + (*STRRealTime)(nil), // 27: protoFiles_zjhl.STRRealTime + (*BRKRealTime)(nil), // 28: protoFiles_zjhl.BRKRealTime + (*BTFRealTime)(nil), // 29: protoFiles_zjhl.BTFRealTime + (*CSPRealTime)(nil), // 30: protoFiles_zjhl.CSPRealTime + (*VSBRealTime)(nil), // 31: protoFiles_zjhl.VSBRealTime + (*ACNRealTime)(nil), // 32: protoFiles_zjhl.ACNRealTime + (*WLVRealTime)(nil), // 33: protoFiles_zjhl.WLVRealTime + (*StatisticData)(nil), // 34: protoFiles_zjhl.StatisticData + (*UANStatistic)(nil), // 35: protoFiles_zjhl.UANStatistic + (*RHSStatistic)(nil), // 36: protoFiles_zjhl.RHSStatistic + (*TMPStatistic)(nil), // 37: protoFiles_zjhl.TMPStatistic + (*GNSSStatistic)(nil), // 38: protoFiles_zjhl.GNSSStatistic + (*ANDStatistic)(nil), // 39: protoFiles_zjhl.ANDStatistic + (*DISStatistic)(nil), // 40: protoFiles_zjhl.DISStatistic + (*HPTStatistic)(nil), // 41: protoFiles_zjhl.HPTStatistic + (*INCStatistic)(nil), // 42: protoFiles_zjhl.INCStatistic + (*RSGStatistic)(nil), // 43: protoFiles_zjhl.RSGStatistic + (*VICStatistic)(nil), // 44: protoFiles_zjhl.VICStatistic + (*VIBStatistic)(nil), // 45: protoFiles_zjhl.VIBStatistic + (*VIEStatistic)(nil), // 46: protoFiles_zjhl.VIEStatistic + (*TMDStatistic)(nil), // 47: protoFiles_zjhl.TMDStatistic + (*HSDStatistic)(nil), // 48: protoFiles_zjhl.HSDStatistic + (*CRKStatistic)(nil), // 49: protoFiles_zjhl.CRKStatistic + (*FRZStatistic)(nil), // 50: protoFiles_zjhl.FRZStatistic + (*PWSStatistic)(nil), // 51: protoFiles_zjhl.PWSStatistic + (*VSBStatistic)(nil), // 52: protoFiles_zjhl.VSBStatistic + (*ACNStatistic)(nil), // 53: protoFiles_zjhl.ACNStatistic + (*WLVStatistic)(nil), // 54: protoFiles_zjhl.WLVStatistic + (*BTFStatistic)(nil), // 55: protoFiles_zjhl.BTFStatistic + (*CSPStatistic)(nil), // 56: protoFiles_zjhl.CSPStatistic +} +var file_MonitorDataProtocol_V1_3_1_proto_depIdxs = []int32{ + 3, // 0: protoFiles_zjhl.ComplexData.sensorData:type_name -> protoFiles_zjhl.DataDefinition + 0, // 1: protoFiles_zjhl.DataDefinition.dataType:type_name -> protoFiles_zjhl.DataType + 4, // 2: protoFiles_zjhl.DataDefinition.realTimeData:type_name -> protoFiles_zjhl.RealTimeData + 34, // 3: protoFiles_zjhl.DataDefinition.statisticData:type_name -> protoFiles_zjhl.StatisticData + 1, // 4: protoFiles_zjhl.RealTimeData.monitorType:type_name -> protoFiles_zjhl.MonitoryType + 5, // 5: protoFiles_zjhl.RealTimeData.uan:type_name -> protoFiles_zjhl.UANRealTime + 6, // 6: protoFiles_zjhl.RealTimeData.rhs:type_name -> protoFiles_zjhl.RHSRealTime + 7, // 7: protoFiles_zjhl.RealTimeData.tmp:type_name -> protoFiles_zjhl.TMPRealTime + 8, // 8: protoFiles_zjhl.RealTimeData.gnss:type_name -> protoFiles_zjhl.GNSSRealTime + 9, // 9: protoFiles_zjhl.RealTimeData.vic:type_name -> protoFiles_zjhl.VICRealTime + 22, // 10: protoFiles_zjhl.RealTimeData.dic:type_name -> protoFiles_zjhl.DICRealTime + 10, // 11: protoFiles_zjhl.RealTimeData.dis:type_name -> protoFiles_zjhl.DISRealTime + 12, // 12: protoFiles_zjhl.RealTimeData.hpt:type_name -> protoFiles_zjhl.HPTRealTime + 13, // 13: protoFiles_zjhl.RealTimeData.rsg:type_name -> protoFiles_zjhl.RSGRealTime + 14, // 14: protoFiles_zjhl.RealTimeData.inc:type_name -> protoFiles_zjhl.INCRealTime + 16, // 15: protoFiles_zjhl.RealTimeData.vie:type_name -> protoFiles_zjhl.VIERealTime + 17, // 16: protoFiles_zjhl.RealTimeData.tmd:type_name -> protoFiles_zjhl.TMDRealTime + 15, // 17: protoFiles_zjhl.RealTimeData.vib:type_name -> protoFiles_zjhl.VIBRealTime + 18, // 18: protoFiles_zjhl.RealTimeData.hsd:type_name -> protoFiles_zjhl.HSDRealTime + 19, // 19: protoFiles_zjhl.RealTimeData.pws:type_name -> protoFiles_zjhl.PWSRealTime + 20, // 20: protoFiles_zjhl.RealTimeData.frz:type_name -> protoFiles_zjhl.FRZRealTime + 21, // 21: protoFiles_zjhl.RealTimeData.lmz:type_name -> protoFiles_zjhl.LMZRealTime + 23, // 22: protoFiles_zjhl.RealTimeData.stf:type_name -> protoFiles_zjhl.STFRealTime + 24, // 23: protoFiles_zjhl.RealTimeData.sco:type_name -> protoFiles_zjhl.SCORealTime + 11, // 24: protoFiles_zjhl.RealTimeData.crk:type_name -> protoFiles_zjhl.CRKRealTime + 25, // 25: protoFiles_zjhl.RealTimeData.cor:type_name -> protoFiles_zjhl.CORRealTime + 26, // 26: protoFiles_zjhl.RealTimeData.vis:type_name -> protoFiles_zjhl.VISRealTime + 27, // 27: protoFiles_zjhl.RealTimeData.str:type_name -> protoFiles_zjhl.STRRealTime + 28, // 28: protoFiles_zjhl.RealTimeData.brk:type_name -> protoFiles_zjhl.BRKRealTime + 29, // 29: protoFiles_zjhl.RealTimeData.btf:type_name -> protoFiles_zjhl.BTFRealTime + 30, // 30: protoFiles_zjhl.RealTimeData.csp:type_name -> protoFiles_zjhl.CSPRealTime + 31, // 31: protoFiles_zjhl.RealTimeData.vsb:type_name -> protoFiles_zjhl.VSBRealTime + 32, // 32: protoFiles_zjhl.RealTimeData.acn:type_name -> protoFiles_zjhl.ACNRealTime + 33, // 33: protoFiles_zjhl.RealTimeData.wlv:type_name -> protoFiles_zjhl.WLVRealTime + 1, // 34: protoFiles_zjhl.StatisticData.monitorType:type_name -> protoFiles_zjhl.MonitoryType + 35, // 35: protoFiles_zjhl.StatisticData.uan:type_name -> protoFiles_zjhl.UANStatistic + 36, // 36: protoFiles_zjhl.StatisticData.rhs:type_name -> protoFiles_zjhl.RHSStatistic + 37, // 37: protoFiles_zjhl.StatisticData.tmp:type_name -> protoFiles_zjhl.TMPStatistic + 38, // 38: protoFiles_zjhl.StatisticData.gnss:type_name -> protoFiles_zjhl.GNSSStatistic + 44, // 39: protoFiles_zjhl.StatisticData.vic:type_name -> protoFiles_zjhl.VICStatistic + 40, // 40: protoFiles_zjhl.StatisticData.dis:type_name -> protoFiles_zjhl.DISStatistic + 41, // 41: protoFiles_zjhl.StatisticData.hpt:type_name -> protoFiles_zjhl.HPTStatistic + 43, // 42: protoFiles_zjhl.StatisticData.rsg:type_name -> protoFiles_zjhl.RSGStatistic + 42, // 43: protoFiles_zjhl.StatisticData.inc:type_name -> protoFiles_zjhl.INCStatistic + 46, // 44: protoFiles_zjhl.StatisticData.vie:type_name -> protoFiles_zjhl.VIEStatistic + 47, // 45: protoFiles_zjhl.StatisticData.tmd:type_name -> protoFiles_zjhl.TMDStatistic + 45, // 46: protoFiles_zjhl.StatisticData.vib:type_name -> protoFiles_zjhl.VIBStatistic + 48, // 47: protoFiles_zjhl.StatisticData.hsd:type_name -> protoFiles_zjhl.HSDStatistic + 39, // 48: protoFiles_zjhl.StatisticData.and:type_name -> protoFiles_zjhl.ANDStatistic + 49, // 49: protoFiles_zjhl.StatisticData.crk:type_name -> protoFiles_zjhl.CRKStatistic + 50, // 50: protoFiles_zjhl.StatisticData.frz:type_name -> protoFiles_zjhl.FRZStatistic + 51, // 51: protoFiles_zjhl.StatisticData.pws:type_name -> protoFiles_zjhl.PWSStatistic + 52, // 52: protoFiles_zjhl.StatisticData.vsb:type_name -> protoFiles_zjhl.VSBStatistic + 53, // 53: protoFiles_zjhl.StatisticData.acn:type_name -> protoFiles_zjhl.ACNStatistic + 54, // 54: protoFiles_zjhl.StatisticData.wlv:type_name -> protoFiles_zjhl.WLVStatistic + 55, // 55: protoFiles_zjhl.StatisticData.btf:type_name -> protoFiles_zjhl.BTFStatistic + 56, // 56: protoFiles_zjhl.StatisticData.csp:type_name -> protoFiles_zjhl.CSPStatistic + 57, // [57:57] is the sub-list for method output_type + 57, // [57:57] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name +} + +func init() { file_MonitorDataProtocol_V1_3_1_proto_init() } +func file_MonitorDataProtocol_V1_3_1_proto_init() { + if File_MonitorDataProtocol_V1_3_1_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComplexData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RealTimeData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UANRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RHSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TMPRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GNSSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VICRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DISRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CRKRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HPTRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RSGRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*INCRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VIBRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VIERealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TMDRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSDRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PWSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FRZRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LMZRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DICRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*STFRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCORealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CORRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VISRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*STRRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BRKRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BTFRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VSBRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ACNRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WLVRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatisticData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UANStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RHSStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TMPStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GNSSStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ANDStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DISStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HPTStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*INCStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RSGStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VICStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VIBStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VIEStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TMDStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSDStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CRKStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FRZStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PWSStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VSBStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ACNStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WLVStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BTFStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*DataDefinition_RealTimeData)(nil), + (*DataDefinition_StatisticData)(nil), + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*RealTimeData_Uan)(nil), + (*RealTimeData_Rhs)(nil), + (*RealTimeData_Tmp)(nil), + (*RealTimeData_Gnss)(nil), + (*RealTimeData_Vic)(nil), + (*RealTimeData_Dic)(nil), + (*RealTimeData_Dis)(nil), + (*RealTimeData_Hpt)(nil), + (*RealTimeData_Rsg)(nil), + (*RealTimeData_Inc)(nil), + (*RealTimeData_Vie)(nil), + (*RealTimeData_Tmd)(nil), + (*RealTimeData_Vib)(nil), + (*RealTimeData_Hsd)(nil), + (*RealTimeData_Pws)(nil), + (*RealTimeData_Frz)(nil), + (*RealTimeData_Lmz)(nil), + (*RealTimeData_Stf)(nil), + (*RealTimeData_Sco)(nil), + (*RealTimeData_Crk)(nil), + (*RealTimeData_Cor)(nil), + (*RealTimeData_Vis)(nil), + (*RealTimeData_Str)(nil), + (*RealTimeData_Brk)(nil), + (*RealTimeData_Btf)(nil), + (*RealTimeData_Csp)(nil), + (*RealTimeData_Vsb)(nil), + (*RealTimeData_Acn)(nil), + (*RealTimeData_Wlv)(nil), + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[32].OneofWrappers = []interface{}{ + (*StatisticData_Uan)(nil), + (*StatisticData_Rhs)(nil), + (*StatisticData_Tmp)(nil), + (*StatisticData_Gnss)(nil), + (*StatisticData_Vic)(nil), + (*StatisticData_Dis)(nil), + (*StatisticData_Hpt)(nil), + (*StatisticData_Rsg)(nil), + (*StatisticData_Inc)(nil), + (*StatisticData_Vie)(nil), + (*StatisticData_Tmd)(nil), + (*StatisticData_Vib)(nil), + (*StatisticData_Hsd)(nil), + (*StatisticData_And)(nil), + (*StatisticData_Crk)(nil), + (*StatisticData_Frz)(nil), + (*StatisticData_Pws)(nil), + (*StatisticData_Vsb)(nil), + (*StatisticData_Acn)(nil), + (*StatisticData_Wlv)(nil), + (*StatisticData_Btf)(nil), + (*StatisticData_Csp)(nil), + } + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_MonitorDataProtocol_V1_3_1_proto_msgTypes[41].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_MonitorDataProtocol_V1_3_1_proto_rawDesc, + NumEnums: 2, + NumMessages: 55, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_MonitorDataProtocol_V1_3_1_proto_goTypes, + DependencyIndexes: file_MonitorDataProtocol_V1_3_1_proto_depIdxs, + EnumInfos: file_MonitorDataProtocol_V1_3_1_proto_enumTypes, + MessageInfos: file_MonitorDataProtocol_V1_3_1_proto_msgTypes, + }.Build() + File_MonitorDataProtocol_V1_3_1_proto = out.File + file_MonitorDataProtocol_V1_3_1_proto_rawDesc = nil + file_MonitorDataProtocol_V1_3_1_proto_goTypes = nil + file_MonitorDataProtocol_V1_3_1_proto_depIdxs = nil +} diff --git a/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.proto b/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.proto new file mode 100644 index 0000000..33ad9e9 --- /dev/null +++ b/consumers/GZG2ZJHL/protoFiles_zjhl/MonitorDataProtocol-V1.3.1.proto @@ -0,0 +1,801 @@ +/* +* Version 1.3.1 +* 创建时间 2023–10-11 + */ +// 指定protobuf的版本,proto3是最新的语法版本 +syntax = "proto3"; + +option go_package = "../protoFiles_zjhl"; +package protoFiles_zjhl; +enum DataType {REALTIME = 0;STATISTICS = 1; EMERGENCY = 2; INSPECTION = 3;} + + +enum MonitoryType { + //风速风向 + UAN = 0; + //温湿度 + RHS = 1; + //结构空间变形 + GNSS = 2; + //振动法索力 + VIC = 3; + //直接法索力 + DIC = 4 ; + //支座位移、梁端纵向位移 + DIS = 5; + //挠度 + HPT = 6; + //应变 + RSG = 7; + //转角 + INC = 8; + //振动 + VIB = 9; + //地震 + VIE = 10; + //TMD监测 + TMD = 11; + //车辆荷载 + HSD = 12; + // 结构温度 + TMP = 13; + // 雨量 + PWS = 14; + //结冰 + FRZ = 15; + //路面状况 + LMZ = 16; + //支反力 + STF = 17; + //基础冲刷 + SCO = 18; + //裂缝 + CRK = 19; + //腐蚀 + COR = 20; + //振动法预应力 + VIS = 21; + //直接法预应力 + STR = 22; + //断丝 + BRK = 23; + //螺栓紧固力 + BTF = 24; + //索夹滑移 + CSP = 25; + //能见度 + VSB = 26; + //大气浓度 + ACN = 27; + //水位 + WLV = 28; + //通用 + CMM = 99; +} + + +//复合类型 +message ComplexData{ + //各个监测数据组成的数据,解开后循环解析,生成CRC后进行加密 + repeated DataDefinition sensorData = 1; +} + +//定义数据内容 +message DataDefinition{ + + DataType dataType = 1; + //不传该字段 + string bridgeCode = 14; + + oneof dataBody{ + //实时数据 + RealTimeData realTimeData = 2; + //特征值表 + StatisticData statisticData = 3; + + } +} + +message RealTimeData{ + + //监测类型 + MonitoryType monitorType = 1; + //测点编码的别名 + int64 monitorCode = 2; + //记录时间戳 + int64 eventTime = 3; + //采样周期 + int32 interval = 100; + + oneof dataBody{ + //实时数据 + //风速风向 + UANRealTime uan = 4; + //温湿度 + RHSRealTime rhs = 5; + //结构温度 + TMPRealTime tmp = 6; + //空间变形 + GNSSRealTime gnss = 7; + // 索力 + VICRealTime vic = 8; + + DICRealTime dic = 9; + // 位移 + DISRealTime dis = 10; + //挠度 + HPTRealTime hpt = 11; + //静应变 + RSGRealTime rsg = 12; + //转角 + INCRealTime inc = 13; + //地震船撞 + VIERealTime vie = 14; + //TMD + TMDRealTime tmd = 15; + //动力特性 + VIBRealTime vib = 16; + //动态称重 + HSDRealTime hsd = 17; + // 雨量 + PWSRealTime pws = 18; + //结冰 + FRZRealTime frz = 19; + //路面状况 + LMZRealTime lmz = 20; + //支反力 + STFRealTime stf = 21; + //基础冲刷 + SCORealTime sco = 22; + //裂缝 + CRKRealTime crk = 23; + //腐蚀 + CORRealTime cor = 25; + //振动法预应力 + VISRealTime vis = 26; + // 直接法预应力 + STRRealTime str = 27; + // 断丝 + BRKRealTime brk = 28; + // 螺栓紧固力 + BTFRealTime btf = 29; + // 索夹滑移 + CSPRealTime csp = 30; + + // 能见度 + VSBRealTime vsb = 31; + //大气浓度 + ACNRealTime acn = 32; + //水位 + WLVRealTime wlv =33; + } + +} + +/* +实时数据发送格式 +*/ +//风速风向的指标hsd +message UANRealTime{ + //风速 + float windVelocity = 1; + //风向 + float windDirection = 2; + //风攻角 + optional float windAttackAngle = 3; + +} + +//温湿度指标 +message RHSRealTime{ + //温度 + float temperature = 1; + //湿度 + float humidity = 2; + +} + +//温度指标 +message TMPRealTime{ + //温度 + float temperature = 1; +} + +//空间变形 + +message GNSSRealTime{ + //横桥向 + float x = 1; + //纵桥向 + float y = 2; + //竖向 + float z = 3; +} + +//索力监测 +message VICRealTime{ + //索力值 + float cableForce = 1; + //基频 + optional float fundamentalFrequency = 2; +} + +//位移(支座位移、梁端纵向位移) +message DISRealTime{ + //位移值 + float displacement = 1; + //如传感器有温度数据 + optional float temperature = 2; +} +//裂缝 +message CRKRealTime{ + //裂缝宽度 + float crackWidth = 1; + //如传感器有温度数据 + optional float temperature = 2; +} + +//挠度监测 +message HPTRealTime{ + //挠度值 + float deflection = 1; + //如传感器有温度数据 + optional float temperature = 2; +} + +//静应变监测 +message RSGRealTime{ + //应变值 + float strain = 1; + //如传感器有温度数据 + optional float temperature = 2; +} + + +//梁端转角监测 +message INCRealTime{ + // 横桥向X + float x = 1; + //纵桥向Y + float y = 2; + //如传感器有温度数据 + repeated float temperature = 3 [packed = true]; +} + + +//一秒钟内动力特性 +message VIBRealTime{ + repeated float monitorValues = 1 [packed = true]; +} + +//一秒钟内地震船撞 +message VIERealTime{ + //多通道监测值 + repeated float monitorValues = 1 [packed = true]; +} + +//一秒钟内TMD +message TMDRealTime{ + repeated float monitorValues = 1 [packed = true]; + +} + +// 车辆荷载 --动态称重 +message HSDRealTime{ + //车道号 + int32 laneId = 1; + //上下行 + int32 operDirec = 2; + //轴数 + int32 axleNum = 3; + //轴组数 + int32 axleGrpNum = 4; + //车重 + int32 grossLoad = 5; + //车型 + int32 vehType = 6; + + //左1轮重 + int32 leftWheelWeight1 = 7; + //左2轮重 + int32 leftWheelWeight2 = 8; + //左3轮重 + int32 leftWheelWeight3 = 9; + //左4轮重 + int32 leftWheelWeight4 = 10; + //左5轮重 + int32 leftWheelWeight5 = 11; + //左6轮重 + int32 leftWheelWeight6 = 12; + //左7轮重 + int32 leftWheelWeight7 = 13; + //左8轮重 + int32 leftWheelWeight8 = 14; + + //右1轮重 + int32 rightWheelWeight1 = 15; + //右2轮重 + int32 rightWheelWeight2 = 16; + //右3轮重 + int32 rightWheelWeight3 = 17; + //右4轮重 + int32 rightWheelWeight4 = 18; + //右5轮重 + int32 rightWheelWeight5 = 19; + //右6轮重 + int32 rightWheelWeight6 = 20; + //右7轮重 + int32 rightWheelWeight7 = 21; + //右8轮重 + int32 rightWheelWeight8 = 22; + + //轴1-轴2距离 + int32 axleDis1 = 23; + //轴2-轴3距离 + int32 axleDis2 = 24; + //轴3-轴4距离 + int32 axleDis3 = 25; + //轴4-轴5距离 + int32 axleDis4 = 26; + //轴5-轴6距离 + int32 axleDis5 = 27; + //轴6-轴7距离 + int32 axleDis6 = 28; + //轴7-轴8距离 + int32 axleDis7 = 29; + //违例码 + optional int32 violationId = 30; + //超限标示 + optional int32 overloadSign = 31; + //车速 + int32 speed = 32; + //加速度 + optional float acceleration = 33; + //车辆长度 + int32 vehLength = 34; + //当量轴次 + optional float qat = 35; + //车牌号 + optional string licencePlate = 36; + //车牌颜色 + optional string licencePlateColor = 37; + //图片id + optional int32 picId = 38; + //路面温度 + optional float roadTemperature = 39; + +} + +//雨量指标 +message PWSRealTime{ + //雨量 + float rainfall = 1; + +} + +//结冰监测 +message FRZRealTime{ + //结冰厚度 + float iceThickness = 1 ; + //如传感器有温度数据 + float temperature = 2 ; +} + +//路面状况监测 +message LMZRealTime{ + //路面状况 + float roadCondition = 1; + //如传感器有温度数据 + float temperature = 2; +} + +//直接法测索力监测 +message DICRealTime{ + //索力值 + float cableForce = 1; + //如传感器有温度数据 + float temperature = 2 ; +} + +//支反力监测 +message STFRealTime{ + //反力值 + float supportAction = 1 ; + //如传感器有温度数据 + float temperature = 2 ; +} + +//基础冲刷监测 +message SCORealTime{ + //深度 + float depth = 1; +} + +//腐蚀监测 +message CORRealTime{ + //氯离子浓度 + float chlorideConcentration = 1 ; + //侵蚀深度 + float corrosionDepth = 2 ; +} + +//振动法预应力监测 +message VISRealTime{ + //预应力 + repeated float monitorValues = 1 [packed = true]; +} + +//预应力监测 +message STRRealTime{ + //预应力值 + float stress = 1 ; + //如传感器有温度数据 + optional float temperature = 2 ; +} + +//断丝监测 +message BRKRealTime{ + //状态 + bool state = 1; +} + + +//螺栓紧固力监测 +message BTFRealTime{ + //力值 + float boltTightForce = 1; + //如传感器有温度数据 + optional float temperature = 2; +} + + +//索夹滑移监测 +message CSPRealTime{ + //位移值 + float displacement = 1 ; + //如传感器有温度数据 + optional float temperature = 2; +} +//能见度 +message VSBRealTime{ + //能见度值 + float value = 1; +} +//大气浓度 +message ACNRealTime{ + //大气浓度最大值 + float value = 1; +} +//水位 +message WLVRealTime{ + //水位 + float value = 1; +} +/* +特征值数据协议格式 +*/ + +//特征值 +message StatisticData{ + + //监测类型 + MonitoryType monitorType = 1; + //测点编码的别名 + int64 monitorCode = 2; + //记录时间戳 + int64 eventTime = 3; + //采样周期 + int32 interval = 100; + + oneof dataBody{ + //风速风向 + UANStatistic uan = 4; + //温湿度 + RHSStatistic rhs = 5; + //结构温度 + TMPStatistic tmp = 6; + //空间变形 + GNSSStatistic gnss = 7; + // 索力 + VICStatistic vic = 8; + // 位移 (支座位移、梁端纵向位移) + DISStatistic dis = 9; + //挠度 + HPTStatistic hpt = 10; + //应变 + RSGStatistic rsg = 11; + //转角 + INCStatistic inc = 12; + //地震船撞 + VIEStatistic vie = 13; + //TMD + TMDStatistic tmd = 14; + //动力特性 + VIBStatistic vib = 15; + //动态称重 + HSDStatistic hsd = 16; + // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 + ANDStatistic and = 17; + //裂缝 + CRKStatistic crk = 18; + //结冰 + FRZStatistic frz = 19; + //降雨量 + PWSStatistic pws = 20; + //能见度 + VSBStatistic vsb = 21; + //大气浓度 + ACNStatistic acn = 22; + //水位 + WLVStatistic wlv = 23; + //螺杆状态 + BTFStatistic btf = 24; + //索夹滑移 + CSPStatistic csp = 25; + } + +} +//风速风向监测特征值 周期 10min +message UANStatistic{ + //统计时间范围内的风速平均值 + float avgVelocity = 1; + //统计时间范围内的风向平均值 + float avgDirection = 2; + //统计时间范围内的风攻角平均值 + optional float avgAttackAngle = 3; +} + +//温湿度监测特征值,周期 1h +message RHSStatistic{ + //统计时间范围内的温度最大值 + float maxTemperature = 1; + //统计时间范围内的温度最小值 + float minTemperature = 2; + //统计时间范围内的温度平均值 + float avgTemperature = 3; + //统计时间范围内的温差值 + float maxTemperatureDifference = 4; + //统计时间范围内的湿度最大值 + float maxHumidity = 5; + //统计时间范围内的湿度最小值 + float minHumidity = 6; + //统计时间范围内的湿度平均值 + float avgHumidity = 7; + //湿度超限持续时间,分钟 + int32 humidityExceedDuration = 8; +} + +//温度监测特征值 周期 1h +message TMPStatistic{ + //统计时间范围内的温度最大值 + float maxTemperature = 1; + //统计时间范围内的温度最小值 + float minTemperature = 2; + //统计时间范围内的温度平均值 + float avgTemperature = 3; + //统计时间范围内的温差值 + float maxDifference = 4; +} + +//结构空间变形监测特征值 位移(主梁、塔顶、主缆、高墩墩顶、拱顶) 周期: 1h +message GNSSStatistic{ + //统计时间范围内的空间变形X绝对最大值 + float maxAbsoluteValueX = 1; + //统计时间范围内的空间变形X平均值 + float avgValueX = 2; + //统计时间范围内的空间变形X均方根 + float rootMeanSquareX = 3; + //统计时间范围内的空间变形Y绝对最大值 + float maxAbsoluteValueY = 4; + //统计时间范围内的空间变形Y平均值 + float avgValueY = 5; + //统计时间范围内的空间变形Y均方根 + float rootMeanSquareY = 6; + //统计时间范围内的空间变形Z绝对最大值 + float maxAbsoluteValueZ = 7; + //统计时间范围内的空间变形Z平均值 + float avgValueZ = 8; + //统计时间范围内的空间变形Z均方根 + float rootMeanSquareZ = 9; + +} + +// 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 周期 24h +message ANDStatistic{ + //统计时间范围内的空间变形X绝对最大值 + float maxAbsoluteValueX = 1; + //统计时间范围内的空间变形X平均值 + float avgValueX = 2; + //统计时间范围内的空间变形X均方根 + float rootMeanSquareX = 3; + //统计时间范围内的空间变形Y绝对最大值 + float maxAbsoluteValueY = 4; + //统计时间范围内的空间变形Y平均值 + float avgValueY = 5; + //统计时间范围内的空间变形Y均方根 + float rootMeanSquareY = 6; + //统计时间范围内的空间变形Z绝对最大值 + float maxAbsoluteValueZ = 7; + //统计时间范围内的空间变形Z平均值 + float avgValueZ = 8; + //统计时间范围内的空间变形Z均方根 + float rootMeanSquareZ = 9; + +} + +//位移监测特征值 位移(支座位移、梁端纵向位移) 周期 1h +message DISStatistic{ + //统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + //统计时间范围内的位移平均值 + float avgValue = 2; + //统计时间范围内的位移均方根值 + float rootMeanSquare = 3; + //统计时间范围内的绝对值累积量 + float totalAbsoluteValue = 4; + +} + +//挠度监测特征值 周期1h +message HPTStatistic{ + //统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + //统计时间范围内的位移平均值 + float avgValue = 2; + //统计时间范围内的位移均方根值 + float rootMeanSquare = 3; + +} + +//转角监测特征值 周期 1h +message INCStatistic{ + //统计时间范围内横桥向的绝对最大值 + float maxAbsoluteValueX = 1; + // 统计时间范围内横桥向的转角平均值 + float avgValueX = 2; + //统计时间范围内横桥向的转角均方根值 + float rootMeanSquareX = 3; + // 统计时间范围内纵桥向的绝对最大值 + float maxAbsoluteValueY = 4; + // 统计时间范围内纵桥向的转角平均值 + float avgValueY = 5; + // 统计时间范围内纵桥向的转角均方根值 + float rootMeanSquareY = 6; +} + +//应变监测特征值 周期 1h +message RSGStatistic{ + //统计时间范围内的应变/应力绝对最大值 + float maxAbsoluteValue = 1; + //统计时间范围内的应变/应力平均值 + float avgValue = 2; + //统计时间范围内的温度平均值 + optional float avgTemperature = 3; +} + +//索力监测特征值 周期 1h +message VICStatistic{ + //统计时间范围内的索力最大值 + float maxValue = 1; + // 统计时间范围内的索力最小值 + float minValue = 2; + // 统计时间范围内的索力平均值 + float avgValue = 3; + // 统计时间范围内的索力均方根值 + float rootMeanSquare = 4; + +} + +//动力特性监测特征值 振动(主梁、索塔、拱圈) 周期 10min +message VIBStatistic{ + //统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + // 统计时间范围内的均方根值 + float rootMeanSquare = 2; + +} + +//地震船撞特性监测特征值 周期10min +message VIEStatistic{ + // 统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + // 统计时间范围内的均方根值 + float rootMeanSquare = 2; + +} + +//TMD监测特征值 周期10min +message TMDStatistic{ + //统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + // 统计时间范围内的均方根值 + float rootMeanSquare = 2; +} + +//车辆载荷监测特征值 -动态称重 周期 1h +message HSDStatistic{ + //统计时间范围内的车流量 + int32 trafficFlow = 1; + // 统计时间范围内的最大车重 + int32 maxTotalLoad = 2; + // 统计时间范围内的最大轴重 + int32 maxAxleLoad = 3; + // 统计时间范围内的超载车数量 + int32 overLoadCount = 4; + +} +//裂缝监测特征值 位移( 周期 1h) +message CRKStatistic{ + //统计时间范围内的绝对最大值 + float maxAbsoluteValue = 1; + //统计时间范围内的位移平均值 + float avgValue = 2; + //统计时间范围内的位移均方根值 + float rootMeanSquare = 3; + //统计时间范围内的绝对值累积量 + float totalAbsoluteValue = 4; + +} + +//结冰(周期 1h) +message FRZStatistic{ + //统计时间范围内的结冰最大值 + float maxValue = 1; + // 统计时间范围内的结冰最小值 + float minValue = 2; + // 统计时间范围内的结冰平均值 + float avgValue = 3; +} + +//降雨量(周期 10min) +message PWSStatistic{ + // 统计时间范围内的降雨量平均值 + float avgValue = 1; +} + +//能见度(周期 10min) +message VSBStatistic{ + // 统计时间范围内的能见度值 + float avgValue = 1; +} + +//大气浓度(周期 1h) +message ACNStatistic{ + //统计时间范围内的大气浓度最大值 + float maxValue = 1; + // 统计时间范围内的大气浓度最小值 + float minValue = 2; + // 统计时间范围内的大气浓度平均值 + float avgValue = 3; +} + +//水位(周期 1h) +message WLVStatistic{ + //统计时间范围内的水位最大值 + float maxValue = 1; + // 统计时间范围内的水位最小值 + float minValue = 2; + // 统计时间范围内的水位平均值 + float avgValue = 3; +} + +//螺杆状态(周期 1h) +message BTFStatistic{ + //统计时间范围内的螺杆状态平均值 + float avgValue = 1; + // 统计时间范围内的螺杆状态绝对最大值 + float maxAbsoluteValue = 2; + // 统计时间范围内的螺杆状态均方根值 + float rootMeanSquare = 3; +} + +//索夹滑移(周期 1h) +message CSPStatistic{ + //统计时间范围内的索夹滑移平均值 + float avgValue = 1; + // 统计时间范围内的索夹滑移绝对最大值 + float maxAbsoluteValue = 2; + // 统计时间范围内的索夹滑移均方根值 + float rootMeanSquare = 3; +} + diff --git a/consumers/consumerGZG2ZJHL.go b/consumers/consumerGZG2ZJHL.go new file mode 100644 index 0000000..c661614 --- /dev/null +++ b/consumers/consumerGZG2ZJHL.go @@ -0,0 +1,324 @@ +package consumers + +import ( + "crypto/rc4" + "encoding/hex" + "fmt" + "goInOut/adaptors" + "goInOut/consumers/HBJCAS" + "goInOut/dbOperate" + "goInOut/monitors" + "goInOut/utils" + "gopkg.in/yaml.v3" + "log" + "time" +) + +type consumerGZG2ZJHL struct { + //数据缓存管道 + ch chan []adaptors.NeedPush + //具体配置 + Info HBJCAS.ConfigFile + InHttp *dbOperate.HttpHelper + outMqtt *dbOperate.MqttHelper + monitor *monitors.CommonMonitor + infoRedis *dbOperate.RedisHelper +} + +func (the *consumerGZG2ZJHL) LoadConfigJson(cfgStr string) { + // 将 yaml 格式的数据解析到结构体中 + err := yaml.Unmarshal([]byte(cfgStr), &the.Info) + if err != nil { + log.Printf("读取配置文件[%s]异常 err=%v", cfgStr, err.Error()) + panic(err) + } +} + +func (the *consumerGZG2ZJHL) Initial(cfg string) error { + the.LoadConfigJson(cfg) + err := the.InputInitial() + if err != nil { + return err + } + err = the.OutputInitial() + if err != nil { + return err + } + err = the.infoComponentInitial() + return err +} +func (the *consumerGZG2ZJHL) InputInitial() error { + the.ch = make(chan []adaptors.NeedPush, 200) + //数据入口 + the.InHttp = &dbOperate.HttpHelper{Url: the.Info.IoConfig.In.Http.Url, Token: ""} + the.monitor = &monitors.CommonMonitor{ + MonitorHelper: &monitors.MonitorHelper{}, + } + + the.monitor.Start() + for taskName, cron := range the.Info.Monitor { + switch taskName { + case "cron10min": + //the.monitor.RegisterTask(cron, the.getEs10minAggData) + case "cron1hour": + the.monitor.RegisterTask(cron, the.getEs1HourAggData) + default: + log.Printf("定时任务[%s],cron=[%s] 无匹配", taskName, cron) + } + } + + return nil +} +func (the *consumerGZG2ZJHL) OutputInitial() error { + //数据出口 + the.outMqtt = dbOperate.MqttInitial( + the.Info.IoConfig.Out.Mqtt.Host, + the.Info.IoConfig.Out.Mqtt.Port, + the.Info.IoConfig.Out.Mqtt.ClientId, + the.Info.IoConfig.Out.Mqtt.UserName, + the.Info.IoConfig.Out.Mqtt.Password, + true, //按照具体项目来 + "consumers/HBJCAS/ssl/cacert.pem", + "consumers/HBJCAS/ssl/client-cert.pem", + "consumers/HBJCAS/ssl/client-key.pem") + return nil +} + +func (the *consumerGZG2ZJHL) infoComponentInitial() error { + //数据出口 + addr := the.Info.QueryComponent.Redis.Address + the.infoRedis = dbOperate.NewRedisHelper("", addr) + return nil +} +func (the *consumerGZG2ZJHL) Work() { + go func() { + for { + needPushList := <-the.ch + if len(the.ch) > 0 { + log.Printf("取出ch数据,剩余[%d] ", len(the.ch)) + } + + for _, push := range needPushList { + if push.Topic != "" { + the.outMqtt.Publish(push.Topic, push.Payload) + continue + } + + //没有标记topic 的 按照配置文件里面的推送 + for _, topic := range the.Info.IoConfig.Out.Mqtt.Topics { + the.outMqtt.Publish(topic, push.Payload) + } + + } + + time.Sleep(100 * time.Millisecond) + } + }() +} + +func (the *consumerGZG2ZJHL) getAdaptor() (adaptor adaptors.Adaptor_ZWYES_ZJHL) { + + return adaptors.Adaptor_ZWYES_ZJHL{ + Redis: the.infoRedis, + } +} + +func (the *consumerGZG2ZJHL) getStructIds() []int64 { + var structIds []int64 + for strutId, _ := range the.Info.StructInfo { + structIds = append(structIds, strutId) + } + return structIds +} +func (the *consumerGZG2ZJHL) getEs1HourAggData() { + start, end := utils.GetTimeRangeByHour(-1) + log.Printf("查询数据时间范围 %s - %s", start, end) + hourFactorIds := []int{4} // 15, 18, 20 + structIds := the.getStructIds() + for _, structId := range structIds { + for _, factorId := range hourFactorIds { + esQuery := the.getESQueryStrByHour(structId, factorId, start, end) + auth := map[string]string{"Authorization": "Bear 85a441d4-022b-4613-abba-aaa8e2693bf7"} + esAggResultStr := the.InHttp.HttpGetWithHeader(esQuery, auth) + + adaptor := the.getAdaptor() + adaptor.PointInfo = the.Info.PointInfo + adaptor.StructInfo = the.Info.StructInfo + needPushes := adaptor.Transform(structId, factorId, esAggResultStr) + for i := range needPushes { + needPushes[i].Payload = the.crc16rc4(needPushes[i].Payload) + } + + if len(needPushes) > 0 { + the.ch <- needPushes + } + } + } + +} + +func (the *consumerGZG2ZJHL) getEs10minAggData() { + //utils.GetTimeRangeBy10min() 由于振动数据实时性问题 改用一小时统一上报 + start, end := utils.GetTimeRangeByHour(-1) + log.Printf("查询10min数据时间范围 %s - %s", start, end) + factorIds := []int{28, 592} //监测因素 592 -> 结构物[5222]隧道河北承德广仁岭隧道(上行) 的加速度三项监测 + structIds := the.getStructIds() + for _, structId := range structIds { + for _, factorId := range factorIds { + esQuery := the.getESQueryStrBy10min(structId, factorId, start, end) + auth := map[string]string{"Authorization": "Bear 85a441d4-022b-4613-abba-aaa8e2693bf7"} + esAggResultStr := the.InHttp.HttpGetWithHeader(esQuery, auth) + + adaptor := the.getAdaptor() + adaptor.PointInfo = the.Info.PointInfo + adaptor.StructInfo = the.Info.StructInfo + needPushes := adaptor.Transform(structId, factorId, esAggResultStr) + for i := range needPushes { + needPushes[i].Payload = the.crc16rc4(needPushes[i].Payload) + log.Printf("topic[%s],Payload=> %s", needPushes[i].Topic, hex.EncodeToString(needPushes[i].Payload)) + } + + if len(needPushes) > 0 { + the.ch <- needPushes + } + } + } + +} + +func (the *consumerGZG2ZJHL) crc16rc4(transBytes []byte) []byte { + resultByCrc16 := utils.NewCRC16CCITT().GetWCRCin(transBytes) + needRC4 := append(transBytes, resultByCrc16...) + rc4KeyStr, ok := the.Info.OtherInfo["rc4key"] + if !ok { + log.Panicf("未配置 rc4key") + } + rc4Key := []byte(rc4KeyStr) //the.RC4Key + // 加密操作 + dest1 := make([]byte, len(needRC4)) + rc4.NewCipher(rc4Key) + cipher1, _ := rc4.NewCipher(rc4Key) + cipher1.XORKeyStream(dest1, needRC4) + return dest1 +} +func (the *consumerGZG2ZJHL) getESQueryStrByHour(structureId int64, factorId int, start, end string) string { + aggSubSql := getEsAggSubSqlByFactorId(factorId) + esQuery := fmt.Sprintf(` +{ + "size": 0, + "query": { + "bool": { + "must": [ + { + "term": { + "structure": { + "value": %d + } + } + }, + { + "term": { + "factor": { + "value": %d + } + } + }, + { + "range": { + "collect_time": { + "gte": "%s", + "lt": "%s" + } + } + } + ] + } + }, + "aggs": { + "groupSensor": { + "terms": { + "field": "sensor" + }, + "aggs": { + "groupDate": { + "date_histogram": { + "field": "collect_time", + "interval": "1h", + "time_zone": "Asia/Shanghai", + "min_doc_count": 1 + }, + "aggs": %s + } + } + } + } +} +`, structureId, factorId, start, end, aggSubSql) + + return esQuery +} + +func (the *consumerGZG2ZJHL) getESQueryStrBy10min(structureId int64, factorId int, start, end string) string { + aggSubSql := getEsAggSubSqlByFactorId(factorId) + esQuery := fmt.Sprintf(` +{ + "size": 0, + "query": { + "bool": { + "must": [ + { + "term": { + "structure": { + "value": %d + } + } + }, + { + "term": { + "factor": { + "value": %d + } + } + }, + { + "range": { + "collect_time": { + "gte": "%s", + "lte": "%s" + } + } + } + ] + } + }, + "aggs": { + "groupSensor": { + "terms": { + "field": "sensor" + }, + "aggs": { + "groupDate": { + "date_histogram": { + "field": "collect_time", + "interval": "10m", + "time_zone": "Asia/Shanghai", + "min_doc_count": 1 + }, + "aggs": %s + } + } + } + } +} +`, structureId, factorId, start, end, aggSubSql) + + return esQuery +} + +func (the *consumerGZG2ZJHL) getStructureId() string { + structureId, ok := the.Info.OtherInfo["structureId"] + if !ok { + log.Panicf("无法识别有效的structureId") + } + return structureId +} diff --git a/consumers/consumerHBJCAS.go b/consumers/consumerHBJCAS.go index 4a6a1e5..d0069ff 100644 --- a/consumers/consumerHBJCAS.go +++ b/consumers/consumerHBJCAS.go @@ -317,8 +317,18 @@ func (the *consumerHBJCAS) getESQueryStrBy10min(structureId int64, factorId int, func getEsAggSubSqlByFactorId(factorId int) string { //桥墩倾斜 15 裂缝 18 支座位移20 桥面振动28 加速度三项监测592(承德隧道专用) + //温度4 果子沟上报 subAggSQl := "" switch factorId { + case 4: + subAggSQl = ` +{ + "x": { + "extended_stats": { + "field": "data.temperature" + } + } +}` case 15: subAggSQl = ` { diff --git a/consumers/consumerManage.go b/consumers/consumerManage.go index 06d657b..8751634 100644 --- a/consumers/consumerManage.go +++ b/consumers/consumerManage.go @@ -34,6 +34,10 @@ func GetConsumer(name string) (consumer IConsumer) { case "consumerHBJCAS": consumer = new(consumerHBJCAS) + + case "consumerGZG2ZJHL": + consumer = new(consumerGZG2ZJHL) + default: consumer = nil }