diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/goInOut.iml b/.idea/goInOut.iml new file mode 100644 index 0000000..5e764c4 --- /dev/null +++ b/.idea/goInOut.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..695ccf1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/adaptors/安心云es数据to南京智行.go b/adaptors/安心云es数据to南京智行.go new file mode 100644 index 0000000..0a64af7 --- /dev/null +++ b/adaptors/安心云es数据to南京智行.go @@ -0,0 +1,196 @@ +package adaptors + +import ( + "encoding/hex" + "encoding/json" + "fmt" + "goInOut/consumers/JYES_NJZX" + "goInOut/consumers/JYES_NJZX/protoDataFiles" + "goInOut/dbOperate" + "goInOut/models" + "google.golang.org/protobuf/proto" + "log" + "strings" + "time" +) + +// Adaptor_AXYES_NJZX 安心云依加尔山es 特征数据 to 南京智行平台 +type Adaptor_AXYES_NJZX struct { + //传感器code转换信息 + PointInfo map[int64]map[int64]int64 + StructInfo map[int64]int64 + //一些必要信息 + Info map[string]string + Redis *dbOperate.RedisHelper +} + +func (the *Adaptor_AXYES_NJZX) Transform(structId int64, factorId int, rawMsg string) []NeedPush { + //es查到的数据分装进结构体里面 + esAggDateHistogram := JYES_NJZX.EsThemeDateValue{} + var needPush []NeedPush + + err := json.Unmarshal([]byte(rawMsg), &esAggDateHistogram) + if err != nil { + return nil + } + + Payload := the.EsDataValueChangeToNJZX(structId, factorId, esAggDateHistogram) + if len(Payload) == 0 { + return needPush + } + + needPush = append(needPush, NeedPush{ + Payload: Payload, + }) + return needPush +} + +func (the *Adaptor_AXYES_NJZX) EsDataValueChangeToNJZX(structId int64, factorId int, esDataValue JYES_NJZX.EsThemeDateValue) (result []byte) { + buckets := esDataValue.Hits.Hits + //数据汇总 + complexData := &protoDataFiles.ComplexData{} + for _, sensorBucket := range buckets { + sensorId := sensorBucket.Source.SensorName //安心云de测点id + + //优先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 + } + monitorCodeStr := the.getPointCodeFromLabel(station.Labels) + if monitorCodeStr == "" { + log.Printf("redis 获取[s:%d,f:%d]测点[%d],标签信息[%s]转换int64异常,跳过", structId, factorId, sensorId, station.Labels) + continue + } + + dataDefinition := the.ChangeToNJZXData(factorId, monitorCodeStr, sensorBucket) + + complexData.SensorData = append(complexData.SensorData, dataDefinition) + } + + //v, _ := json.Marshal(complexData) + //log.Printf("[struct:%d,factor:%d] 特征数据=> %s", structId, factorId, v) + result, _ = proto.Marshal(complexData) + log.Printf("[struct:%d,factor:%d] protobuf数据=> %s", structId, factorId, hex.EncodeToString(result)) + return result +} + +func (the *Adaptor_AXYES_NJZX) getMonitorTypeByFactorId(factorId int) protoDataFiles.MonitoryType { + //监测因素 2温湿度 4温度 18裂缝检测 + //103净空收敛 102拱顶沉降 96二次衬彻应变 + //107道床及拱腰结构沉降 156风速 578风向 + switch factorId { + case 2: //温湿度 + return protoDataFiles.MonitoryType_RHS + case 4: //温度 + return protoDataFiles.MonitoryType_TMP + case 18: //裂缝检测 + return protoDataFiles.MonitoryType_CRK + case 103: //净空收敛 + return protoDataFiles.MonitoryType_INC //无对应 + case 102: //拱顶沉降 + return protoDataFiles.MonitoryType_CRK //无对应 + case 96: //二次衬彻应变 + return protoDataFiles.MonitoryType_RSG + case 107: //道床及拱腰结构沉降 + return protoDataFiles.MonitoryType_VIB //无对应 + case 156: //风速 + return protoDataFiles.MonitoryType_WDS + case 578: //风向 + return protoDataFiles.MonitoryType_WDD + default: + log.Printf("factorId=%d,无匹配的MonitorType", factorId) + return protoDataFiles.MonitoryType_RHS + } +} + +func (the *Adaptor_AXYES_NJZX) parseTimeToTimestamp(timeStr string) (int64, error) { + // 解析时间字符串为 time.Time 对象 + parsedTime, err := time.Parse(time.RFC3339, timeStr) + if err != nil { + return 0, err + } + // 返回 Unix 时间戳(秒数) + return parsedTime.Unix(), nil +} + +func (the *Adaptor_AXYES_NJZX) ChangeToNJZXData(factorId int, monitorCodeStr string, dateBucket JYES_NJZX.Hits) *protoDataFiles.SensorData { + + Atime, _ := the.parseTimeToTimestamp(dateBucket.Source.CollectTime) + monitoryType := the.getMonitorTypeByFactorId(factorId) + dataDefinitionData := &protoDataFiles.SensorData{ + MonitorType: monitoryType, + SensorNo: monitorCodeStr, + UpTime: Atime, + } + + switch factorId { + case 2: //温湿度 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Rhs{Rhs: &protoDataFiles.RHSRealTime{ + Temperature: []float32{float32(dateBucket.Source.Data["temperature"])}, + Humidity: []float32{float32(dateBucket.Source.Data["humidity"])}, + }} + case 4: //温度 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Tmp{Tmp: &protoDataFiles.TMPRealTime{ + Temperature: []float32{float32(dateBucket.Source.Data["temperature"])}, + }} + case 18: //裂缝检测 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Crk{Crk: &protoDataFiles.CRKRealTime{ + CrackWidth: []float32{float32(dateBucket.Source.Data["crack"])}, + }} + case 103: //净空收敛//123456789 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Rhs{Rhs: &protoDataFiles.RHSRealTime{ + Temperature: []float32{float32(dateBucket.Source.Data["crack"])}, + Humidity: []float32{float32(dateBucket.Source.Data["crack"])}, + }} + case 102: //拱顶沉降//123456789 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Rhs{Rhs: &protoDataFiles.RHSRealTime{ + Temperature: []float32{float32(dateBucket.Source.Data["crack"])}, + Humidity: []float32{float32(dateBucket.Source.Data["crack"])}, + }} + case 96: //二次衬彻应变 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Rsg{Rsg: &protoDataFiles.RSGRealTime{ + Strain: []float32{float32(dateBucket.Source.Data["strain"])}, + }} + case 107: //道床及拱腰结构沉降//123456789 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Rhs{Rhs: &protoDataFiles.RHSRealTime{ + Temperature: []float32{float32(dateBucket.Source.Data["crack"])}, + Humidity: []float32{float32(dateBucket.Source.Data["crack"])}, + }} + case 156: //风速 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Wds{Wds: &protoDataFiles.WDSRealTime{ + WindSpeed: []float32{float32(dateBucket.Source.Data["speed"])}, + }} + case 578: //风向 + dataDefinitionData.DataBody = &protoDataFiles.SensorData_Wdd{Wdd: &protoDataFiles.WDDRealTime{ + WindDirection: []float32{float32(dateBucket.Source.Data["direction"])}, + }} + } + + return dataDefinitionData +} + +func (the *Adaptor_AXYES_NJZX) getUniqueCode(structId int64) (uniqueCode int64) { + if v, ok := the.StructInfo[structId]; ok { + uniqueCode = v + } + return uniqueCode +} + +func (the *Adaptor_AXYES_NJZX) getPointCodeFromLabel(label string) string { + //解析label {code:wd01} + pointUniqueCode := "" + if len(label) > 3 { + newLabel := strings.TrimLeft(label, "{code:") + str := strings.TrimRight(newLabel, "}") + if str == "" { + log.Printf("测点标签转换异常[%s]", label) + } + pointUniqueCode = str + } + + return pointUniqueCode +} diff --git a/adaptors/知物云es主题特征to中交华联.go b/adaptors/知物云es主题特征to中交华联.go index 1bc74b3..bfbdb94 100644 --- a/adaptors/知物云es主题特征to中交华联.go +++ b/adaptors/知物云es主题特征to中交华联.go @@ -149,6 +149,7 @@ func (the *Adaptor_ZWYES_ZJHL) EsAggTopToHBJCAS(structId int64, factorId int, es log.Printf("[struct:%d,factor:%d] protobuf数据=> %s", structId, factorId, hex.EncodeToString(result)) return result } + func (the *Adaptor_ZWYES_ZJHL) getMonitorTypeByFactorId(factorId int) protoFiles_zjhl_v3.MonitoryType { //结构温度4 桥墩倾斜 15 裂缝18 支座位移20 桥面振动28 风速156 加速度三项监测592 switch factorId { diff --git a/configFiles/弃用备份/config_安心云加依尔2号隧道_南京智行.yaml b/configFiles/弃用备份/config_安心云加依尔2号隧道_南京智行.yaml new file mode 100644 index 0000000..b240308 --- /dev/null +++ b/configFiles/弃用备份/config_安心云加依尔2号隧道_南京智行.yaml @@ -0,0 +1,30 @@ +consumer: consumerJYESNJZX +ioConfig: + in: + http: + url: https://esproxy.anxinyun.cn/savoir_themes/_search + out: + mqtt: + host: 120.205.24.17 + port: 1883 + userName: + password: + clientId: bridge_goinout + topics: + t/t6540000001/rt +monitor: + cron10min: 8/10 * * * * #31 0/1 * * * # +info: + rc4key: t/gzgyy0219 +queryComponent: + redis: + address: 10.8.30.160:30379 #按照实际项目来 +#结构物id对应 +structInfo: + #加依尔4983 -> 映射对方平台id + 4983: 56232 +#点位id对应信息 +pointInfo: #监测因素 2温湿度 4温度 18裂缝检测 103净空收敛 102拱顶沉降 96二次衬彻应变 107道床及拱腰结构沉降 156风速 578风向 + + + diff --git a/consumers/JYES_NJZX/dataModel.go b/consumers/JYES_NJZX/dataModel.go new file mode 100644 index 0000000..90d6119 --- /dev/null +++ b/consumers/JYES_NJZX/dataModel.go @@ -0,0 +1,36 @@ +package JYES_NJZX + +type EsThemeDateValue struct { + Took int `json:"took"` + TimedOut bool `json:"timed_out"` + Shards struct { + Total int `json:"total"` + Successful int `json:"successful"` + Skipped int `json:"skipped"` + Failed int `json:"failed"` + } `json:"_shards"` + Hits struct { + Total int `json:"total"` + MaxScore float64 `json:"max_score"` + Hits []Hits `json:"hits"` + } `json:"hits"` +} +type Hits struct { + Index string `json:"_index"` + Type int `json:"_type"` + Id string `json:"_id"` + Score int `json:"_score"` + Source Source `json:"_source"` +} +type Source struct { + SensorName string `json:"sensor_name"` + FactorName string `json:"factor_name"` + FactorProtoCode string `json:"factor_proto_code"` + Data map[string]float64 `json:"data"` + Factor int `json:"factor"` + CollectTime string `json:"collect_time"` + Sensor int `json:"sensor"` + Structure int `json:"structure"` + IotaDevice []string `json:"iota_device"` + CreateTime string `json:"create_time"` +} diff --git a/consumers/JYES_NJZX/protoDataFiles/MonitorDataProtocol.pb.go b/consumers/JYES_NJZX/protoDataFiles/MonitorDataProtocol.pb.go new file mode 100644 index 0000000..1a82615 --- /dev/null +++ b/consumers/JYES_NJZX/protoDataFiles/MonitorDataProtocol.pb.go @@ -0,0 +1,3160 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v5.29.0--rc1 +// source: MonitorDataProtocol.proto + +package protoDataFiles + +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 MonitoryType int32 + +const ( + // 环境温湿度 + MonitoryType_RHS MonitoryType = 0 + // 雨量 + MonitoryType_PWS MonitoryType = 1 + // 结冰 + MonitoryType_FRZ MonitoryType = 2 + // 车辆荷载 + MonitoryType_HSD MonitoryType = 3 + // 风速、风向 + MonitoryType_UAN MonitoryType = 4 + // 结构温度 + MonitoryType_TMP MonitoryType = 5 + // 路面、桥面温度 + MonitoryType_LMZ MonitoryType = 6 + // 船舶撞击、地震 + MonitoryType_VID MonitoryType = 7 + // 振动 + MonitoryType_VIB MonitoryType = 8 + // 自振频率 + MonitoryType_NFR MonitoryType = 9 + // 位移(结构响应) + MonitoryType_DISR MonitoryType = 10 + // 索力 + MonitoryType_DIC MonitoryType = 11 + // 应变 + MonitoryType_RSG MonitoryType = 12 + // 转角 + MonitoryType_INC MonitoryType = 13 + // 支座反力 + MonitoryType_STF MonitoryType = 14 + // 结构空间变形 + MonitoryType_GNS MonitoryType = 15 + // 挠度(变形) + MonitoryType_HPT MonitoryType = 16 + // 基础冲刷 + MonitoryType_SCO MonitoryType = 17 + // 位移(结构变化) + MonitoryType_DISC MonitoryType = 18 + // 结构裂缝 + MonitoryType_CRK MonitoryType = 19 + // 腐蚀 + MonitoryType_COR MonitoryType = 20 + // 体外预应力 + MonitoryType_STR MonitoryType = 21 + // (螺栓状态)螺栓紧固力 + MonitoryType_BTF MonitoryType = 22 + // 索夹滑移 + MonitoryType_CSP MonitoryType = 23 + // 风速 + MonitoryType_WDS MonitoryType = 24 + // 风向 + MonitoryType_WDD MonitoryType = 25 + // 气压 + MonitoryType_PRS MonitoryType = 26 + // 总辐射 + MonitoryType_RAD MonitoryType = 27 + // 光照度 + MonitoryType_ILL MonitoryType = 28 + // 紫外强度 + MonitoryType_UVT MonitoryType = 29 +) + +// Enum value maps for MonitoryType. +var ( + MonitoryType_name = map[int32]string{ + 0: "RHS", + 1: "PWS", + 2: "FRZ", + 3: "HSD", + 4: "UAN", + 5: "TMP", + 6: "LMZ", + 7: "VID", + 8: "VIB", + 9: "NFR", + 10: "DISR", + 11: "DIC", + 12: "RSG", + 13: "INC", + 14: "STF", + 15: "GNS", + 16: "HPT", + 17: "SCO", + 18: "DISC", + 19: "CRK", + 20: "COR", + 21: "STR", + 22: "BTF", + 23: "CSP", + 24: "WDS", + 25: "WDD", + 26: "PRS", + 27: "RAD", + 28: "ILL", + 29: "UVT", + } + MonitoryType_value = map[string]int32{ + "RHS": 0, + "PWS": 1, + "FRZ": 2, + "HSD": 3, + "UAN": 4, + "TMP": 5, + "LMZ": 6, + "VID": 7, + "VIB": 8, + "NFR": 9, + "DISR": 10, + "DIC": 11, + "RSG": 12, + "INC": 13, + "STF": 14, + "GNS": 15, + "HPT": 16, + "SCO": 17, + "DISC": 18, + "CRK": 19, + "COR": 20, + "STR": 21, + "BTF": 22, + "CSP": 23, + "WDS": 24, + "WDD": 25, + "PRS": 26, + "RAD": 27, + "ILL": 28, + "UVT": 29, + } +) + +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_proto_enumTypes[0].Descriptor() +} + +func (MonitoryType) Type() protoreflect.EnumType { + return &file_MonitorDataProtocol_proto_enumTypes[0] +} + +func (x MonitoryType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MonitoryType.Descriptor instead. +func (MonitoryType) EnumDescriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{0} +} + +// 复合类型 +type ComplexData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 各个监测数据组成的数据,解开后循环解析 + SensorData []*SensorData `protobuf:"bytes,1,rep,name=sensorData,proto3" json:"sensorData,omitempty"` +} + +func (x *ComplexData) Reset() { + *x = ComplexData{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_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_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_proto_rawDescGZIP(), []int{0} +} + +func (x *ComplexData) GetSensorData() []*SensorData { + if x != nil { + return x.SensorData + } + return nil +} + +type SensorData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 监测类型 + MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=protoDataFiles.MonitoryType" json:"monitorType,omitempty"` + // 测点编码 + SensorNo string `protobuf:"bytes,2,opt,name=sensorNo,proto3" json:"sensorNo,omitempty"` + // 上传时间戳 + UpTime int64 `protobuf:"varint,3,opt,name=upTime,proto3" json:"upTime,omitempty"` + // Types that are assignable to DataBody: + // + // *SensorData_Rhs + // *SensorData_Pws + // *SensorData_Frz + // *SensorData_Hsd + // *SensorData_Uan + // *SensorData_Tmp + // *SensorData_Lmz + // *SensorData_Vid + // *SensorData_Vib + // *SensorData_Nfr + // *SensorData_Disr + // *SensorData_Dic + // *SensorData_Rsg + // *SensorData_Inc + // *SensorData_Stf + // *SensorData_Gns + // *SensorData_Hpt + // *SensorData_Sco + // *SensorData_Disc + // *SensorData_Crk + // *SensorData_Cor + // *SensorData_Str + // *SensorData_Btf + // *SensorData_Csp + // *SensorData_Wds + // *SensorData_Wdd + // *SensorData_Prs + // *SensorData_Rad + // *SensorData_Ill + // *SensorData_Uvt + DataBody isSensorData_DataBody `protobuf_oneof:"dataBody"` +} + +func (x *SensorData) Reset() { + *x = SensorData{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SensorData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SensorData) ProtoMessage() {} + +func (x *SensorData) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 SensorData.ProtoReflect.Descriptor instead. +func (*SensorData) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{1} +} + +func (x *SensorData) GetMonitorType() MonitoryType { + if x != nil { + return x.MonitorType + } + return MonitoryType_RHS +} + +func (x *SensorData) GetSensorNo() string { + if x != nil { + return x.SensorNo + } + return "" +} + +func (x *SensorData) GetUpTime() int64 { + if x != nil { + return x.UpTime + } + return 0 +} + +func (m *SensorData) GetDataBody() isSensorData_DataBody { + if m != nil { + return m.DataBody + } + return nil +} + +func (x *SensorData) GetRhs() *RHSRealTime { + if x, ok := x.GetDataBody().(*SensorData_Rhs); ok { + return x.Rhs + } + return nil +} + +func (x *SensorData) GetPws() *PWSRealTime { + if x, ok := x.GetDataBody().(*SensorData_Pws); ok { + return x.Pws + } + return nil +} + +func (x *SensorData) GetFrz() *FRZRealTime { + if x, ok := x.GetDataBody().(*SensorData_Frz); ok { + return x.Frz + } + return nil +} + +func (x *SensorData) GetHsd() *HSDRealTime { + if x, ok := x.GetDataBody().(*SensorData_Hsd); ok { + return x.Hsd + } + return nil +} + +func (x *SensorData) GetUan() *UANRealTime { + if x, ok := x.GetDataBody().(*SensorData_Uan); ok { + return x.Uan + } + return nil +} + +func (x *SensorData) GetTmp() *TMPRealTime { + if x, ok := x.GetDataBody().(*SensorData_Tmp); ok { + return x.Tmp + } + return nil +} + +func (x *SensorData) GetLmz() *LMZRealTime { + if x, ok := x.GetDataBody().(*SensorData_Lmz); ok { + return x.Lmz + } + return nil +} + +func (x *SensorData) GetVid() *VIDRealTime { + if x, ok := x.GetDataBody().(*SensorData_Vid); ok { + return x.Vid + } + return nil +} + +func (x *SensorData) GetVib() *VIBRealTime { + if x, ok := x.GetDataBody().(*SensorData_Vib); ok { + return x.Vib + } + return nil +} + +func (x *SensorData) GetNfr() *NFRRealTime { + if x, ok := x.GetDataBody().(*SensorData_Nfr); ok { + return x.Nfr + } + return nil +} + +func (x *SensorData) GetDisr() *DISRRealTime { + if x, ok := x.GetDataBody().(*SensorData_Disr); ok { + return x.Disr + } + return nil +} + +func (x *SensorData) GetDic() *DICRealTime { + if x, ok := x.GetDataBody().(*SensorData_Dic); ok { + return x.Dic + } + return nil +} + +func (x *SensorData) GetRsg() *RSGRealTime { + if x, ok := x.GetDataBody().(*SensorData_Rsg); ok { + return x.Rsg + } + return nil +} + +func (x *SensorData) GetInc() *INCRealTime { + if x, ok := x.GetDataBody().(*SensorData_Inc); ok { + return x.Inc + } + return nil +} + +func (x *SensorData) GetStf() *STFRealTime { + if x, ok := x.GetDataBody().(*SensorData_Stf); ok { + return x.Stf + } + return nil +} + +func (x *SensorData) GetGns() *GNSRealTime { + if x, ok := x.GetDataBody().(*SensorData_Gns); ok { + return x.Gns + } + return nil +} + +func (x *SensorData) GetHpt() *HPTRealTime { + if x, ok := x.GetDataBody().(*SensorData_Hpt); ok { + return x.Hpt + } + return nil +} + +func (x *SensorData) GetSco() *SCORealTime { + if x, ok := x.GetDataBody().(*SensorData_Sco); ok { + return x.Sco + } + return nil +} + +func (x *SensorData) GetDisc() *DISCRealTime { + if x, ok := x.GetDataBody().(*SensorData_Disc); ok { + return x.Disc + } + return nil +} + +func (x *SensorData) GetCrk() *CRKRealTime { + if x, ok := x.GetDataBody().(*SensorData_Crk); ok { + return x.Crk + } + return nil +} + +func (x *SensorData) GetCor() *CORRealTime { + if x, ok := x.GetDataBody().(*SensorData_Cor); ok { + return x.Cor + } + return nil +} + +func (x *SensorData) GetStr() *STRRealTime { + if x, ok := x.GetDataBody().(*SensorData_Str); ok { + return x.Str + } + return nil +} + +func (x *SensorData) GetBtf() *BTFRealTime { + if x, ok := x.GetDataBody().(*SensorData_Btf); ok { + return x.Btf + } + return nil +} + +func (x *SensorData) GetCsp() *CSPRealTime { + if x, ok := x.GetDataBody().(*SensorData_Csp); ok { + return x.Csp + } + return nil +} + +func (x *SensorData) GetWds() *WDSRealTime { + if x, ok := x.GetDataBody().(*SensorData_Wds); ok { + return x.Wds + } + return nil +} + +func (x *SensorData) GetWdd() *WDDRealTime { + if x, ok := x.GetDataBody().(*SensorData_Wdd); ok { + return x.Wdd + } + return nil +} + +func (x *SensorData) GetPrs() *PRSRealTime { + if x, ok := x.GetDataBody().(*SensorData_Prs); ok { + return x.Prs + } + return nil +} + +func (x *SensorData) GetRad() *RADRealTime { + if x, ok := x.GetDataBody().(*SensorData_Rad); ok { + return x.Rad + } + return nil +} + +func (x *SensorData) GetIll() *ILLRealTime { + if x, ok := x.GetDataBody().(*SensorData_Ill); ok { + return x.Ill + } + return nil +} + +func (x *SensorData) GetUvt() *UVTRealTime { + if x, ok := x.GetDataBody().(*SensorData_Uvt); ok { + return x.Uvt + } + return nil +} + +type isSensorData_DataBody interface { + isSensorData_DataBody() +} + +type SensorData_Rhs struct { + // 环境温湿度 + Rhs *RHSRealTime `protobuf:"bytes,4,opt,name=rhs,proto3,oneof"` +} + +type SensorData_Pws struct { + // 雨量 + Pws *PWSRealTime `protobuf:"bytes,5,opt,name=pws,proto3,oneof"` +} + +type SensorData_Frz struct { + // 结冰 + Frz *FRZRealTime `protobuf:"bytes,6,opt,name=frz,proto3,oneof"` +} + +type SensorData_Hsd struct { + // 车辆荷载 + Hsd *HSDRealTime `protobuf:"bytes,7,opt,name=hsd,proto3,oneof"` +} + +type SensorData_Uan struct { + // 风速、风向 + Uan *UANRealTime `protobuf:"bytes,8,opt,name=uan,proto3,oneof"` +} + +type SensorData_Tmp struct { + // 结构温度 + Tmp *TMPRealTime `protobuf:"bytes,9,opt,name=tmp,proto3,oneof"` +} + +type SensorData_Lmz struct { + // 路面、桥面温度 + Lmz *LMZRealTime `protobuf:"bytes,10,opt,name=lmz,proto3,oneof"` +} + +type SensorData_Vid struct { + // 船舶撞击、地震 + Vid *VIDRealTime `protobuf:"bytes,11,opt,name=vid,proto3,oneof"` +} + +type SensorData_Vib struct { + // 振动 + Vib *VIBRealTime `protobuf:"bytes,12,opt,name=vib,proto3,oneof"` +} + +type SensorData_Nfr struct { + // 自振频率 + Nfr *NFRRealTime `protobuf:"bytes,13,opt,name=nfr,proto3,oneof"` +} + +type SensorData_Disr struct { + // 位移(结构响应) + Disr *DISRRealTime `protobuf:"bytes,14,opt,name=disr,proto3,oneof"` +} + +type SensorData_Dic struct { + // 索力 + Dic *DICRealTime `protobuf:"bytes,15,opt,name=dic,proto3,oneof"` +} + +type SensorData_Rsg struct { + // 应变 + Rsg *RSGRealTime `protobuf:"bytes,16,opt,name=rsg,proto3,oneof"` +} + +type SensorData_Inc struct { + // 转角 + Inc *INCRealTime `protobuf:"bytes,17,opt,name=inc,proto3,oneof"` +} + +type SensorData_Stf struct { + // 支座反力 + Stf *STFRealTime `protobuf:"bytes,18,opt,name=stf,proto3,oneof"` +} + +type SensorData_Gns struct { + // 结构空间变形 + Gns *GNSRealTime `protobuf:"bytes,19,opt,name=gns,proto3,oneof"` +} + +type SensorData_Hpt struct { + // 挠度(变形) + Hpt *HPTRealTime `protobuf:"bytes,20,opt,name=hpt,proto3,oneof"` +} + +type SensorData_Sco struct { + // 基础冲刷 + Sco *SCORealTime `protobuf:"bytes,21,opt,name=sco,proto3,oneof"` +} + +type SensorData_Disc struct { + // 位移(结构变化) + Disc *DISCRealTime `protobuf:"bytes,22,opt,name=disc,proto3,oneof"` +} + +type SensorData_Crk struct { + // 结构裂缝 + Crk *CRKRealTime `protobuf:"bytes,23,opt,name=crk,proto3,oneof"` +} + +type SensorData_Cor struct { + // 腐蚀 + Cor *CORRealTime `protobuf:"bytes,24,opt,name=cor,proto3,oneof"` +} + +type SensorData_Str struct { + // 体外预应力 + Str *STRRealTime `protobuf:"bytes,25,opt,name=str,proto3,oneof"` +} + +type SensorData_Btf struct { + // (螺栓状态)螺栓紧固力 + Btf *BTFRealTime `protobuf:"bytes,26,opt,name=btf,proto3,oneof"` +} + +type SensorData_Csp struct { + // 索夹滑移 + Csp *CSPRealTime `protobuf:"bytes,27,opt,name=csp,proto3,oneof"` +} + +type SensorData_Wds struct { + // 风速 + Wds *WDSRealTime `protobuf:"bytes,28,opt,name=wds,proto3,oneof"` +} + +type SensorData_Wdd struct { + // 风向 + Wdd *WDDRealTime `protobuf:"bytes,29,opt,name=wdd,proto3,oneof"` +} + +type SensorData_Prs struct { + // 气压 + Prs *PRSRealTime `protobuf:"bytes,30,opt,name=prs,proto3,oneof"` +} + +type SensorData_Rad struct { + // 总辐射 + Rad *RADRealTime `protobuf:"bytes,31,opt,name=rad,proto3,oneof"` +} + +type SensorData_Ill struct { + // 光照度 + Ill *ILLRealTime `protobuf:"bytes,32,opt,name=ill,proto3,oneof"` +} + +type SensorData_Uvt struct { + // 紫外强度 + Uvt *UVTRealTime `protobuf:"bytes,33,opt,name=uvt,proto3,oneof"` +} + +func (*SensorData_Rhs) isSensorData_DataBody() {} + +func (*SensorData_Pws) isSensorData_DataBody() {} + +func (*SensorData_Frz) isSensorData_DataBody() {} + +func (*SensorData_Hsd) isSensorData_DataBody() {} + +func (*SensorData_Uan) isSensorData_DataBody() {} + +func (*SensorData_Tmp) isSensorData_DataBody() {} + +func (*SensorData_Lmz) isSensorData_DataBody() {} + +func (*SensorData_Vid) isSensorData_DataBody() {} + +func (*SensorData_Vib) isSensorData_DataBody() {} + +func (*SensorData_Nfr) isSensorData_DataBody() {} + +func (*SensorData_Disr) isSensorData_DataBody() {} + +func (*SensorData_Dic) isSensorData_DataBody() {} + +func (*SensorData_Rsg) isSensorData_DataBody() {} + +func (*SensorData_Inc) isSensorData_DataBody() {} + +func (*SensorData_Stf) isSensorData_DataBody() {} + +func (*SensorData_Gns) isSensorData_DataBody() {} + +func (*SensorData_Hpt) isSensorData_DataBody() {} + +func (*SensorData_Sco) isSensorData_DataBody() {} + +func (*SensorData_Disc) isSensorData_DataBody() {} + +func (*SensorData_Crk) isSensorData_DataBody() {} + +func (*SensorData_Cor) isSensorData_DataBody() {} + +func (*SensorData_Str) isSensorData_DataBody() {} + +func (*SensorData_Btf) isSensorData_DataBody() {} + +func (*SensorData_Csp) isSensorData_DataBody() {} + +func (*SensorData_Wds) isSensorData_DataBody() {} + +func (*SensorData_Wdd) isSensorData_DataBody() {} + +func (*SensorData_Prs) isSensorData_DataBody() {} + +func (*SensorData_Rad) isSensorData_DataBody() {} + +func (*SensorData_Ill) isSensorData_DataBody() {} + +func (*SensorData_Uvt) isSensorData_DataBody() {} + +// 环境温湿度 +type RHSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Temperature []float32 `protobuf:"fixed32,1,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` + Humidity []float32 `protobuf:"fixed32,2,rep,packed,name=humidity,proto3" json:"humidity,omitempty"` +} + +func (x *RHSRealTime) Reset() { + *x = RHSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[2] + 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_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 RHSRealTime.ProtoReflect.Descriptor instead. +func (*RHSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{2} +} + +func (x *RHSRealTime) GetTemperature() []float32 { + if x != nil { + return x.Temperature + } + return nil +} + +func (x *RHSRealTime) GetHumidity() []float32 { + if x != nil { + return x.Humidity + } + return nil +} + +// 雨量 +type PWSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rainfall []float32 `protobuf:"fixed32,1,rep,packed,name=rainfall,proto3" json:"rainfall,omitempty"` +} + +func (x *PWSRealTime) Reset() { + *x = PWSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[3] + 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_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 PWSRealTime.ProtoReflect.Descriptor instead. +func (*PWSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{3} +} + +func (x *PWSRealTime) GetRainfall() []float32 { + if x != nil { + return x.Rainfall + } + return nil +} + +// 结冰 +type FRZRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IceThickness []float32 `protobuf:"fixed32,1,rep,packed,name=iceThickness,proto3" json:"iceThickness,omitempty"` +} + +func (x *FRZRealTime) Reset() { + *x = FRZRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[4] + 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_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 FRZRealTime.ProtoReflect.Descriptor instead. +func (*FRZRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{4} +} + +func (x *FRZRealTime) GetIceThickness() []float32 { + if x != nil { + return x.IceThickness + } + return nil +} + +// 车辆荷载 +type HSDRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 车道号 + LaneNo int32 `protobuf:"varint,1,opt,name=laneNo,proto3" json:"laneNo,omitempty"` + // 上下行 + Direction int32 `protobuf:"varint,2,opt,name=direction,proto3" json:"direction,omitempty"` + // 轴数 + AxleNumber int32 `protobuf:"varint,3,opt,name=axleNumber,proto3" json:"axleNumber,omitempty"` + // 车速 + Speed int32 `protobuf:"varint,4,opt,name=speed,proto3" json:"speed,omitempty"` + // 总重(kg) + Weight int32 `protobuf:"varint,5,opt,name=weight,proto3" json:"weight,omitempty"` + // 车长(cm) + Length int32 `protobuf:"varint,6,opt,name=length,proto3" json:"length,omitempty"` + // 车型 + CarType int32 `protobuf:"varint,7,opt,name=carType,proto3" json:"carType,omitempty"` + // 轴重(kg) + AxleWeights string `protobuf:"bytes,8,opt,name=axleWeights,proto3" json:"axleWeights,omitempty"` + // 轴距(cm) + AxleBases string `protobuf:"bytes,9,opt,name=axleBases,proto3" json:"axleBases,omitempty"` + // 车牌 + PlateNumber string `protobuf:"bytes,10,opt,name=plateNumber,proto3" json:"plateNumber,omitempty"` +} + +func (x *HSDRealTime) Reset() { + *x = HSDRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[5] + 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_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 HSDRealTime.ProtoReflect.Descriptor instead. +func (*HSDRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{5} +} + +func (x *HSDRealTime) GetLaneNo() int32 { + if x != nil { + return x.LaneNo + } + return 0 +} + +func (x *HSDRealTime) GetDirection() int32 { + if x != nil { + return x.Direction + } + return 0 +} + +func (x *HSDRealTime) GetAxleNumber() int32 { + if x != nil { + return x.AxleNumber + } + return 0 +} + +func (x *HSDRealTime) GetSpeed() int32 { + if x != nil { + return x.Speed + } + return 0 +} + +func (x *HSDRealTime) GetWeight() int32 { + if x != nil { + return x.Weight + } + return 0 +} + +func (x *HSDRealTime) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *HSDRealTime) GetCarType() int32 { + if x != nil { + return x.CarType + } + return 0 +} + +func (x *HSDRealTime) GetAxleWeights() string { + if x != nil { + return x.AxleWeights + } + return "" +} + +func (x *HSDRealTime) GetAxleBases() string { + if x != nil { + return x.AxleBases + } + return "" +} + +func (x *HSDRealTime) GetPlateNumber() string { + if x != nil { + return x.PlateNumber + } + return "" +} + +// 风速、风向 +type UANRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WindSpeed []float32 `protobuf:"fixed32,1,rep,packed,name=windSpeed,proto3" json:"windSpeed,omitempty"` + WindDirection []float32 `protobuf:"fixed32,2,rep,packed,name=windDirection,proto3" json:"windDirection,omitempty"` + HorizontalWindSpeed []float32 `protobuf:"fixed32,3,rep,packed,name=horizontalWindSpeed,proto3" json:"horizontalWindSpeed,omitempty"` + WindAttackAngle []float32 `protobuf:"fixed32,4,rep,packed,name=windAttackAngle,proto3" json:"windAttackAngle,omitempty"` +} + +func (x *UANRealTime) Reset() { + *x = UANRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[6] + 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_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 UANRealTime.ProtoReflect.Descriptor instead. +func (*UANRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{6} +} + +func (x *UANRealTime) GetWindSpeed() []float32 { + if x != nil { + return x.WindSpeed + } + return nil +} + +func (x *UANRealTime) GetWindDirection() []float32 { + if x != nil { + return x.WindDirection + } + return nil +} + +func (x *UANRealTime) GetHorizontalWindSpeed() []float32 { + if x != nil { + return x.HorizontalWindSpeed + } + return nil +} + +func (x *UANRealTime) GetWindAttackAngle() []float32 { + if x != nil { + return x.WindAttackAngle + } + return nil +} + +// 结构温度 +type TMPRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Temperature []float32 `protobuf:"fixed32,1,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *TMPRealTime) Reset() { + *x = TMPRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[7] + 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_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 TMPRealTime.ProtoReflect.Descriptor instead. +func (*TMPRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{7} +} + +func (x *TMPRealTime) GetTemperature() []float32 { + if x != nil { + return x.Temperature + } + return nil +} + +// 路面、桥面温度 +type LMZRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Temperature []float32 `protobuf:"fixed32,1,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` +} + +func (x *LMZRealTime) Reset() { + *x = LMZRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[8] + 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_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 LMZRealTime.ProtoReflect.Descriptor instead. +func (*LMZRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{8} +} + +func (x *LMZRealTime) GetTemperature() []float32 { + if x != nil { + return x.Temperature + } + return nil +} + +// 船舶撞击、地震 +type VIDRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Acceleration []float32 `protobuf:"fixed32,1,rep,packed,name=acceleration,proto3" json:"acceleration,omitempty"` +} + +func (x *VIDRealTime) Reset() { + *x = VIDRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VIDRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VIDRealTime) ProtoMessage() {} + +func (x *VIDRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 VIDRealTime.ProtoReflect.Descriptor instead. +func (*VIDRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{9} +} + +func (x *VIDRealTime) GetAcceleration() []float32 { + if x != nil { + return x.Acceleration + } + return nil +} + +// 振动 +type VIBRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Acceleration []float32 `protobuf:"fixed32,1,rep,packed,name=acceleration,proto3" json:"acceleration,omitempty"` +} + +func (x *VIBRealTime) Reset() { + *x = VIBRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[10] + 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_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 VIBRealTime.ProtoReflect.Descriptor instead. +func (*VIBRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{10} +} + +func (x *VIBRealTime) GetAcceleration() []float32 { + if x != nil { + return x.Acceleration + } + return nil +} + +// 自振频率 +type NFRRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Frequency []float32 `protobuf:"fixed32,1,rep,packed,name=frequency,proto3" json:"frequency,omitempty"` + DampingRatio []float32 `protobuf:"fixed32,2,rep,packed,name=dampingRatio,proto3" json:"dampingRatio,omitempty"` +} + +func (x *NFRRealTime) Reset() { + *x = NFRRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NFRRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NFRRealTime) ProtoMessage() {} + +func (x *NFRRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 NFRRealTime.ProtoReflect.Descriptor instead. +func (*NFRRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{11} +} + +func (x *NFRRealTime) GetFrequency() []float32 { + if x != nil { + return x.Frequency + } + return nil +} + +func (x *NFRRealTime) GetDampingRatio() []float32 { + if x != nil { + return x.DampingRatio + } + return nil +} + +// 位移(结构响应) +type DISRRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Displacement []float32 `protobuf:"fixed32,1,rep,packed,name=displacement,proto3" json:"displacement,omitempty"` +} + +func (x *DISRRealTime) Reset() { + *x = DISRRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DISRRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DISRRealTime) ProtoMessage() {} + +func (x *DISRRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 DISRRealTime.ProtoReflect.Descriptor instead. +func (*DISRRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{12} +} + +func (x *DISRRealTime) GetDisplacement() []float32 { + if x != nil { + return x.Displacement + } + return nil +} + +// 索力 +type DICRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CableForce []float32 `protobuf:"fixed32,1,rep,packed,name=cableForce,proto3" json:"cableForce,omitempty"` +} + +func (x *DICRealTime) Reset() { + *x = DICRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[13] + 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_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 DICRealTime.ProtoReflect.Descriptor instead. +func (*DICRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{13} +} + +func (x *DICRealTime) GetCableForce() []float32 { + if x != nil { + return x.CableForce + } + return nil +} + +// 应变 +type RSGRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Strain []float32 `protobuf:"fixed32,1,rep,packed,name=strain,proto3" json:"strain,omitempty"` +} + +func (x *RSGRealTime) Reset() { + *x = RSGRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[14] + 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_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 RSGRealTime.ProtoReflect.Descriptor instead. +func (*RSGRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{14} +} + +func (x *RSGRealTime) GetStrain() []float32 { + if x != nil { + return x.Strain + } + return nil +} + +// 转角 +type INCRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X []float32 `protobuf:"fixed32,1,rep,packed,name=x,proto3" json:"x,omitempty"` + Y []float32 `protobuf:"fixed32,2,rep,packed,name=y,proto3" json:"y,omitempty"` +} + +func (x *INCRealTime) Reset() { + *x = INCRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[15] + 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_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 INCRealTime.ProtoReflect.Descriptor instead. +func (*INCRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{15} +} + +func (x *INCRealTime) GetX() []float32 { + if x != nil { + return x.X + } + return nil +} + +func (x *INCRealTime) GetY() []float32 { + if x != nil { + return x.Y + } + return nil +} + +// 支座反力 +type STFRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SupportAction []float32 `protobuf:"fixed32,1,rep,packed,name=supportAction,proto3" json:"supportAction,omitempty"` +} + +func (x *STFRealTime) Reset() { + *x = STFRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[16] + 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_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 STFRealTime.ProtoReflect.Descriptor instead. +func (*STFRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{16} +} + +func (x *STFRealTime) GetSupportAction() []float32 { + if x != nil { + return x.SupportAction + } + return nil +} + +// 结构空间变形 +type GNSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X []float32 `protobuf:"fixed32,1,rep,packed,name=x,proto3" json:"x,omitempty"` + Y []float32 `protobuf:"fixed32,2,rep,packed,name=y,proto3" json:"y,omitempty"` + Z []float32 `protobuf:"fixed32,3,rep,packed,name=z,proto3" json:"z,omitempty"` +} + +func (x *GNSRealTime) Reset() { + *x = GNSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GNSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GNSRealTime) ProtoMessage() {} + +func (x *GNSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 GNSRealTime.ProtoReflect.Descriptor instead. +func (*GNSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{17} +} + +func (x *GNSRealTime) GetX() []float32 { + if x != nil { + return x.X + } + return nil +} + +func (x *GNSRealTime) GetY() []float32 { + if x != nil { + return x.Y + } + return nil +} + +func (x *GNSRealTime) GetZ() []float32 { + if x != nil { + return x.Z + } + return nil +} + +// 挠度(变形) +type HPTRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Deflection []float32 `protobuf:"fixed32,1,rep,packed,name=deflection,proto3" json:"deflection,omitempty"` +} + +func (x *HPTRealTime) Reset() { + *x = HPTRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[18] + 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_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 HPTRealTime.ProtoReflect.Descriptor instead. +func (*HPTRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{18} +} + +func (x *HPTRealTime) GetDeflection() []float32 { + if x != nil { + return x.Deflection + } + return nil +} + +// 基础冲刷 +type SCORealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Depth []float32 `protobuf:"fixed32,1,rep,packed,name=depth,proto3" json:"depth,omitempty"` +} + +func (x *SCORealTime) Reset() { + *x = SCORealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[19] + 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_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 SCORealTime.ProtoReflect.Descriptor instead. +func (*SCORealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{19} +} + +func (x *SCORealTime) GetDepth() []float32 { + if x != nil { + return x.Depth + } + return nil +} + +// 位移(结构变化) +type DISCRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X []float32 `protobuf:"fixed32,1,rep,packed,name=x,proto3" json:"x,omitempty"` + Y []float32 `protobuf:"fixed32,2,rep,packed,name=y,proto3" json:"y,omitempty"` + Z []float32 `protobuf:"fixed32,3,rep,packed,name=z,proto3" json:"z,omitempty"` +} + +func (x *DISCRealTime) Reset() { + *x = DISCRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DISCRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DISCRealTime) ProtoMessage() {} + +func (x *DISCRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 DISCRealTime.ProtoReflect.Descriptor instead. +func (*DISCRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{20} +} + +func (x *DISCRealTime) GetX() []float32 { + if x != nil { + return x.X + } + return nil +} + +func (x *DISCRealTime) GetY() []float32 { + if x != nil { + return x.Y + } + return nil +} + +func (x *DISCRealTime) GetZ() []float32 { + if x != nil { + return x.Z + } + return nil +} + +// 结构裂缝 +type CRKRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CrackWidth []float32 `protobuf:"fixed32,1,rep,packed,name=crackWidth,proto3" json:"crackWidth,omitempty"` +} + +func (x *CRKRealTime) Reset() { + *x = CRKRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[21] + 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_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 CRKRealTime.ProtoReflect.Descriptor instead. +func (*CRKRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{21} +} + +func (x *CRKRealTime) GetCrackWidth() []float32 { + if x != nil { + return x.CrackWidth + } + return nil +} + +// 腐蚀 +type CORRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChlorideConcentration []float32 `protobuf:"fixed32,1,rep,packed,name=chlorideConcentration,proto3" json:"chlorideConcentration,omitempty"` + CorrosionDepth []float32 `protobuf:"fixed32,2,rep,packed,name=corrosionDepth,proto3" json:"corrosionDepth,omitempty"` +} + +func (x *CORRealTime) Reset() { + *x = CORRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[22] + 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_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 CORRealTime.ProtoReflect.Descriptor instead. +func (*CORRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{22} +} + +func (x *CORRealTime) GetChlorideConcentration() []float32 { + if x != nil { + return x.ChlorideConcentration + } + return nil +} + +func (x *CORRealTime) GetCorrosionDepth() []float32 { + if x != nil { + return x.CorrosionDepth + } + return nil +} + +// 体外预应力 +type STRRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stress []float32 `protobuf:"fixed32,1,rep,packed,name=stress,proto3" json:"stress,omitempty"` +} + +func (x *STRRealTime) Reset() { + *x = STRRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[23] + 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_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 STRRealTime.ProtoReflect.Descriptor instead. +func (*STRRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{23} +} + +func (x *STRRealTime) GetStress() []float32 { + if x != nil { + return x.Stress + } + return nil +} + +// (螺栓状态)螺栓紧固力 +type BTFRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BoltTightForce []float32 `protobuf:"fixed32,1,rep,packed,name=boltTightForce,proto3" json:"boltTightForce,omitempty"` +} + +func (x *BTFRealTime) Reset() { + *x = BTFRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[24] + 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_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 BTFRealTime.ProtoReflect.Descriptor instead. +func (*BTFRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{24} +} + +func (x *BTFRealTime) GetBoltTightForce() []float32 { + if x != nil { + return x.BoltTightForce + } + return nil +} + +// 索夹滑移 +type CSPRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Displacement []float32 `protobuf:"fixed32,1,rep,packed,name=displacement,proto3" json:"displacement,omitempty"` +} + +func (x *CSPRealTime) Reset() { + *x = CSPRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[25] + 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_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 CSPRealTime.ProtoReflect.Descriptor instead. +func (*CSPRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{25} +} + +func (x *CSPRealTime) GetDisplacement() []float32 { + if x != nil { + return x.Displacement + } + return nil +} + +// 风速 +type WDSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WindSpeed []float32 `protobuf:"fixed32,1,rep,packed,name=windSpeed,proto3" json:"windSpeed,omitempty"` +} + +func (x *WDSRealTime) Reset() { + *x = WDSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WDSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WDSRealTime) ProtoMessage() {} + +func (x *WDSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 WDSRealTime.ProtoReflect.Descriptor instead. +func (*WDSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{26} +} + +func (x *WDSRealTime) GetWindSpeed() []float32 { + if x != nil { + return x.WindSpeed + } + return nil +} + +// 风向 +type WDDRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WindDirection []float32 `protobuf:"fixed32,1,rep,packed,name=windDirection,proto3" json:"windDirection,omitempty"` +} + +func (x *WDDRealTime) Reset() { + *x = WDDRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WDDRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WDDRealTime) ProtoMessage() {} + +func (x *WDDRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 WDDRealTime.ProtoReflect.Descriptor instead. +func (*WDDRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{27} +} + +func (x *WDDRealTime) GetWindDirection() []float32 { + if x != nil { + return x.WindDirection + } + return nil +} + +// 气压 +type PRSRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pressure []float32 `protobuf:"fixed32,1,rep,packed,name=pressure,proto3" json:"pressure,omitempty"` +} + +func (x *PRSRealTime) Reset() { + *x = PRSRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PRSRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRSRealTime) ProtoMessage() {} + +func (x *PRSRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 PRSRealTime.ProtoReflect.Descriptor instead. +func (*PRSRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{28} +} + +func (x *PRSRealTime) GetPressure() []float32 { + if x != nil { + return x.Pressure + } + return nil +} + +// 总辐射 +type RADRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Radiation []float32 `protobuf:"fixed32,1,rep,packed,name=radiation,proto3" json:"radiation,omitempty"` +} + +func (x *RADRealTime) Reset() { + *x = RADRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RADRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RADRealTime) ProtoMessage() {} + +func (x *RADRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 RADRealTime.ProtoReflect.Descriptor instead. +func (*RADRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{29} +} + +func (x *RADRealTime) GetRadiation() []float32 { + if x != nil { + return x.Radiation + } + return nil +} + +// 光照度 +type ILLRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Illumination []float32 `protobuf:"fixed32,1,rep,packed,name=illumination,proto3" json:"illumination,omitempty"` +} + +func (x *ILLRealTime) Reset() { + *x = ILLRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ILLRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ILLRealTime) ProtoMessage() {} + +func (x *ILLRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 ILLRealTime.ProtoReflect.Descriptor instead. +func (*ILLRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{30} +} + +func (x *ILLRealTime) GetIllumination() []float32 { + if x != nil { + return x.Illumination + } + return nil +} + +// 紫外强度 +type UVTRealTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ultraviolet []float32 `protobuf:"fixed32,1,rep,packed,name=ultraviolet,proto3" json:"ultraviolet,omitempty"` +} + +func (x *UVTRealTime) Reset() { + *x = UVTRealTime{} + if protoimpl.UnsafeEnabled { + mi := &file_MonitorDataProtocol_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UVTRealTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UVTRealTime) ProtoMessage() {} + +func (x *UVTRealTime) ProtoReflect() protoreflect.Message { + mi := &file_MonitorDataProtocol_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 UVTRealTime.ProtoReflect.Descriptor instead. +func (*UVTRealTime) Descriptor() ([]byte, []int) { + return file_MonitorDataProtocol_proto_rawDescGZIP(), []int{31} +} + +func (x *UVTRealTime) GetUltraviolet() []float32 { + if x != nil { + return x.Ultraviolet + } + return nil +} + +var File_MonitorDataProtocol_proto protoreflect.FileDescriptor + +var file_MonitorDataProtocol_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd4, + 0x0b, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, + 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 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, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, + 0x03, 0x72, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x70, 0x77, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, + 0x03, 0x66, 0x72, 0x7a, 0x12, 0x2b, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x48, + 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x73, + 0x64, 0x12, 0x2b, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x41, 0x4e, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x2b, + 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x03, 0x6c, + 0x6d, 0x7a, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6d, 0x7a, 0x12, 0x2b, 0x0a, 0x03, 0x76, 0x69, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, + 0x52, 0x03, 0x76, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x56, 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, + 0x69, 0x62, 0x12, 0x2b, 0x0a, 0x03, 0x6e, 0x66, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x4e, 0x46, 0x52, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x66, 0x72, 0x12, + 0x2e, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x49, 0x53, 0x52, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x69, 0x73, 0x72, 0x12, + 0x2b, 0x0a, 0x03, 0x64, 0x69, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x03, + 0x72, 0x73, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x03, 0x69, 0x6e, 0x63, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, + 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x2b, 0x0a, 0x03, 0x73, 0x74, 0x66, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x2e, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, + 0x73, 0x74, 0x66, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x47, 0x4e, + 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x67, 0x6e, 0x73, + 0x12, 0x2b, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x48, 0x50, 0x54, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x2b, 0x0a, + 0x03, 0x73, 0x63, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x69, + 0x73, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x49, 0x53, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x69, 0x73, 0x63, 0x12, 0x2b, 0x0a, 0x03, 0x63, 0x72, + 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x2b, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, + 0x03, 0x63, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, + 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, + 0x72, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x42, 0x54, 0x46, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x2b, + 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x03, 0x77, + 0x64, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x57, 0x44, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x77, 0x64, 0x64, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x57, 0x44, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, + 0x52, 0x03, 0x77, 0x64, 0x64, 0x12, 0x2b, 0x0a, 0x03, 0x70, 0x72, 0x73, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x50, 0x52, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x70, + 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x72, 0x61, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x41, 0x44, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x64, 0x12, + 0x2b, 0x0a, 0x03, 0x69, 0x6c, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x49, 0x4c, 0x4c, 0x52, 0x65, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6c, 0x6c, 0x12, 0x2b, 0x0a, 0x03, + 0x75, 0x76, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x56, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x75, 0x76, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x53, 0x0a, 0x0b, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x68, 0x75, + 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, + 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x2d, 0x0a, 0x0b, 0x50, 0x57, + 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x61, 0x69, + 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x22, 0x35, 0x0a, 0x0b, 0x46, 0x52, 0x5a, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x63, 0x65, 0x54, + 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, + 0x10, 0x01, 0x52, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, + 0x22, 0xa5, 0x02, 0x0a, 0x0b, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x78, 0x6c, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, + 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x78, 0x6c, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x78, 0x6c, + 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x78, 0x6c, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x78, 0x6c, + 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xbd, 0x01, 0x0a, 0x0b, 0x55, 0x41, 0x4e, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x77, 0x69, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x69, + 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x13, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x57, 0x69, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x13, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x57, 0x69, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x77, 0x69, + 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x33, 0x0a, 0x0b, 0x54, 0x4d, 0x50, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, + 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x33, 0x0a, + 0x0b, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x35, 0x0a, 0x0b, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x61, 0x63, 0x63, + 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x0b, 0x56, 0x49, 0x42, + 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, + 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, + 0x10, 0x01, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x57, 0x0a, 0x0b, 0x4e, 0x46, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x69, + 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x64, 0x61, 0x6d, + 0x70, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x36, 0x0a, 0x0c, 0x44, 0x49, 0x53, + 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, + 0x02, 0x10, 0x01, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x31, 0x0a, 0x0b, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x22, + 0x31, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x78, + 0x12, 0x10, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x01, 0x79, 0x22, 0x37, 0x0a, 0x0b, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0b, 0x47, + 0x4e, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x01, 0x78, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x78, 0x12, 0x10, 0x0a, 0x01, + 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x79, 0x12, 0x10, + 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x7a, + 0x22, 0x31, 0x0a, 0x0b, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, 0x0b, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x44, 0x0a, 0x0c, + 0x44, 0x49, 0x53, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x01, + 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x78, 0x12, 0x10, + 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x01, 0x79, + 0x12, 0x10, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, + 0x01, 0x7a, 0x22, 0x31, 0x0a, 0x0b, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x73, 0x0a, 0x0b, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 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, + 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x15, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, + 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, + 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x72, + 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x22, 0x29, 0x0a, 0x0b, 0x53, 0x54, + 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x74, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, + 0x74, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x0b, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, + 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, + 0x52, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x22, 0x35, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x2f, 0x0a, 0x0b, 0x57, 0x44, 0x53, 0x52, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x77, + 0x69, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x37, 0x0a, 0x0b, 0x57, 0x44, 0x44, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, + 0x10, 0x01, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x2d, 0x0a, 0x0b, 0x50, 0x52, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, + 0x22, 0x2f, 0x0a, 0x0b, 0x52, 0x41, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x72, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x72, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x35, 0x0a, 0x0b, 0x49, 0x4c, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x69, 0x6c, 0x6c, 0x75, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0b, 0x55, 0x56, 0x54, 0x52, + 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x75, 0x6c, 0x74, 0x72, 0x61, + 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, + 0x52, 0x0b, 0x75, 0x6c, 0x74, 0x72, 0x61, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x74, 0x2a, 0x9e, 0x02, + 0x0a, 0x0c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, + 0x0a, 0x03, 0x52, 0x48, 0x53, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x57, 0x53, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x46, 0x52, 0x5a, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x53, 0x44, + 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x54, + 0x4d, 0x50, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4d, 0x5a, 0x10, 0x06, 0x12, 0x07, 0x0a, + 0x03, 0x56, 0x49, 0x44, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x42, 0x10, 0x08, 0x12, + 0x07, 0x0a, 0x03, 0x4e, 0x46, 0x52, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x49, 0x53, 0x52, + 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x43, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x52, + 0x53, 0x47, 0x10, 0x0c, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x43, 0x10, 0x0d, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x54, 0x46, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x4e, 0x53, 0x10, 0x0f, 0x12, + 0x07, 0x0a, 0x03, 0x48, 0x50, 0x54, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x4f, 0x10, + 0x11, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x49, 0x53, 0x43, 0x10, 0x12, 0x12, 0x07, 0x0a, 0x03, 0x43, + 0x52, 0x4b, 0x10, 0x13, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x54, 0x52, 0x10, 0x15, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x46, 0x10, 0x16, 0x12, + 0x07, 0x0a, 0x03, 0x43, 0x53, 0x50, 0x10, 0x17, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x44, 0x53, 0x10, + 0x18, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x44, 0x44, 0x10, 0x19, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x52, + 0x53, 0x10, 0x1a, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x41, 0x44, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, + 0x49, 0x4c, 0x4c, 0x10, 0x1c, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x56, 0x54, 0x10, 0x1d, 0x42, 0x0e, + 0x5a, 0x0c, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_MonitorDataProtocol_proto_rawDescOnce sync.Once + file_MonitorDataProtocol_proto_rawDescData = file_MonitorDataProtocol_proto_rawDesc +) + +func file_MonitorDataProtocol_proto_rawDescGZIP() []byte { + file_MonitorDataProtocol_proto_rawDescOnce.Do(func() { + file_MonitorDataProtocol_proto_rawDescData = protoimpl.X.CompressGZIP(file_MonitorDataProtocol_proto_rawDescData) + }) + return file_MonitorDataProtocol_proto_rawDescData +} + +var file_MonitorDataProtocol_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_MonitorDataProtocol_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_MonitorDataProtocol_proto_goTypes = []interface{}{ + (MonitoryType)(0), // 0: protoDataFiles.MonitoryType + (*ComplexData)(nil), // 1: protoDataFiles.ComplexData + (*SensorData)(nil), // 2: protoDataFiles.SensorData + (*RHSRealTime)(nil), // 3: protoDataFiles.RHSRealTime + (*PWSRealTime)(nil), // 4: protoDataFiles.PWSRealTime + (*FRZRealTime)(nil), // 5: protoDataFiles.FRZRealTime + (*HSDRealTime)(nil), // 6: protoDataFiles.HSDRealTime + (*UANRealTime)(nil), // 7: protoDataFiles.UANRealTime + (*TMPRealTime)(nil), // 8: protoDataFiles.TMPRealTime + (*LMZRealTime)(nil), // 9: protoDataFiles.LMZRealTime + (*VIDRealTime)(nil), // 10: protoDataFiles.VIDRealTime + (*VIBRealTime)(nil), // 11: protoDataFiles.VIBRealTime + (*NFRRealTime)(nil), // 12: protoDataFiles.NFRRealTime + (*DISRRealTime)(nil), // 13: protoDataFiles.DISRRealTime + (*DICRealTime)(nil), // 14: protoDataFiles.DICRealTime + (*RSGRealTime)(nil), // 15: protoDataFiles.RSGRealTime + (*INCRealTime)(nil), // 16: protoDataFiles.INCRealTime + (*STFRealTime)(nil), // 17: protoDataFiles.STFRealTime + (*GNSRealTime)(nil), // 18: protoDataFiles.GNSRealTime + (*HPTRealTime)(nil), // 19: protoDataFiles.HPTRealTime + (*SCORealTime)(nil), // 20: protoDataFiles.SCORealTime + (*DISCRealTime)(nil), // 21: protoDataFiles.DISCRealTime + (*CRKRealTime)(nil), // 22: protoDataFiles.CRKRealTime + (*CORRealTime)(nil), // 23: protoDataFiles.CORRealTime + (*STRRealTime)(nil), // 24: protoDataFiles.STRRealTime + (*BTFRealTime)(nil), // 25: protoDataFiles.BTFRealTime + (*CSPRealTime)(nil), // 26: protoDataFiles.CSPRealTime + (*WDSRealTime)(nil), // 27: protoDataFiles.WDSRealTime + (*WDDRealTime)(nil), // 28: protoDataFiles.WDDRealTime + (*PRSRealTime)(nil), // 29: protoDataFiles.PRSRealTime + (*RADRealTime)(nil), // 30: protoDataFiles.RADRealTime + (*ILLRealTime)(nil), // 31: protoDataFiles.ILLRealTime + (*UVTRealTime)(nil), // 32: protoDataFiles.UVTRealTime +} +var file_MonitorDataProtocol_proto_depIdxs = []int32{ + 2, // 0: protoDataFiles.ComplexData.sensorData:type_name -> protoDataFiles.SensorData + 0, // 1: protoDataFiles.SensorData.monitorType:type_name -> protoDataFiles.MonitoryType + 3, // 2: protoDataFiles.SensorData.rhs:type_name -> protoDataFiles.RHSRealTime + 4, // 3: protoDataFiles.SensorData.pws:type_name -> protoDataFiles.PWSRealTime + 5, // 4: protoDataFiles.SensorData.frz:type_name -> protoDataFiles.FRZRealTime + 6, // 5: protoDataFiles.SensorData.hsd:type_name -> protoDataFiles.HSDRealTime + 7, // 6: protoDataFiles.SensorData.uan:type_name -> protoDataFiles.UANRealTime + 8, // 7: protoDataFiles.SensorData.tmp:type_name -> protoDataFiles.TMPRealTime + 9, // 8: protoDataFiles.SensorData.lmz:type_name -> protoDataFiles.LMZRealTime + 10, // 9: protoDataFiles.SensorData.vid:type_name -> protoDataFiles.VIDRealTime + 11, // 10: protoDataFiles.SensorData.vib:type_name -> protoDataFiles.VIBRealTime + 12, // 11: protoDataFiles.SensorData.nfr:type_name -> protoDataFiles.NFRRealTime + 13, // 12: protoDataFiles.SensorData.disr:type_name -> protoDataFiles.DISRRealTime + 14, // 13: protoDataFiles.SensorData.dic:type_name -> protoDataFiles.DICRealTime + 15, // 14: protoDataFiles.SensorData.rsg:type_name -> protoDataFiles.RSGRealTime + 16, // 15: protoDataFiles.SensorData.inc:type_name -> protoDataFiles.INCRealTime + 17, // 16: protoDataFiles.SensorData.stf:type_name -> protoDataFiles.STFRealTime + 18, // 17: protoDataFiles.SensorData.gns:type_name -> protoDataFiles.GNSRealTime + 19, // 18: protoDataFiles.SensorData.hpt:type_name -> protoDataFiles.HPTRealTime + 20, // 19: protoDataFiles.SensorData.sco:type_name -> protoDataFiles.SCORealTime + 21, // 20: protoDataFiles.SensorData.disc:type_name -> protoDataFiles.DISCRealTime + 22, // 21: protoDataFiles.SensorData.crk:type_name -> protoDataFiles.CRKRealTime + 23, // 22: protoDataFiles.SensorData.cor:type_name -> protoDataFiles.CORRealTime + 24, // 23: protoDataFiles.SensorData.str:type_name -> protoDataFiles.STRRealTime + 25, // 24: protoDataFiles.SensorData.btf:type_name -> protoDataFiles.BTFRealTime + 26, // 25: protoDataFiles.SensorData.csp:type_name -> protoDataFiles.CSPRealTime + 27, // 26: protoDataFiles.SensorData.wds:type_name -> protoDataFiles.WDSRealTime + 28, // 27: protoDataFiles.SensorData.wdd:type_name -> protoDataFiles.WDDRealTime + 29, // 28: protoDataFiles.SensorData.prs:type_name -> protoDataFiles.PRSRealTime + 30, // 29: protoDataFiles.SensorData.rad:type_name -> protoDataFiles.RADRealTime + 31, // 30: protoDataFiles.SensorData.ill:type_name -> protoDataFiles.ILLRealTime + 32, // 31: protoDataFiles.SensorData.uvt:type_name -> protoDataFiles.UVTRealTime + 32, // [32:32] is the sub-list for method output_type + 32, // [32:32] is the sub-list for method input_type + 32, // [32:32] is the sub-list for extension type_name + 32, // [32:32] is the sub-list for extension extendee + 0, // [0:32] is the sub-list for field type_name +} + +func init() { file_MonitorDataProtocol_proto_init() } +func file_MonitorDataProtocol_proto_init() { + if File_MonitorDataProtocol_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_MonitorDataProtocol_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_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SensorData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[2].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_proto_msgTypes[3].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_proto_msgTypes[4].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_proto_msgTypes[5].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_proto_msgTypes[6].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_proto_msgTypes[7].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_proto_msgTypes[8].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_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VIDRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[10].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_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NFRRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DISRRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[13].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_proto_msgTypes[14].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_proto_msgTypes[15].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_proto_msgTypes[16].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_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GNSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[18].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_proto_msgTypes[19].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_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DISCRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[21].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_proto_msgTypes[22].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_proto_msgTypes[23].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_proto_msgTypes[24].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_proto_msgTypes[25].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_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WDSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WDDRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PRSRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RADRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ILLRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_MonitorDataProtocol_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UVTRealTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_MonitorDataProtocol_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*SensorData_Rhs)(nil), + (*SensorData_Pws)(nil), + (*SensorData_Frz)(nil), + (*SensorData_Hsd)(nil), + (*SensorData_Uan)(nil), + (*SensorData_Tmp)(nil), + (*SensorData_Lmz)(nil), + (*SensorData_Vid)(nil), + (*SensorData_Vib)(nil), + (*SensorData_Nfr)(nil), + (*SensorData_Disr)(nil), + (*SensorData_Dic)(nil), + (*SensorData_Rsg)(nil), + (*SensorData_Inc)(nil), + (*SensorData_Stf)(nil), + (*SensorData_Gns)(nil), + (*SensorData_Hpt)(nil), + (*SensorData_Sco)(nil), + (*SensorData_Disc)(nil), + (*SensorData_Crk)(nil), + (*SensorData_Cor)(nil), + (*SensorData_Str)(nil), + (*SensorData_Btf)(nil), + (*SensorData_Csp)(nil), + (*SensorData_Wds)(nil), + (*SensorData_Wdd)(nil), + (*SensorData_Prs)(nil), + (*SensorData_Rad)(nil), + (*SensorData_Ill)(nil), + (*SensorData_Uvt)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_MonitorDataProtocol_proto_rawDesc, + NumEnums: 1, + NumMessages: 32, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_MonitorDataProtocol_proto_goTypes, + DependencyIndexes: file_MonitorDataProtocol_proto_depIdxs, + EnumInfos: file_MonitorDataProtocol_proto_enumTypes, + MessageInfos: file_MonitorDataProtocol_proto_msgTypes, + }.Build() + File_MonitorDataProtocol_proto = out.File + file_MonitorDataProtocol_proto_rawDesc = nil + file_MonitorDataProtocol_proto_goTypes = nil + file_MonitorDataProtocol_proto_depIdxs = nil +} diff --git a/consumers/consumerGZG2ZJHL.go b/consumers/consumerGZG2ZJHL.go index 62888f9..b00bc85 100644 --- a/consumers/consumerGZG2ZJHL.go +++ b/consumers/consumerGZG2ZJHL.go @@ -128,6 +128,7 @@ func (the *consumerGZG2ZJHL) getStructIds() []int64 { } return structIds } + func (the *consumerGZG2ZJHL) getEs1HourAggData() { start, end := utils.GetTimeRangeByHour(-1) log.Printf("查询数据时间范围 %s - %s", start, end) @@ -187,7 +188,6 @@ func (the *consumerGZG2ZJHL) getEs10minAggData() { } } } - } func (the *consumerGZG2ZJHL) crc16rc4(transBytes []byte) []byte { diff --git a/consumers/consumerHBJCAS.go b/consumers/consumerHBJCAS.go index de30dc8..f400144 100644 --- a/consumers/consumerHBJCAS.go +++ b/consumers/consumerHBJCAS.go @@ -201,6 +201,7 @@ func (the *consumerHBJCAS) crc16rc4(transBytes []byte) []byte { cipher1.XORKeyStream(dest1, needRC4) return dest1 } + func (the *consumerHBJCAS) getESQueryStrByHour(structureId int64, factorId int, start, end string) string { aggSubSql := getEsAggSubSqlByAxyFactorId(factorId) esQuery := fmt.Sprintf(` diff --git a/consumers/consumerJYESNJZX.go b/consumers/consumerJYESNJZX.go new file mode 100644 index 0000000..eabb436 --- /dev/null +++ b/consumers/consumerJYESNJZX.go @@ -0,0 +1,205 @@ +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 consumerJYESNJZX struct { + //数据缓存管道 + ch chan []adaptors.NeedPush + //具体配置 + Info HBJCAS.ConfigFile + InHttp *dbOperate.HttpHelper + outMqtt *dbOperate.MqttHelper + monitor *monitors.CommonMonitor + infoRedis *dbOperate.RedisHelper +} + +func (the *consumerJYESNJZX) LoadConfig(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 *consumerJYESNJZX) Initial(cfg string) error { + the.LoadConfig(cfg) + err := the.InputInitial() + if err != nil { + return err + } + err = the.OutputInitial() + if err != nil { + return err + } + err = the.infoComponentInitial() + return err +} + +func (the *consumerJYESNJZX) 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 _, cron := range the.Info.Monitor { + the.monitor.RegisterTask(cron, the.getEsAggData) + } + return nil +} + +func (the *consumerJYESNJZX) 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, + false, //按照具体项目来 + "") + return nil +} + +func (the *consumerJYESNJZX) infoComponentInitial() error { + //数据出口 + addr := the.Info.QueryComponent.Redis.Address + the.infoRedis = dbOperate.NewRedisHelper("", addr) + return nil +} + +func (the *consumerJYESNJZX) getEsAggData() { + start, end := utils.GetTimeRangeBy1minByOffset(-5) + //取向前偏移5分钟的一分钟的数据 + log.Printf("查询数据时间范围 %s - %s", start, end) + factorIds := []int{2, 4, 18, 103, 102, 96, 107, 156, 578} + //监测因素 2温湿度 4温度 18裂缝检测 103净空收敛 102拱顶沉降 96二次衬彻应变 107道床及拱腰结构沉降 156风速 578风向 + + //架伊尔大桥的结构物id + var structId int64 + for strutId, _ := range the.Info.StructInfo { + structId = strutId + } + + adaptor := the.getAdaptor() + adaptor.PointInfo = the.Info.PointInfo + adaptor.StructInfo = the.Info.StructInfo + for _, factorId := range factorIds { + esQuery := the.getESQueryStr(structId, factorId, start, end) + auth := map[string]string{"Authorization": "Bear 85a441d4-022b-4613-abba-aaa8e2693bf7"} + esAggResultStr := the.InHttp.HttpGetWithHeader(esQuery, auth) + log.Printf("esAggResultStr[%s]", esAggResultStr) + + 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 *consumerJYESNJZX) getAdaptor() (adaptor adaptors.Adaptor_AXYES_NJZX) { + + return adaptors.Adaptor_AXYES_NJZX{ + Redis: the.infoRedis, + } +} + +func (the *consumerJYESNJZX) 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 *consumerJYESNJZX) getESQueryStr(structureId int64, factorId int, start, end string) string { + esQuery := fmt.Sprintf(` +{ + "size": 20, + "query": { + "bool": { + "must": [ + { + "term": { + "structure": { + "value": %d + } + } + }, + { + "term": { + "factor": { + "value": %d + } + } + }, + { + "range": { + "collect_time": { + "gte": "%s", + "lte": "%s" + } + } + } + ] + } + }, +} +`, structureId, factorId, start, end) + + return esQuery +} + +func (the *consumerJYESNJZX) 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) + } + }() +} diff --git a/consumers/consumerManage.go b/consumers/consumerManage.go index 8751634..ac5e1e5 100644 --- a/consumers/consumerManage.go +++ b/consumers/consumerManage.go @@ -38,6 +38,9 @@ func GetConsumer(name string) (consumer IConsumer) { case "consumerGZG2ZJHL": consumer = new(consumerGZG2ZJHL) + case "consumerJYESNJZX": + consumer = new(consumerJYESNJZX) + default: consumer = nil } diff --git a/go.mod b/go.mod index c645c01..e140131 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/redis/go-redis/v9 v9.7.0 github.com/robfig/cron/v3 v3.0.1 golang.org/x/text v0.17.0 - google.golang.org/protobuf v1.31.0 + google.golang.org/protobuf v1.36.6 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 ) @@ -28,6 +28,7 @@ require ( github.com/eapache/go-resiliency v1.7.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/uuid v1.3.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect diff --git a/go.sum b/go.sum index f6f7541..9f192c1 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,8 @@ github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHqu github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= @@ -171,6 +173,8 @@ golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8T google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/utils/timeRange.go b/utils/timeRange.go index 8b90dfb..ecbccd4 100644 --- a/utils/timeRange.go +++ b/utils/timeRange.go @@ -35,3 +35,13 @@ func GetTimeRangeBy10minByOffset(offsetMin int) (start, stop string) { stop = startTime.Format("2006-01-02T15:04:00.000+08:00") return } + +func GetTimeRangeBy1minByOffset(offsetMin int) (start, stop string) { + offset := time.Duration(offsetMin) * time.Minute + now := time.Now().Add(offset) + m := now.Second() // 获取当前时间的秒数,1分钟的偏移点 + startTime := now.Add(time.Second * -1 * time.Duration(m)) // 调整到当前分钟的开始 + start = startTime.Format("2006-01-02T15:04:00.000+08:00") // 格式化为所需的时间字符串 + stop = startTime.Add(time.Minute).Format("2006-01-02T15:04:00.000+08:00") // 结束时间是当前分钟的下一分钟 + return +}