// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.12 // source: protobufs/module_config.proto package protobufs 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 RemoteHardwarePinType int32 const ( // Unset/unused RemoteHardwarePinType_UNKNOWN RemoteHardwarePinType = 0 // GPIO pin can be read (if it is high / low) RemoteHardwarePinType_DIGITAL_READ RemoteHardwarePinType = 1 // GPIO pin can be written to (high / low) RemoteHardwarePinType_DIGITAL_WRITE RemoteHardwarePinType = 2 ) // Enum value maps for RemoteHardwarePinType. var ( RemoteHardwarePinType_name = map[int32]string{ 0: "UNKNOWN", 1: "DIGITAL_READ", 2: "DIGITAL_WRITE", } RemoteHardwarePinType_value = map[string]int32{ "UNKNOWN": 0, "DIGITAL_READ": 1, "DIGITAL_WRITE": 2, } ) func (x RemoteHardwarePinType) Enum() *RemoteHardwarePinType { p := new(RemoteHardwarePinType) *p = x return p } func (x RemoteHardwarePinType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RemoteHardwarePinType) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[0].Descriptor() } func (RemoteHardwarePinType) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[0] } func (x RemoteHardwarePinType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RemoteHardwarePinType.Descriptor instead. func (RemoteHardwarePinType) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0} } type ModuleConfig_DetectionSensorConfig_TriggerType int32 const ( // Event is triggered if pin is low ModuleConfig_DetectionSensorConfig_LOGIC_LOW ModuleConfig_DetectionSensorConfig_TriggerType = 0 // Event is triggered if pin is high ModuleConfig_DetectionSensorConfig_LOGIC_HIGH ModuleConfig_DetectionSensorConfig_TriggerType = 1 // Event is triggered when pin goes high to low ModuleConfig_DetectionSensorConfig_FALLING_EDGE ModuleConfig_DetectionSensorConfig_TriggerType = 2 // Event is triggered when pin goes low to high ModuleConfig_DetectionSensorConfig_RISING_EDGE ModuleConfig_DetectionSensorConfig_TriggerType = 3 // Event is triggered on every pin state change, low is considered to be // "active" ModuleConfig_DetectionSensorConfig_EITHER_EDGE_ACTIVE_LOW ModuleConfig_DetectionSensorConfig_TriggerType = 4 // Event is triggered on every pin state change, high is considered to be // "active" ModuleConfig_DetectionSensorConfig_EITHER_EDGE_ACTIVE_HIGH ModuleConfig_DetectionSensorConfig_TriggerType = 5 ) // Enum value maps for ModuleConfig_DetectionSensorConfig_TriggerType. var ( ModuleConfig_DetectionSensorConfig_TriggerType_name = map[int32]string{ 0: "LOGIC_LOW", 1: "LOGIC_HIGH", 2: "FALLING_EDGE", 3: "RISING_EDGE", 4: "EITHER_EDGE_ACTIVE_LOW", 5: "EITHER_EDGE_ACTIVE_HIGH", } ModuleConfig_DetectionSensorConfig_TriggerType_value = map[string]int32{ "LOGIC_LOW": 0, "LOGIC_HIGH": 1, "FALLING_EDGE": 2, "RISING_EDGE": 3, "EITHER_EDGE_ACTIVE_LOW": 4, "EITHER_EDGE_ACTIVE_HIGH": 5, } ) func (x ModuleConfig_DetectionSensorConfig_TriggerType) Enum() *ModuleConfig_DetectionSensorConfig_TriggerType { p := new(ModuleConfig_DetectionSensorConfig_TriggerType) *p = x return p } func (x ModuleConfig_DetectionSensorConfig_TriggerType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ModuleConfig_DetectionSensorConfig_TriggerType) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[1].Descriptor() } func (ModuleConfig_DetectionSensorConfig_TriggerType) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[1] } func (x ModuleConfig_DetectionSensorConfig_TriggerType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ModuleConfig_DetectionSensorConfig_TriggerType.Descriptor instead. func (ModuleConfig_DetectionSensorConfig_TriggerType) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 4, 0} } // Baudrate for codec2 voice type ModuleConfig_AudioConfig_Audio_Baud int32 const ( ModuleConfig_AudioConfig_CODEC2_DEFAULT ModuleConfig_AudioConfig_Audio_Baud = 0 ModuleConfig_AudioConfig_CODEC2_3200 ModuleConfig_AudioConfig_Audio_Baud = 1 ModuleConfig_AudioConfig_CODEC2_2400 ModuleConfig_AudioConfig_Audio_Baud = 2 ModuleConfig_AudioConfig_CODEC2_1600 ModuleConfig_AudioConfig_Audio_Baud = 3 ModuleConfig_AudioConfig_CODEC2_1400 ModuleConfig_AudioConfig_Audio_Baud = 4 ModuleConfig_AudioConfig_CODEC2_1300 ModuleConfig_AudioConfig_Audio_Baud = 5 ModuleConfig_AudioConfig_CODEC2_1200 ModuleConfig_AudioConfig_Audio_Baud = 6 ModuleConfig_AudioConfig_CODEC2_700 ModuleConfig_AudioConfig_Audio_Baud = 7 ModuleConfig_AudioConfig_CODEC2_700B ModuleConfig_AudioConfig_Audio_Baud = 8 ) // Enum value maps for ModuleConfig_AudioConfig_Audio_Baud. var ( ModuleConfig_AudioConfig_Audio_Baud_name = map[int32]string{ 0: "CODEC2_DEFAULT", 1: "CODEC2_3200", 2: "CODEC2_2400", 3: "CODEC2_1600", 4: "CODEC2_1400", 5: "CODEC2_1300", 6: "CODEC2_1200", 7: "CODEC2_700", 8: "CODEC2_700B", } ModuleConfig_AudioConfig_Audio_Baud_value = map[string]int32{ "CODEC2_DEFAULT": 0, "CODEC2_3200": 1, "CODEC2_2400": 2, "CODEC2_1600": 3, "CODEC2_1400": 4, "CODEC2_1300": 5, "CODEC2_1200": 6, "CODEC2_700": 7, "CODEC2_700B": 8, } ) func (x ModuleConfig_AudioConfig_Audio_Baud) Enum() *ModuleConfig_AudioConfig_Audio_Baud { p := new(ModuleConfig_AudioConfig_Audio_Baud) *p = x return p } func (x ModuleConfig_AudioConfig_Audio_Baud) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ModuleConfig_AudioConfig_Audio_Baud) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[2].Descriptor() } func (ModuleConfig_AudioConfig_Audio_Baud) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[2] } func (x ModuleConfig_AudioConfig_Audio_Baud) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ModuleConfig_AudioConfig_Audio_Baud.Descriptor instead. func (ModuleConfig_AudioConfig_Audio_Baud) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 5, 0} } // TODO: REPLACE type ModuleConfig_SerialConfig_Serial_Baud int32 const ( ModuleConfig_SerialConfig_BAUD_DEFAULT ModuleConfig_SerialConfig_Serial_Baud = 0 ModuleConfig_SerialConfig_BAUD_110 ModuleConfig_SerialConfig_Serial_Baud = 1 ModuleConfig_SerialConfig_BAUD_300 ModuleConfig_SerialConfig_Serial_Baud = 2 ModuleConfig_SerialConfig_BAUD_600 ModuleConfig_SerialConfig_Serial_Baud = 3 ModuleConfig_SerialConfig_BAUD_1200 ModuleConfig_SerialConfig_Serial_Baud = 4 ModuleConfig_SerialConfig_BAUD_2400 ModuleConfig_SerialConfig_Serial_Baud = 5 ModuleConfig_SerialConfig_BAUD_4800 ModuleConfig_SerialConfig_Serial_Baud = 6 ModuleConfig_SerialConfig_BAUD_9600 ModuleConfig_SerialConfig_Serial_Baud = 7 ModuleConfig_SerialConfig_BAUD_19200 ModuleConfig_SerialConfig_Serial_Baud = 8 ModuleConfig_SerialConfig_BAUD_38400 ModuleConfig_SerialConfig_Serial_Baud = 9 ModuleConfig_SerialConfig_BAUD_57600 ModuleConfig_SerialConfig_Serial_Baud = 10 ModuleConfig_SerialConfig_BAUD_115200 ModuleConfig_SerialConfig_Serial_Baud = 11 ModuleConfig_SerialConfig_BAUD_230400 ModuleConfig_SerialConfig_Serial_Baud = 12 ModuleConfig_SerialConfig_BAUD_460800 ModuleConfig_SerialConfig_Serial_Baud = 13 ModuleConfig_SerialConfig_BAUD_576000 ModuleConfig_SerialConfig_Serial_Baud = 14 ModuleConfig_SerialConfig_BAUD_921600 ModuleConfig_SerialConfig_Serial_Baud = 15 ) // Enum value maps for ModuleConfig_SerialConfig_Serial_Baud. var ( ModuleConfig_SerialConfig_Serial_Baud_name = map[int32]string{ 0: "BAUD_DEFAULT", 1: "BAUD_110", 2: "BAUD_300", 3: "BAUD_600", 4: "BAUD_1200", 5: "BAUD_2400", 6: "BAUD_4800", 7: "BAUD_9600", 8: "BAUD_19200", 9: "BAUD_38400", 10: "BAUD_57600", 11: "BAUD_115200", 12: "BAUD_230400", 13: "BAUD_460800", 14: "BAUD_576000", 15: "BAUD_921600", } ModuleConfig_SerialConfig_Serial_Baud_value = map[string]int32{ "BAUD_DEFAULT": 0, "BAUD_110": 1, "BAUD_300": 2, "BAUD_600": 3, "BAUD_1200": 4, "BAUD_2400": 5, "BAUD_4800": 6, "BAUD_9600": 7, "BAUD_19200": 8, "BAUD_38400": 9, "BAUD_57600": 10, "BAUD_115200": 11, "BAUD_230400": 12, "BAUD_460800": 13, "BAUD_576000": 14, "BAUD_921600": 15, } ) func (x ModuleConfig_SerialConfig_Serial_Baud) Enum() *ModuleConfig_SerialConfig_Serial_Baud { p := new(ModuleConfig_SerialConfig_Serial_Baud) *p = x return p } func (x ModuleConfig_SerialConfig_Serial_Baud) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ModuleConfig_SerialConfig_Serial_Baud) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[3].Descriptor() } func (ModuleConfig_SerialConfig_Serial_Baud) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[3] } func (x ModuleConfig_SerialConfig_Serial_Baud) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ModuleConfig_SerialConfig_Serial_Baud.Descriptor instead. func (ModuleConfig_SerialConfig_Serial_Baud) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7, 0} } // TODO: REPLACE type ModuleConfig_SerialConfig_Serial_Mode int32 const ( ModuleConfig_SerialConfig_DEFAULT ModuleConfig_SerialConfig_Serial_Mode = 0 ModuleConfig_SerialConfig_SIMPLE ModuleConfig_SerialConfig_Serial_Mode = 1 ModuleConfig_SerialConfig_PROTO ModuleConfig_SerialConfig_Serial_Mode = 2 ModuleConfig_SerialConfig_TEXTMSG ModuleConfig_SerialConfig_Serial_Mode = 3 ModuleConfig_SerialConfig_NMEA ModuleConfig_SerialConfig_Serial_Mode = 4 // NMEA messages specifically tailored for CalTopo ModuleConfig_SerialConfig_CALTOPO ModuleConfig_SerialConfig_Serial_Mode = 5 // Ecowitt WS85 weather station ModuleConfig_SerialConfig_WS85 ModuleConfig_SerialConfig_Serial_Mode = 6 ) // Enum value maps for ModuleConfig_SerialConfig_Serial_Mode. var ( ModuleConfig_SerialConfig_Serial_Mode_name = map[int32]string{ 0: "DEFAULT", 1: "SIMPLE", 2: "PROTO", 3: "TEXTMSG", 4: "NMEA", 5: "CALTOPO", 6: "WS85", } ModuleConfig_SerialConfig_Serial_Mode_value = map[string]int32{ "DEFAULT": 0, "SIMPLE": 1, "PROTO": 2, "TEXTMSG": 3, "NMEA": 4, "CALTOPO": 5, "WS85": 6, } ) func (x ModuleConfig_SerialConfig_Serial_Mode) Enum() *ModuleConfig_SerialConfig_Serial_Mode { p := new(ModuleConfig_SerialConfig_Serial_Mode) *p = x return p } func (x ModuleConfig_SerialConfig_Serial_Mode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ModuleConfig_SerialConfig_Serial_Mode) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[4].Descriptor() } func (ModuleConfig_SerialConfig_Serial_Mode) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[4] } func (x ModuleConfig_SerialConfig_Serial_Mode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ModuleConfig_SerialConfig_Serial_Mode.Descriptor instead. func (ModuleConfig_SerialConfig_Serial_Mode) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7, 1} } // TODO: REPLACE type ModuleConfig_CannedMessageConfig_InputEventChar int32 const ( // TODO: REPLACE ModuleConfig_CannedMessageConfig_NONE ModuleConfig_CannedMessageConfig_InputEventChar = 0 // TODO: REPLACE ModuleConfig_CannedMessageConfig_UP ModuleConfig_CannedMessageConfig_InputEventChar = 17 // TODO: REPLACE ModuleConfig_CannedMessageConfig_DOWN ModuleConfig_CannedMessageConfig_InputEventChar = 18 // TODO: REPLACE ModuleConfig_CannedMessageConfig_LEFT ModuleConfig_CannedMessageConfig_InputEventChar = 19 // TODO: REPLACE ModuleConfig_CannedMessageConfig_RIGHT ModuleConfig_CannedMessageConfig_InputEventChar = 20 // '\n' ModuleConfig_CannedMessageConfig_SELECT ModuleConfig_CannedMessageConfig_InputEventChar = 10 // TODO: REPLACE ModuleConfig_CannedMessageConfig_BACK ModuleConfig_CannedMessageConfig_InputEventChar = 27 // TODO: REPLACE ModuleConfig_CannedMessageConfig_CANCEL ModuleConfig_CannedMessageConfig_InputEventChar = 24 ) // Enum value maps for ModuleConfig_CannedMessageConfig_InputEventChar. var ( ModuleConfig_CannedMessageConfig_InputEventChar_name = map[int32]string{ 0: "NONE", 17: "UP", 18: "DOWN", 19: "LEFT", 20: "RIGHT", 10: "SELECT", 27: "BACK", 24: "CANCEL", } ModuleConfig_CannedMessageConfig_InputEventChar_value = map[string]int32{ "NONE": 0, "UP": 17, "DOWN": 18, "LEFT": 19, "RIGHT": 20, "SELECT": 10, "BACK": 27, "CANCEL": 24, } ) func (x ModuleConfig_CannedMessageConfig_InputEventChar) Enum() *ModuleConfig_CannedMessageConfig_InputEventChar { p := new(ModuleConfig_CannedMessageConfig_InputEventChar) *p = x return p } func (x ModuleConfig_CannedMessageConfig_InputEventChar) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ModuleConfig_CannedMessageConfig_InputEventChar) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_module_config_proto_enumTypes[5].Descriptor() } func (ModuleConfig_CannedMessageConfig_InputEventChar) Type() protoreflect.EnumType { return &file_protobufs_module_config_proto_enumTypes[5] } func (x ModuleConfig_CannedMessageConfig_InputEventChar) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ModuleConfig_CannedMessageConfig_InputEventChar.Descriptor instead. func (ModuleConfig_CannedMessageConfig_InputEventChar) EnumDescriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 12, 0} } // Module Config type ModuleConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // TODO: REPLACE // // Types that are assignable to PayloadVariant: // // *ModuleConfig_Mqtt // *ModuleConfig_Serial // *ModuleConfig_ExternalNotification // *ModuleConfig_StoreForward // *ModuleConfig_RangeTest // *ModuleConfig_Telemetry // *ModuleConfig_CannedMessage // *ModuleConfig_Audio // *ModuleConfig_RemoteHardware // *ModuleConfig_NeighborInfo // *ModuleConfig_AmbientLighting // *ModuleConfig_DetectionSensor // *ModuleConfig_Paxcounter PayloadVariant isModuleConfig_PayloadVariant `protobuf_oneof:"payload_variant"` } func (x *ModuleConfig) Reset() { *x = ModuleConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig) ProtoMessage() {} func (x *ModuleConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0} } func (m *ModuleConfig) GetPayloadVariant() isModuleConfig_PayloadVariant { if m != nil { return m.PayloadVariant } return nil } func (x *ModuleConfig) GetMqtt() *ModuleConfig_MQTTConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_Mqtt); ok { return x.Mqtt } return nil } func (x *ModuleConfig) GetSerial() *ModuleConfig_SerialConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_Serial); ok { return x.Serial } return nil } func (x *ModuleConfig) GetExternalNotification() *ModuleConfig_ExternalNotificationConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_ExternalNotification); ok { return x.ExternalNotification } return nil } func (x *ModuleConfig) GetStoreForward() *ModuleConfig_StoreForwardConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_StoreForward); ok { return x.StoreForward } return nil } func (x *ModuleConfig) GetRangeTest() *ModuleConfig_RangeTestConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_RangeTest); ok { return x.RangeTest } return nil } func (x *ModuleConfig) GetTelemetry() *ModuleConfig_TelemetryConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_Telemetry); ok { return x.Telemetry } return nil } func (x *ModuleConfig) GetCannedMessage() *ModuleConfig_CannedMessageConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_CannedMessage); ok { return x.CannedMessage } return nil } func (x *ModuleConfig) GetAudio() *ModuleConfig_AudioConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_Audio); ok { return x.Audio } return nil } func (x *ModuleConfig) GetRemoteHardware() *ModuleConfig_RemoteHardwareConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_RemoteHardware); ok { return x.RemoteHardware } return nil } func (x *ModuleConfig) GetNeighborInfo() *ModuleConfig_NeighborInfoConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_NeighborInfo); ok { return x.NeighborInfo } return nil } func (x *ModuleConfig) GetAmbientLighting() *ModuleConfig_AmbientLightingConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_AmbientLighting); ok { return x.AmbientLighting } return nil } func (x *ModuleConfig) GetDetectionSensor() *ModuleConfig_DetectionSensorConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_DetectionSensor); ok { return x.DetectionSensor } return nil } func (x *ModuleConfig) GetPaxcounter() *ModuleConfig_PaxcounterConfig { if x, ok := x.GetPayloadVariant().(*ModuleConfig_Paxcounter); ok { return x.Paxcounter } return nil } type isModuleConfig_PayloadVariant interface { isModuleConfig_PayloadVariant() } type ModuleConfig_Mqtt struct { // TODO: REPLACE Mqtt *ModuleConfig_MQTTConfig `protobuf:"bytes,1,opt,name=mqtt,proto3,oneof"` } type ModuleConfig_Serial struct { // TODO: REPLACE Serial *ModuleConfig_SerialConfig `protobuf:"bytes,2,opt,name=serial,proto3,oneof"` } type ModuleConfig_ExternalNotification struct { // TODO: REPLACE ExternalNotification *ModuleConfig_ExternalNotificationConfig `protobuf:"bytes,3,opt,name=external_notification,json=externalNotification,proto3,oneof"` } type ModuleConfig_StoreForward struct { // TODO: REPLACE StoreForward *ModuleConfig_StoreForwardConfig `protobuf:"bytes,4,opt,name=store_forward,json=storeForward,proto3,oneof"` } type ModuleConfig_RangeTest struct { // TODO: REPLACE RangeTest *ModuleConfig_RangeTestConfig `protobuf:"bytes,5,opt,name=range_test,json=rangeTest,proto3,oneof"` } type ModuleConfig_Telemetry struct { // TODO: REPLACE Telemetry *ModuleConfig_TelemetryConfig `protobuf:"bytes,6,opt,name=telemetry,proto3,oneof"` } type ModuleConfig_CannedMessage struct { // TODO: REPLACE CannedMessage *ModuleConfig_CannedMessageConfig `protobuf:"bytes,7,opt,name=canned_message,json=cannedMessage,proto3,oneof"` } type ModuleConfig_Audio struct { // TODO: REPLACE Audio *ModuleConfig_AudioConfig `protobuf:"bytes,8,opt,name=audio,proto3,oneof"` } type ModuleConfig_RemoteHardware struct { // TODO: REPLACE RemoteHardware *ModuleConfig_RemoteHardwareConfig `protobuf:"bytes,9,opt,name=remote_hardware,json=remoteHardware,proto3,oneof"` } type ModuleConfig_NeighborInfo struct { // TODO: REPLACE NeighborInfo *ModuleConfig_NeighborInfoConfig `protobuf:"bytes,10,opt,name=neighbor_info,json=neighborInfo,proto3,oneof"` } type ModuleConfig_AmbientLighting struct { // TODO: REPLACE AmbientLighting *ModuleConfig_AmbientLightingConfig `protobuf:"bytes,11,opt,name=ambient_lighting,json=ambientLighting,proto3,oneof"` } type ModuleConfig_DetectionSensor struct { // TODO: REPLACE DetectionSensor *ModuleConfig_DetectionSensorConfig `protobuf:"bytes,12,opt,name=detection_sensor,json=detectionSensor,proto3,oneof"` } type ModuleConfig_Paxcounter struct { // TODO: REPLACE Paxcounter *ModuleConfig_PaxcounterConfig `protobuf:"bytes,13,opt,name=paxcounter,proto3,oneof"` } func (*ModuleConfig_Mqtt) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_Serial) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_ExternalNotification) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_StoreForward) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_RangeTest) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_Telemetry) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_CannedMessage) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_Audio) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_RemoteHardware) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_NeighborInfo) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_AmbientLighting) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_DetectionSensor) isModuleConfig_PayloadVariant() {} func (*ModuleConfig_Paxcounter) isModuleConfig_PayloadVariant() {} // A GPIO pin definition for remote hardware module type RemoteHardwarePin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // GPIO Pin number (must match Arduino) GpioPin uint32 `protobuf:"varint,1,opt,name=gpio_pin,json=gpioPin,proto3" json:"gpio_pin,omitempty"` // Name for the GPIO pin (i.e. Front gate, mailbox, etc) Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Type of GPIO access available to consumers on the mesh Type RemoteHardwarePinType `protobuf:"varint,3,opt,name=type,proto3,enum=meshtastic.RemoteHardwarePinType" json:"type,omitempty"` } func (x *RemoteHardwarePin) Reset() { *x = RemoteHardwarePin{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoteHardwarePin) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoteHardwarePin) ProtoMessage() {} func (x *RemoteHardwarePin) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 RemoteHardwarePin.ProtoReflect.Descriptor instead. func (*RemoteHardwarePin) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{1} } func (x *RemoteHardwarePin) GetGpioPin() uint32 { if x != nil { return x.GpioPin } return 0 } func (x *RemoteHardwarePin) GetName() string { if x != nil { return x.Name } return "" } func (x *RemoteHardwarePin) GetType() RemoteHardwarePinType { if x != nil { return x.Type } return RemoteHardwarePinType_UNKNOWN } // MQTT Client Config type ModuleConfig_MQTTConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as // is_uplink_enabled or is_downlink_enabled. Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // The server to use for our MQTT global message gateway feature. // If not set, the default server will be used Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // MQTT username to use (most useful for a custom MQTT server). // If using a custom server, this will be honoured even if empty. // If using the default server, this will only be honoured if set, otherwise the device will use the default username Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` // MQTT password to use (most useful for a custom MQTT server). // If using a custom server, this will be honoured even if empty. // If using the default server, this will only be honoured if set, otherwise the device will use the default password Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // Whether to send encrypted or decrypted packets to MQTT. // This parameter is only honoured if you also set server // (the default official mqtt.meshtastic.org server can handle encrypted packets) // Decrypted packets may be useful for external systems that want to consume meshtastic packets EncryptionEnabled bool `protobuf:"varint,5,opt,name=encryption_enabled,json=encryptionEnabled,proto3" json:"encryption_enabled,omitempty"` // Whether to send / consume json packets on MQTT JsonEnabled bool `protobuf:"varint,6,opt,name=json_enabled,json=jsonEnabled,proto3" json:"json_enabled,omitempty"` // If true, we attempt to establish a secure connection using TLS TlsEnabled bool `protobuf:"varint,7,opt,name=tls_enabled,json=tlsEnabled,proto3" json:"tls_enabled,omitempty"` // The root topic to use for MQTT messages. Default is "msh". // This is useful if you want to use a single MQTT server for multiple meshtastic networks and separate them via ACLs Root string `protobuf:"bytes,8,opt,name=root,proto3" json:"root,omitempty"` // If true, we can use the connected phone / client to proxy messages to MQTT instead of a direct connection ProxyToClientEnabled bool `protobuf:"varint,9,opt,name=proxy_to_client_enabled,json=proxyToClientEnabled,proto3" json:"proxy_to_client_enabled,omitempty"` // If true, we will periodically report unencrypted information about our node to a map via MQTT MapReportingEnabled bool `protobuf:"varint,10,opt,name=map_reporting_enabled,json=mapReportingEnabled,proto3" json:"map_reporting_enabled,omitempty"` // Settings for reporting information about our node to a map via MQTT MapReportSettings *ModuleConfig_MapReportSettings `protobuf:"bytes,11,opt,name=map_report_settings,json=mapReportSettings,proto3" json:"map_report_settings,omitempty"` } func (x *ModuleConfig_MQTTConfig) Reset() { *x = ModuleConfig_MQTTConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_MQTTConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_MQTTConfig) ProtoMessage() {} func (x *ModuleConfig_MQTTConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_MQTTConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_MQTTConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 0} } func (x *ModuleConfig_MQTTConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_MQTTConfig) GetAddress() string { if x != nil { return x.Address } return "" } func (x *ModuleConfig_MQTTConfig) GetUsername() string { if x != nil { return x.Username } return "" } func (x *ModuleConfig_MQTTConfig) GetPassword() string { if x != nil { return x.Password } return "" } func (x *ModuleConfig_MQTTConfig) GetEncryptionEnabled() bool { if x != nil { return x.EncryptionEnabled } return false } func (x *ModuleConfig_MQTTConfig) GetJsonEnabled() bool { if x != nil { return x.JsonEnabled } return false } func (x *ModuleConfig_MQTTConfig) GetTlsEnabled() bool { if x != nil { return x.TlsEnabled } return false } func (x *ModuleConfig_MQTTConfig) GetRoot() string { if x != nil { return x.Root } return "" } func (x *ModuleConfig_MQTTConfig) GetProxyToClientEnabled() bool { if x != nil { return x.ProxyToClientEnabled } return false } func (x *ModuleConfig_MQTTConfig) GetMapReportingEnabled() bool { if x != nil { return x.MapReportingEnabled } return false } func (x *ModuleConfig_MQTTConfig) GetMapReportSettings() *ModuleConfig_MapReportSettings { if x != nil { return x.MapReportSettings } return nil } // Settings for reporting unencrypted information about our node to a map via MQTT type ModuleConfig_MapReportSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // How often we should report our info to the map (in seconds) PublishIntervalSecs uint32 `protobuf:"varint,1,opt,name=publish_interval_secs,json=publishIntervalSecs,proto3" json:"publish_interval_secs,omitempty"` // Bits of precision for the location sent (default of 32 is full precision). PositionPrecision uint32 `protobuf:"varint,2,opt,name=position_precision,json=positionPrecision,proto3" json:"position_precision,omitempty"` } func (x *ModuleConfig_MapReportSettings) Reset() { *x = ModuleConfig_MapReportSettings{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_MapReportSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_MapReportSettings) ProtoMessage() {} func (x *ModuleConfig_MapReportSettings) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_MapReportSettings.ProtoReflect.Descriptor instead. func (*ModuleConfig_MapReportSettings) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 1} } func (x *ModuleConfig_MapReportSettings) GetPublishIntervalSecs() uint32 { if x != nil { return x.PublishIntervalSecs } return 0 } func (x *ModuleConfig_MapReportSettings) GetPositionPrecision() uint32 { if x != nil { return x.PositionPrecision } return 0 } // RemoteHardwareModule Config type ModuleConfig_RemoteHardwareConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Whether the Module is enabled Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Whether the Module allows consumers to read / write to pins not defined in available_pins AllowUndefinedPinAccess bool `protobuf:"varint,2,opt,name=allow_undefined_pin_access,json=allowUndefinedPinAccess,proto3" json:"allow_undefined_pin_access,omitempty"` // Exposes the available pins to the mesh for reading and writing AvailablePins []*RemoteHardwarePin `protobuf:"bytes,3,rep,name=available_pins,json=availablePins,proto3" json:"available_pins,omitempty"` } func (x *ModuleConfig_RemoteHardwareConfig) Reset() { *x = ModuleConfig_RemoteHardwareConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_RemoteHardwareConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_RemoteHardwareConfig) ProtoMessage() {} func (x *ModuleConfig_RemoteHardwareConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_RemoteHardwareConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_RemoteHardwareConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 2} } func (x *ModuleConfig_RemoteHardwareConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_RemoteHardwareConfig) GetAllowUndefinedPinAccess() bool { if x != nil { return x.AllowUndefinedPinAccess } return false } func (x *ModuleConfig_RemoteHardwareConfig) GetAvailablePins() []*RemoteHardwarePin { if x != nil { return x.AvailablePins } return nil } // NeighborInfoModule Config type ModuleConfig_NeighborInfoConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Whether the Module is enabled Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Interval in seconds of how often we should try to send our // Neighbor Info to the mesh UpdateInterval uint32 `protobuf:"varint,2,opt,name=update_interval,json=updateInterval,proto3" json:"update_interval,omitempty"` } func (x *ModuleConfig_NeighborInfoConfig) Reset() { *x = ModuleConfig_NeighborInfoConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_NeighborInfoConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_NeighborInfoConfig) ProtoMessage() {} func (x *ModuleConfig_NeighborInfoConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_NeighborInfoConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_NeighborInfoConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 3} } func (x *ModuleConfig_NeighborInfoConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_NeighborInfoConfig) GetUpdateInterval() uint32 { if x != nil { return x.UpdateInterval } return 0 } // Detection Sensor Module Config type ModuleConfig_DetectionSensorConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Whether the Module is enabled Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Interval in seconds of how often we can send a message to the mesh when a // trigger event is detected MinimumBroadcastSecs uint32 `protobuf:"varint,2,opt,name=minimum_broadcast_secs,json=minimumBroadcastSecs,proto3" json:"minimum_broadcast_secs,omitempty"` // Interval in seconds of how often we should send a message to the mesh // with the current state regardless of trigger events When set to 0, only // trigger events will be broadcasted Works as a sort of status heartbeat // for peace of mind StateBroadcastSecs uint32 `protobuf:"varint,3,opt,name=state_broadcast_secs,json=stateBroadcastSecs,proto3" json:"state_broadcast_secs,omitempty"` // Send ASCII bell with alert message // Useful for triggering ext. notification on bell SendBell bool `protobuf:"varint,4,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"` // Friendly name used to format message sent to mesh // Example: A name "Motion" would result in a message "Motion detected" // Maximum length of 20 characters Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` // GPIO pin to monitor for state changes MonitorPin uint32 `protobuf:"varint,6,opt,name=monitor_pin,json=monitorPin,proto3" json:"monitor_pin,omitempty"` // The type of trigger event to be used DetectionTriggerType ModuleConfig_DetectionSensorConfig_TriggerType `protobuf:"varint,7,opt,name=detection_trigger_type,json=detectionTriggerType,proto3,enum=meshtastic.ModuleConfig_DetectionSensorConfig_TriggerType" json:"detection_trigger_type,omitempty"` // Whether or not use INPUT_PULLUP mode for GPIO pin // Only applicable if the board uses pull-up resistors on the pin UsePullup bool `protobuf:"varint,8,opt,name=use_pullup,json=usePullup,proto3" json:"use_pullup,omitempty"` } func (x *ModuleConfig_DetectionSensorConfig) Reset() { *x = ModuleConfig_DetectionSensorConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_DetectionSensorConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_DetectionSensorConfig) ProtoMessage() {} func (x *ModuleConfig_DetectionSensorConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_DetectionSensorConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_DetectionSensorConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 4} } func (x *ModuleConfig_DetectionSensorConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_DetectionSensorConfig) GetMinimumBroadcastSecs() uint32 { if x != nil { return x.MinimumBroadcastSecs } return 0 } func (x *ModuleConfig_DetectionSensorConfig) GetStateBroadcastSecs() uint32 { if x != nil { return x.StateBroadcastSecs } return 0 } func (x *ModuleConfig_DetectionSensorConfig) GetSendBell() bool { if x != nil { return x.SendBell } return false } func (x *ModuleConfig_DetectionSensorConfig) GetName() string { if x != nil { return x.Name } return "" } func (x *ModuleConfig_DetectionSensorConfig) GetMonitorPin() uint32 { if x != nil { return x.MonitorPin } return 0 } func (x *ModuleConfig_DetectionSensorConfig) GetDetectionTriggerType() ModuleConfig_DetectionSensorConfig_TriggerType { if x != nil { return x.DetectionTriggerType } return ModuleConfig_DetectionSensorConfig_LOGIC_LOW } func (x *ModuleConfig_DetectionSensorConfig) GetUsePullup() bool { if x != nil { return x.UsePullup } return false } // Audio Config for codec2 voice type ModuleConfig_AudioConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Whether Audio is enabled Codec2Enabled bool `protobuf:"varint,1,opt,name=codec2_enabled,json=codec2Enabled,proto3" json:"codec2_enabled,omitempty"` // PTT Pin PttPin uint32 `protobuf:"varint,2,opt,name=ptt_pin,json=pttPin,proto3" json:"ptt_pin,omitempty"` // The audio sample rate to use for codec2 Bitrate ModuleConfig_AudioConfig_Audio_Baud `protobuf:"varint,3,opt,name=bitrate,proto3,enum=meshtastic.ModuleConfig_AudioConfig_Audio_Baud" json:"bitrate,omitempty"` // I2S Word Select I2SWs uint32 `protobuf:"varint,4,opt,name=i2s_ws,json=i2sWs,proto3" json:"i2s_ws,omitempty"` // I2S Data IN I2SSd uint32 `protobuf:"varint,5,opt,name=i2s_sd,json=i2sSd,proto3" json:"i2s_sd,omitempty"` // I2S Data OUT I2SDin uint32 `protobuf:"varint,6,opt,name=i2s_din,json=i2sDin,proto3" json:"i2s_din,omitempty"` // I2S Clock I2SSck uint32 `protobuf:"varint,7,opt,name=i2s_sck,json=i2sSck,proto3" json:"i2s_sck,omitempty"` } func (x *ModuleConfig_AudioConfig) Reset() { *x = ModuleConfig_AudioConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_AudioConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_AudioConfig) ProtoMessage() {} func (x *ModuleConfig_AudioConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_AudioConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_AudioConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 5} } func (x *ModuleConfig_AudioConfig) GetCodec2Enabled() bool { if x != nil { return x.Codec2Enabled } return false } func (x *ModuleConfig_AudioConfig) GetPttPin() uint32 { if x != nil { return x.PttPin } return 0 } func (x *ModuleConfig_AudioConfig) GetBitrate() ModuleConfig_AudioConfig_Audio_Baud { if x != nil { return x.Bitrate } return ModuleConfig_AudioConfig_CODEC2_DEFAULT } func (x *ModuleConfig_AudioConfig) GetI2SWs() uint32 { if x != nil { return x.I2SWs } return 0 } func (x *ModuleConfig_AudioConfig) GetI2SSd() uint32 { if x != nil { return x.I2SSd } return 0 } func (x *ModuleConfig_AudioConfig) GetI2SDin() uint32 { if x != nil { return x.I2SDin } return 0 } func (x *ModuleConfig_AudioConfig) GetI2SSck() uint32 { if x != nil { return x.I2SSck } return 0 } // Config for the Paxcounter Module type ModuleConfig_PaxcounterConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enable the Paxcounter Module Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` PaxcounterUpdateInterval uint32 `protobuf:"varint,2,opt,name=paxcounter_update_interval,json=paxcounterUpdateInterval,proto3" json:"paxcounter_update_interval,omitempty"` // WiFi RSSI threshold. Defaults to -80 WifiThreshold int32 `protobuf:"varint,3,opt,name=wifi_threshold,json=wifiThreshold,proto3" json:"wifi_threshold,omitempty"` // BLE RSSI threshold. Defaults to -80 BleThreshold int32 `protobuf:"varint,4,opt,name=ble_threshold,json=bleThreshold,proto3" json:"ble_threshold,omitempty"` } func (x *ModuleConfig_PaxcounterConfig) Reset() { *x = ModuleConfig_PaxcounterConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_PaxcounterConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_PaxcounterConfig) ProtoMessage() {} func (x *ModuleConfig_PaxcounterConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_PaxcounterConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_PaxcounterConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 6} } func (x *ModuleConfig_PaxcounterConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_PaxcounterConfig) GetPaxcounterUpdateInterval() uint32 { if x != nil { return x.PaxcounterUpdateInterval } return 0 } func (x *ModuleConfig_PaxcounterConfig) GetWifiThreshold() int32 { if x != nil { return x.WifiThreshold } return 0 } func (x *ModuleConfig_PaxcounterConfig) GetBleThreshold() int32 { if x != nil { return x.BleThreshold } return 0 } // Serial Config type ModuleConfig_SerialConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Preferences for the SerialModule Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // TODO: REPLACE Echo bool `protobuf:"varint,2,opt,name=echo,proto3" json:"echo,omitempty"` // RX pin (should match Arduino gpio pin number) Rxd uint32 `protobuf:"varint,3,opt,name=rxd,proto3" json:"rxd,omitempty"` // TX pin (should match Arduino gpio pin number) Txd uint32 `protobuf:"varint,4,opt,name=txd,proto3" json:"txd,omitempty"` // Serial baud rate Baud ModuleConfig_SerialConfig_Serial_Baud `protobuf:"varint,5,opt,name=baud,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Baud" json:"baud,omitempty"` // TODO: REPLACE Timeout uint32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"` // Mode for serial module operation Mode ModuleConfig_SerialConfig_Serial_Mode `protobuf:"varint,7,opt,name=mode,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Mode" json:"mode,omitempty"` // Overrides the platform's defacto Serial port instance to use with Serial module config settings // This is currently only usable in output modes like NMEA / CalTopo and may behave strangely or not work at all in other modes // Existing logging over the Serial Console will still be present OverrideConsoleSerialPort bool `protobuf:"varint,8,opt,name=override_console_serial_port,json=overrideConsoleSerialPort,proto3" json:"override_console_serial_port,omitempty"` } func (x *ModuleConfig_SerialConfig) Reset() { *x = ModuleConfig_SerialConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_SerialConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_SerialConfig) ProtoMessage() {} func (x *ModuleConfig_SerialConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_SerialConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_SerialConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7} } func (x *ModuleConfig_SerialConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_SerialConfig) GetEcho() bool { if x != nil { return x.Echo } return false } func (x *ModuleConfig_SerialConfig) GetRxd() uint32 { if x != nil { return x.Rxd } return 0 } func (x *ModuleConfig_SerialConfig) GetTxd() uint32 { if x != nil { return x.Txd } return 0 } func (x *ModuleConfig_SerialConfig) GetBaud() ModuleConfig_SerialConfig_Serial_Baud { if x != nil { return x.Baud } return ModuleConfig_SerialConfig_BAUD_DEFAULT } func (x *ModuleConfig_SerialConfig) GetTimeout() uint32 { if x != nil { return x.Timeout } return 0 } func (x *ModuleConfig_SerialConfig) GetMode() ModuleConfig_SerialConfig_Serial_Mode { if x != nil { return x.Mode } return ModuleConfig_SerialConfig_DEFAULT } func (x *ModuleConfig_SerialConfig) GetOverrideConsoleSerialPort() bool { if x != nil { return x.OverrideConsoleSerialPort } return false } // External Notifications Config type ModuleConfig_ExternalNotificationConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enable the ExternalNotificationModule Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // When using in On/Off mode, keep the output on for this many // milliseconds. Default 1000ms (1 second). OutputMs uint32 `protobuf:"varint,2,opt,name=output_ms,json=outputMs,proto3" json:"output_ms,omitempty"` // Define the output pin GPIO setting Defaults to // EXT_NOTIFY_OUT if set for the board. // In standalone devices this pin should drive the LED to match the UI. Output uint32 `protobuf:"varint,3,opt,name=output,proto3" json:"output,omitempty"` // Optional: Define a secondary output pin for a vibra motor // This is used in standalone devices to match the UI. OutputVibra uint32 `protobuf:"varint,8,opt,name=output_vibra,json=outputVibra,proto3" json:"output_vibra,omitempty"` // Optional: Define a tertiary output pin for an active buzzer // This is used in standalone devices to to match the UI. OutputBuzzer uint32 `protobuf:"varint,9,opt,name=output_buzzer,json=outputBuzzer,proto3" json:"output_buzzer,omitempty"` // IF this is true, the 'output' Pin will be pulled active high, false // means active low. Active bool `protobuf:"varint,4,opt,name=active,proto3" json:"active,omitempty"` // True: Alert when a text message arrives (output) AlertMessage bool `protobuf:"varint,5,opt,name=alert_message,json=alertMessage,proto3" json:"alert_message,omitempty"` // True: Alert when a text message arrives (output_vibra) AlertMessageVibra bool `protobuf:"varint,10,opt,name=alert_message_vibra,json=alertMessageVibra,proto3" json:"alert_message_vibra,omitempty"` // True: Alert when a text message arrives (output_buzzer) AlertMessageBuzzer bool `protobuf:"varint,11,opt,name=alert_message_buzzer,json=alertMessageBuzzer,proto3" json:"alert_message_buzzer,omitempty"` // True: Alert when the bell character is received (output) AlertBell bool `protobuf:"varint,6,opt,name=alert_bell,json=alertBell,proto3" json:"alert_bell,omitempty"` // True: Alert when the bell character is received (output_vibra) AlertBellVibra bool `protobuf:"varint,12,opt,name=alert_bell_vibra,json=alertBellVibra,proto3" json:"alert_bell_vibra,omitempty"` // True: Alert when the bell character is received (output_buzzer) AlertBellBuzzer bool `protobuf:"varint,13,opt,name=alert_bell_buzzer,json=alertBellBuzzer,proto3" json:"alert_bell_buzzer,omitempty"` // use a PWM output instead of a simple on/off output. This will ignore // the 'output', 'output_ms' and 'active' settings and use the // device.buzzer_gpio instead. UsePwm bool `protobuf:"varint,7,opt,name=use_pwm,json=usePwm,proto3" json:"use_pwm,omitempty"` // The notification will toggle with 'output_ms' for this time of seconds. // Default is 0 which means don't repeat at all. 60 would mean blink // and/or beep for 60 seconds NagTimeout uint32 `protobuf:"varint,14,opt,name=nag_timeout,json=nagTimeout,proto3" json:"nag_timeout,omitempty"` // When true, enables devices with native I2S audio output to use the RTTTL over speaker like a buzzer // T-Watch S3 and T-Deck for example have this capability UseI2SAsBuzzer bool `protobuf:"varint,15,opt,name=use_i2s_as_buzzer,json=useI2sAsBuzzer,proto3" json:"use_i2s_as_buzzer,omitempty"` } func (x *ModuleConfig_ExternalNotificationConfig) Reset() { *x = ModuleConfig_ExternalNotificationConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_ExternalNotificationConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_ExternalNotificationConfig) ProtoMessage() {} func (x *ModuleConfig_ExternalNotificationConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_ExternalNotificationConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_ExternalNotificationConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 8} } func (x *ModuleConfig_ExternalNotificationConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetOutputMs() uint32 { if x != nil { return x.OutputMs } return 0 } func (x *ModuleConfig_ExternalNotificationConfig) GetOutput() uint32 { if x != nil { return x.Output } return 0 } func (x *ModuleConfig_ExternalNotificationConfig) GetOutputVibra() uint32 { if x != nil { return x.OutputVibra } return 0 } func (x *ModuleConfig_ExternalNotificationConfig) GetOutputBuzzer() uint32 { if x != nil { return x.OutputBuzzer } return 0 } func (x *ModuleConfig_ExternalNotificationConfig) GetActive() bool { if x != nil { return x.Active } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessage() bool { if x != nil { return x.AlertMessage } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageVibra() bool { if x != nil { return x.AlertMessageVibra } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageBuzzer() bool { if x != nil { return x.AlertMessageBuzzer } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBell() bool { if x != nil { return x.AlertBell } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellVibra() bool { if x != nil { return x.AlertBellVibra } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellBuzzer() bool { if x != nil { return x.AlertBellBuzzer } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetUsePwm() bool { if x != nil { return x.UsePwm } return false } func (x *ModuleConfig_ExternalNotificationConfig) GetNagTimeout() uint32 { if x != nil { return x.NagTimeout } return 0 } func (x *ModuleConfig_ExternalNotificationConfig) GetUseI2SAsBuzzer() bool { if x != nil { return x.UseI2SAsBuzzer } return false } // Store and Forward Module Config type ModuleConfig_StoreForwardConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enable the Store and Forward Module Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // TODO: REPLACE Heartbeat bool `protobuf:"varint,2,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"` // TODO: REPLACE Records uint32 `protobuf:"varint,3,opt,name=records,proto3" json:"records,omitempty"` // TODO: REPLACE HistoryReturnMax uint32 `protobuf:"varint,4,opt,name=history_return_max,json=historyReturnMax,proto3" json:"history_return_max,omitempty"` // TODO: REPLACE HistoryReturnWindow uint32 `protobuf:"varint,5,opt,name=history_return_window,json=historyReturnWindow,proto3" json:"history_return_window,omitempty"` // Set to true to let this node act as a server that stores received messages and resends them upon request. IsServer bool `protobuf:"varint,6,opt,name=is_server,json=isServer,proto3" json:"is_server,omitempty"` } func (x *ModuleConfig_StoreForwardConfig) Reset() { *x = ModuleConfig_StoreForwardConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_StoreForwardConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_StoreForwardConfig) ProtoMessage() {} func (x *ModuleConfig_StoreForwardConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_StoreForwardConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_StoreForwardConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 9} } func (x *ModuleConfig_StoreForwardConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_StoreForwardConfig) GetHeartbeat() bool { if x != nil { return x.Heartbeat } return false } func (x *ModuleConfig_StoreForwardConfig) GetRecords() uint32 { if x != nil { return x.Records } return 0 } func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnMax() uint32 { if x != nil { return x.HistoryReturnMax } return 0 } func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnWindow() uint32 { if x != nil { return x.HistoryReturnWindow } return 0 } func (x *ModuleConfig_StoreForwardConfig) GetIsServer() bool { if x != nil { return x.IsServer } return false } // Preferences for the RangeTestModule type ModuleConfig_RangeTestConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enable the Range Test Module Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Send out range test messages from this node Sender uint32 `protobuf:"varint,2,opt,name=sender,proto3" json:"sender,omitempty"` // Bool value indicating that this node should save a RangeTest.csv file. // ESP32 Only Save bool `protobuf:"varint,3,opt,name=save,proto3" json:"save,omitempty"` } func (x *ModuleConfig_RangeTestConfig) Reset() { *x = ModuleConfig_RangeTestConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_RangeTestConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_RangeTestConfig) ProtoMessage() {} func (x *ModuleConfig_RangeTestConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_RangeTestConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_RangeTestConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 10} } func (x *ModuleConfig_RangeTestConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_RangeTestConfig) GetSender() uint32 { if x != nil { return x.Sender } return 0 } func (x *ModuleConfig_RangeTestConfig) GetSave() bool { if x != nil { return x.Save } return false } // Configuration for both device and environment metrics type ModuleConfig_TelemetryConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Interval in seconds of how often we should try to send our // device metrics to the mesh DeviceUpdateInterval uint32 `protobuf:"varint,1,opt,name=device_update_interval,json=deviceUpdateInterval,proto3" json:"device_update_interval,omitempty"` EnvironmentUpdateInterval uint32 `protobuf:"varint,2,opt,name=environment_update_interval,json=environmentUpdateInterval,proto3" json:"environment_update_interval,omitempty"` // Preferences for the Telemetry Module (Environment) // Enable/Disable the telemetry measurement module measurement collection EnvironmentMeasurementEnabled bool `protobuf:"varint,3,opt,name=environment_measurement_enabled,json=environmentMeasurementEnabled,proto3" json:"environment_measurement_enabled,omitempty"` // Enable/Disable the telemetry measurement module on-device display EnvironmentScreenEnabled bool `protobuf:"varint,4,opt,name=environment_screen_enabled,json=environmentScreenEnabled,proto3" json:"environment_screen_enabled,omitempty"` // We'll always read the sensor in Celsius, but sometimes we might want to // display the results in Fahrenheit as a "user preference". EnvironmentDisplayFahrenheit bool `protobuf:"varint,5,opt,name=environment_display_fahrenheit,json=environmentDisplayFahrenheit,proto3" json:"environment_display_fahrenheit,omitempty"` // Enable/Disable the air quality metrics AirQualityEnabled bool `protobuf:"varint,6,opt,name=air_quality_enabled,json=airQualityEnabled,proto3" json:"air_quality_enabled,omitempty"` // Interval in seconds of how often we should try to send our // air quality metrics to the mesh AirQualityInterval uint32 `protobuf:"varint,7,opt,name=air_quality_interval,json=airQualityInterval,proto3" json:"air_quality_interval,omitempty"` // Enable/disable Power metrics PowerMeasurementEnabled bool `protobuf:"varint,8,opt,name=power_measurement_enabled,json=powerMeasurementEnabled,proto3" json:"power_measurement_enabled,omitempty"` // Interval in seconds of how often we should try to send our // power metrics to the mesh PowerUpdateInterval uint32 `protobuf:"varint,9,opt,name=power_update_interval,json=powerUpdateInterval,proto3" json:"power_update_interval,omitempty"` // Enable/Disable the power measurement module on-device display PowerScreenEnabled bool `protobuf:"varint,10,opt,name=power_screen_enabled,json=powerScreenEnabled,proto3" json:"power_screen_enabled,omitempty"` // Preferences for the (Health) Telemetry Module // Enable/Disable the telemetry measurement module measurement collection HealthMeasurementEnabled bool `protobuf:"varint,11,opt,name=health_measurement_enabled,json=healthMeasurementEnabled,proto3" json:"health_measurement_enabled,omitempty"` // Interval in seconds of how often we should try to send our // health metrics to the mesh HealthUpdateInterval uint32 `protobuf:"varint,12,opt,name=health_update_interval,json=healthUpdateInterval,proto3" json:"health_update_interval,omitempty"` // Enable/Disable the health telemetry module on-device display HealthScreenEnabled bool `protobuf:"varint,13,opt,name=health_screen_enabled,json=healthScreenEnabled,proto3" json:"health_screen_enabled,omitempty"` } func (x *ModuleConfig_TelemetryConfig) Reset() { *x = ModuleConfig_TelemetryConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_TelemetryConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_TelemetryConfig) ProtoMessage() {} func (x *ModuleConfig_TelemetryConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_TelemetryConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_TelemetryConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 11} } func (x *ModuleConfig_TelemetryConfig) GetDeviceUpdateInterval() uint32 { if x != nil { return x.DeviceUpdateInterval } return 0 } func (x *ModuleConfig_TelemetryConfig) GetEnvironmentUpdateInterval() uint32 { if x != nil { return x.EnvironmentUpdateInterval } return 0 } func (x *ModuleConfig_TelemetryConfig) GetEnvironmentMeasurementEnabled() bool { if x != nil { return x.EnvironmentMeasurementEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetEnvironmentScreenEnabled() bool { if x != nil { return x.EnvironmentScreenEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetEnvironmentDisplayFahrenheit() bool { if x != nil { return x.EnvironmentDisplayFahrenheit } return false } func (x *ModuleConfig_TelemetryConfig) GetAirQualityEnabled() bool { if x != nil { return x.AirQualityEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetAirQualityInterval() uint32 { if x != nil { return x.AirQualityInterval } return 0 } func (x *ModuleConfig_TelemetryConfig) GetPowerMeasurementEnabled() bool { if x != nil { return x.PowerMeasurementEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetPowerUpdateInterval() uint32 { if x != nil { return x.PowerUpdateInterval } return 0 } func (x *ModuleConfig_TelemetryConfig) GetPowerScreenEnabled() bool { if x != nil { return x.PowerScreenEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetHealthMeasurementEnabled() bool { if x != nil { return x.HealthMeasurementEnabled } return false } func (x *ModuleConfig_TelemetryConfig) GetHealthUpdateInterval() uint32 { if x != nil { return x.HealthUpdateInterval } return 0 } func (x *ModuleConfig_TelemetryConfig) GetHealthScreenEnabled() bool { if x != nil { return x.HealthScreenEnabled } return false } // TODO: REPLACE type ModuleConfig_CannedMessageConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating. Rotary1Enabled bool `protobuf:"varint,1,opt,name=rotary1_enabled,json=rotary1Enabled,proto3" json:"rotary1_enabled,omitempty"` // GPIO pin for rotary encoder A port. InputbrokerPinA uint32 `protobuf:"varint,2,opt,name=inputbroker_pin_a,json=inputbrokerPinA,proto3" json:"inputbroker_pin_a,omitempty"` // GPIO pin for rotary encoder B port. InputbrokerPinB uint32 `protobuf:"varint,3,opt,name=inputbroker_pin_b,json=inputbrokerPinB,proto3" json:"inputbroker_pin_b,omitempty"` // GPIO pin for rotary encoder Press port. InputbrokerPinPress uint32 `protobuf:"varint,4,opt,name=inputbroker_pin_press,json=inputbrokerPinPress,proto3" json:"inputbroker_pin_press,omitempty"` // Generate input event on CW of this kind. InputbrokerEventCw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,5,opt,name=inputbroker_event_cw,json=inputbrokerEventCw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_cw,omitempty"` // Generate input event on CCW of this kind. InputbrokerEventCcw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,6,opt,name=inputbroker_event_ccw,json=inputbrokerEventCcw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_ccw,omitempty"` // Generate input event on Press of this kind. InputbrokerEventPress ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,7,opt,name=inputbroker_event_press,json=inputbrokerEventPress,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_press,omitempty"` // Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker. Updown1Enabled bool `protobuf:"varint,8,opt,name=updown1_enabled,json=updown1Enabled,proto3" json:"updown1_enabled,omitempty"` // Enable/disable CannedMessageModule. Enabled bool `protobuf:"varint,9,opt,name=enabled,proto3" json:"enabled,omitempty"` // Input event origin accepted by the canned message module. // Can be e.g. "rotEnc1", "upDownEnc1", "scanAndSelect", "cardkb", "serialkb", or keyword "_any" AllowInputSource string `protobuf:"bytes,10,opt,name=allow_input_source,json=allowInputSource,proto3" json:"allow_input_source,omitempty"` // CannedMessageModule also sends a bell character with the messages. // ExternalNotificationModule can benefit from this feature. SendBell bool `protobuf:"varint,11,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"` } func (x *ModuleConfig_CannedMessageConfig) Reset() { *x = ModuleConfig_CannedMessageConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_CannedMessageConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_CannedMessageConfig) ProtoMessage() {} func (x *ModuleConfig_CannedMessageConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_CannedMessageConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_CannedMessageConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 12} } func (x *ModuleConfig_CannedMessageConfig) GetRotary1Enabled() bool { if x != nil { return x.Rotary1Enabled } return false } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinA() uint32 { if x != nil { return x.InputbrokerPinA } return 0 } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinB() uint32 { if x != nil { return x.InputbrokerPinB } return 0 } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinPress() uint32 { if x != nil { return x.InputbrokerPinPress } return 0 } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCw() ModuleConfig_CannedMessageConfig_InputEventChar { if x != nil { return x.InputbrokerEventCw } return ModuleConfig_CannedMessageConfig_NONE } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCcw() ModuleConfig_CannedMessageConfig_InputEventChar { if x != nil { return x.InputbrokerEventCcw } return ModuleConfig_CannedMessageConfig_NONE } func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventPress() ModuleConfig_CannedMessageConfig_InputEventChar { if x != nil { return x.InputbrokerEventPress } return ModuleConfig_CannedMessageConfig_NONE } func (x *ModuleConfig_CannedMessageConfig) GetUpdown1Enabled() bool { if x != nil { return x.Updown1Enabled } return false } func (x *ModuleConfig_CannedMessageConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ModuleConfig_CannedMessageConfig) GetAllowInputSource() string { if x != nil { return x.AllowInputSource } return "" } func (x *ModuleConfig_CannedMessageConfig) GetSendBell() bool { if x != nil { return x.SendBell } return false } // Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels. // Initially created for the RAK14001 RGB LED module. type ModuleConfig_AmbientLightingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Sets LED to on or off. LedState bool `protobuf:"varint,1,opt,name=led_state,json=ledState,proto3" json:"led_state,omitempty"` // Sets the current for the LED output. Default is 10. Current uint32 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"` // Sets the red LED level. Values are 0-255. Red uint32 `protobuf:"varint,3,opt,name=red,proto3" json:"red,omitempty"` // Sets the green LED level. Values are 0-255. Green uint32 `protobuf:"varint,4,opt,name=green,proto3" json:"green,omitempty"` // Sets the blue LED level. Values are 0-255. Blue uint32 `protobuf:"varint,5,opt,name=blue,proto3" json:"blue,omitempty"` } func (x *ModuleConfig_AmbientLightingConfig) Reset() { *x = ModuleConfig_AmbientLightingConfig{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_module_config_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModuleConfig_AmbientLightingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModuleConfig_AmbientLightingConfig) ProtoMessage() {} func (x *ModuleConfig_AmbientLightingConfig) ProtoReflect() protoreflect.Message { mi := &file_protobufs_module_config_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 ModuleConfig_AmbientLightingConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig_AmbientLightingConfig) Descriptor() ([]byte, []int) { return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 13} } func (x *ModuleConfig_AmbientLightingConfig) GetLedState() bool { if x != nil { return x.LedState } return false } func (x *ModuleConfig_AmbientLightingConfig) GetCurrent() uint32 { if x != nil { return x.Current } return 0 } func (x *ModuleConfig_AmbientLightingConfig) GetRed() uint32 { if x != nil { return x.Red } return 0 } func (x *ModuleConfig_AmbientLightingConfig) GetGreen() uint32 { if x != nil { return x.Green } return 0 } func (x *ModuleConfig_AmbientLightingConfig) GetBlue() uint32 { if x != nil { return x.Blue } return 0 } var File_protobufs_module_config_proto protoreflect.FileDescriptor var file_protobufs_module_config_proto_rawDesc = []byte{ 0x0a, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xc2, 0x31, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x51, 0x54, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x6a, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x58, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x10, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0xc6, 0x03, 0x0a, 0x0a, 0x4d, 0x51, 0x54, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x76, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x1a, 0x57, 0x0a, 0x12, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x87, 0x04, 0x0a, 0x15, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x65, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x69, 0x6e, 0x12, 0x70, 0x0a, 0x16, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x75, 0x70, 0x22, 0x88, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x41, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x49, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x49, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x05, 0x1a, 0xa2, 0x03, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x32, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x74, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x74, 0x74, 0x50, 0x69, 0x6e, 0x12, 0x49, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x32, 0x73, 0x5f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32, 0x73, 0x57, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x32, 0x73, 0x5f, 0x73, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32, 0x73, 0x53, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32, 0x73, 0x5f, 0x64, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73, 0x44, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32, 0x73, 0x5f, 0x73, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73, 0x53, 0x63, 0x6b, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x33, 0x32, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x32, 0x34, 0x30, 0x30, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x36, 0x30, 0x30, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x34, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x33, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x32, 0x30, 0x30, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x37, 0x30, 0x30, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x37, 0x30, 0x30, 0x42, 0x10, 0x08, 0x1a, 0xb6, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0xb7, 0x05, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x78, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x78, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x78, 0x64, 0x12, 0x45, 0x0a, 0x04, 0x62, 0x61, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x52, 0x04, 0x62, 0x61, 0x75, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x31, 0x30, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x33, 0x30, 0x30, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x36, 0x30, 0x30, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32, 0x34, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x38, 0x30, 0x30, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x39, 0x36, 0x30, 0x30, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x39, 0x32, 0x30, 0x30, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x33, 0x38, 0x34, 0x30, 0x30, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35, 0x37, 0x36, 0x30, 0x30, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x31, 0x35, 0x32, 0x30, 0x30, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32, 0x33, 0x30, 0x34, 0x30, 0x30, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x36, 0x30, 0x38, 0x30, 0x30, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35, 0x37, 0x36, 0x30, 0x30, 0x30, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x39, 0x32, 0x31, 0x36, 0x30, 0x30, 0x10, 0x0f, 0x22, 0x5f, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x45, 0x58, 0x54, 0x4d, 0x53, 0x47, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4d, 0x45, 0x41, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x4c, 0x54, 0x4f, 0x50, 0x4f, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x53, 0x38, 0x35, 0x10, 0x06, 0x1a, 0xac, 0x04, 0x0a, 0x1a, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x77, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x50, 0x77, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x61, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x32, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x49, 0x32, 0x73, 0x41, 0x73, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x1a, 0xe5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0x57, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x61, 0x76, 0x65, 0x1a, 0xff, 0x05, 0x0a, 0x0f, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x1b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x46, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x61, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x92, 0x06, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61, 0x72, 0x79, 0x31, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x72, 0x79, 0x31, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x41, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x42, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6d, 0x0a, 0x14, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x12, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x77, 0x12, 0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x63, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x13, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x63, 0x77, 0x12, 0x73, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x31, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x31, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x65, 0x6c, 0x6c, 0x22, 0x63, 0x0a, 0x0e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x11, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x1b, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x18, 0x1a, 0x8a, 0x01, 0x0a, 0x15, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x70, 0x69, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x70, 0x69, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x49, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x42, 0x8e, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x12, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x2e, 0x6a, 0x61, 0x6e, 0x6b, 0x79, 0x2e, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x66, 0x69, 0x6e, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_protobufs_module_config_proto_rawDescOnce sync.Once file_protobufs_module_config_proto_rawDescData = file_protobufs_module_config_proto_rawDesc ) func file_protobufs_module_config_proto_rawDescGZIP() []byte { file_protobufs_module_config_proto_rawDescOnce.Do(func() { file_protobufs_module_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobufs_module_config_proto_rawDescData) }) return file_protobufs_module_config_proto_rawDescData } var file_protobufs_module_config_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_protobufs_module_config_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_protobufs_module_config_proto_goTypes = []interface{}{ (RemoteHardwarePinType)(0), // 0: meshtastic.RemoteHardwarePinType (ModuleConfig_DetectionSensorConfig_TriggerType)(0), // 1: meshtastic.ModuleConfig.DetectionSensorConfig.TriggerType (ModuleConfig_AudioConfig_Audio_Baud)(0), // 2: meshtastic.ModuleConfig.AudioConfig.Audio_Baud (ModuleConfig_SerialConfig_Serial_Baud)(0), // 3: meshtastic.ModuleConfig.SerialConfig.Serial_Baud (ModuleConfig_SerialConfig_Serial_Mode)(0), // 4: meshtastic.ModuleConfig.SerialConfig.Serial_Mode (ModuleConfig_CannedMessageConfig_InputEventChar)(0), // 5: meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar (*ModuleConfig)(nil), // 6: meshtastic.ModuleConfig (*RemoteHardwarePin)(nil), // 7: meshtastic.RemoteHardwarePin (*ModuleConfig_MQTTConfig)(nil), // 8: meshtastic.ModuleConfig.MQTTConfig (*ModuleConfig_MapReportSettings)(nil), // 9: meshtastic.ModuleConfig.MapReportSettings (*ModuleConfig_RemoteHardwareConfig)(nil), // 10: meshtastic.ModuleConfig.RemoteHardwareConfig (*ModuleConfig_NeighborInfoConfig)(nil), // 11: meshtastic.ModuleConfig.NeighborInfoConfig (*ModuleConfig_DetectionSensorConfig)(nil), // 12: meshtastic.ModuleConfig.DetectionSensorConfig (*ModuleConfig_AudioConfig)(nil), // 13: meshtastic.ModuleConfig.AudioConfig (*ModuleConfig_PaxcounterConfig)(nil), // 14: meshtastic.ModuleConfig.PaxcounterConfig (*ModuleConfig_SerialConfig)(nil), // 15: meshtastic.ModuleConfig.SerialConfig (*ModuleConfig_ExternalNotificationConfig)(nil), // 16: meshtastic.ModuleConfig.ExternalNotificationConfig (*ModuleConfig_StoreForwardConfig)(nil), // 17: meshtastic.ModuleConfig.StoreForwardConfig (*ModuleConfig_RangeTestConfig)(nil), // 18: meshtastic.ModuleConfig.RangeTestConfig (*ModuleConfig_TelemetryConfig)(nil), // 19: meshtastic.ModuleConfig.TelemetryConfig (*ModuleConfig_CannedMessageConfig)(nil), // 20: meshtastic.ModuleConfig.CannedMessageConfig (*ModuleConfig_AmbientLightingConfig)(nil), // 21: meshtastic.ModuleConfig.AmbientLightingConfig } var file_protobufs_module_config_proto_depIdxs = []int32{ 8, // 0: meshtastic.ModuleConfig.mqtt:type_name -> meshtastic.ModuleConfig.MQTTConfig 15, // 1: meshtastic.ModuleConfig.serial:type_name -> meshtastic.ModuleConfig.SerialConfig 16, // 2: meshtastic.ModuleConfig.external_notification:type_name -> meshtastic.ModuleConfig.ExternalNotificationConfig 17, // 3: meshtastic.ModuleConfig.store_forward:type_name -> meshtastic.ModuleConfig.StoreForwardConfig 18, // 4: meshtastic.ModuleConfig.range_test:type_name -> meshtastic.ModuleConfig.RangeTestConfig 19, // 5: meshtastic.ModuleConfig.telemetry:type_name -> meshtastic.ModuleConfig.TelemetryConfig 20, // 6: meshtastic.ModuleConfig.canned_message:type_name -> meshtastic.ModuleConfig.CannedMessageConfig 13, // 7: meshtastic.ModuleConfig.audio:type_name -> meshtastic.ModuleConfig.AudioConfig 10, // 8: meshtastic.ModuleConfig.remote_hardware:type_name -> meshtastic.ModuleConfig.RemoteHardwareConfig 11, // 9: meshtastic.ModuleConfig.neighbor_info:type_name -> meshtastic.ModuleConfig.NeighborInfoConfig 21, // 10: meshtastic.ModuleConfig.ambient_lighting:type_name -> meshtastic.ModuleConfig.AmbientLightingConfig 12, // 11: meshtastic.ModuleConfig.detection_sensor:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig 14, // 12: meshtastic.ModuleConfig.paxcounter:type_name -> meshtastic.ModuleConfig.PaxcounterConfig 0, // 13: meshtastic.RemoteHardwarePin.type:type_name -> meshtastic.RemoteHardwarePinType 9, // 14: meshtastic.ModuleConfig.MQTTConfig.map_report_settings:type_name -> meshtastic.ModuleConfig.MapReportSettings 7, // 15: meshtastic.ModuleConfig.RemoteHardwareConfig.available_pins:type_name -> meshtastic.RemoteHardwarePin 1, // 16: meshtastic.ModuleConfig.DetectionSensorConfig.detection_trigger_type:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig.TriggerType 2, // 17: meshtastic.ModuleConfig.AudioConfig.bitrate:type_name -> meshtastic.ModuleConfig.AudioConfig.Audio_Baud 3, // 18: meshtastic.ModuleConfig.SerialConfig.baud:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Baud 4, // 19: meshtastic.ModuleConfig.SerialConfig.mode:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Mode 5, // 20: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_cw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar 5, // 21: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_ccw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar 5, // 22: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_press:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar 23, // [23:23] is the sub-list for method output_type 23, // [23:23] is the sub-list for method input_type 23, // [23:23] is the sub-list for extension type_name 23, // [23:23] is the sub-list for extension extendee 0, // [0:23] is the sub-list for field type_name } func init() { file_protobufs_module_config_proto_init() } func file_protobufs_module_config_proto_init() { if File_protobufs_module_config_proto != nil { return } if !protoimpl.UnsafeEnabled { file_protobufs_module_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteHardwarePin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_MQTTConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_MapReportSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_RemoteHardwareConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_NeighborInfoConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_DetectionSensorConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_AudioConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_PaxcounterConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_SerialConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_ExternalNotificationConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_StoreForwardConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_RangeTestConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_TelemetryConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_CannedMessageConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_protobufs_module_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleConfig_AmbientLightingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_protobufs_module_config_proto_msgTypes[0].OneofWrappers = []interface{}{ (*ModuleConfig_Mqtt)(nil), (*ModuleConfig_Serial)(nil), (*ModuleConfig_ExternalNotification)(nil), (*ModuleConfig_StoreForward)(nil), (*ModuleConfig_RangeTest)(nil), (*ModuleConfig_Telemetry)(nil), (*ModuleConfig_CannedMessage)(nil), (*ModuleConfig_Audio)(nil), (*ModuleConfig_RemoteHardware)(nil), (*ModuleConfig_NeighborInfo)(nil), (*ModuleConfig_AmbientLighting)(nil), (*ModuleConfig_DetectionSensor)(nil), (*ModuleConfig_Paxcounter)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protobufs_module_config_proto_rawDesc, NumEnums: 6, NumMessages: 16, NumExtensions: 0, NumServices: 0, }, GoTypes: file_protobufs_module_config_proto_goTypes, DependencyIndexes: file_protobufs_module_config_proto_depIdxs, EnumInfos: file_protobufs_module_config_proto_enumTypes, MessageInfos: file_protobufs_module_config_proto_msgTypes, }.Build() File_protobufs_module_config_proto = out.File file_protobufs_module_config_proto_rawDesc = nil file_protobufs_module_config_proto_goTypes = nil file_protobufs_module_config_proto_depIdxs = nil }