Files
meshview/meshtastic/protobuf/module_config_pb2.py
T

393 lines
67 KiB
Python

# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: meshtastic/protobuf/module_config.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from meshtastic.protobuf import atak_pb2 as meshtastic_dot_protobuf_dot_atak__pb2
from meshtastic.protobuf import channel_pb2 as meshtastic_dot_protobuf_dot_channel__pb2
from meshtastic.protobuf import config_pb2 as meshtastic_dot_protobuf_dot_config__pb2
from meshtastic.protobuf import field_metadata_pb2 as meshtastic_dot_protobuf_dot_field__metadata__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'meshtastic/protobuf/module_config.proto\x12\x13meshtastic.protobuf\x1a\x1emeshtastic/protobuf/atak.proto\x1a!meshtastic/protobuf/channel.proto\x1a meshtastic/protobuf/config.proto\x1a(meshtastic/protobuf/field_metadata.proto\"\xfd~\n\x0cModuleConfig\x12<\n\x04mqtt\x18\x01 \x01(\x0b\x32,.meshtastic.protobuf.ModuleConfig.MQTTConfigH\x00\x12@\n\x06serial\x18\x02 \x01(\x0b\x32..meshtastic.protobuf.ModuleConfig.SerialConfigH\x00\x12]\n\x15\x65xternal_notification\x18\x03 \x01(\x0b\x32<.meshtastic.protobuf.ModuleConfig.ExternalNotificationConfigH\x00\x12M\n\rstore_forward\x18\x04 \x01(\x0b\x32\x34.meshtastic.protobuf.ModuleConfig.StoreForwardConfigH\x00\x12G\n\nrange_test\x18\x05 \x01(\x0b\x32\x31.meshtastic.protobuf.ModuleConfig.RangeTestConfigH\x00\x12\x46\n\ttelemetry\x18\x06 \x01(\x0b\x32\x31.meshtastic.protobuf.ModuleConfig.TelemetryConfigH\x00\x12O\n\x0e\x63\x61nned_message\x18\x07 \x01(\x0b\x32\x35.meshtastic.protobuf.ModuleConfig.CannedMessageConfigH\x00\x12>\n\x05\x61udio\x18\x08 \x01(\x0b\x32-.meshtastic.protobuf.ModuleConfig.AudioConfigH\x00\x12Q\n\x0fremote_hardware\x18\t \x01(\x0b\x32\x36.meshtastic.protobuf.ModuleConfig.RemoteHardwareConfigH\x00\x12M\n\rneighbor_info\x18\n \x01(\x0b\x32\x34.meshtastic.protobuf.ModuleConfig.NeighborInfoConfigH\x00\x12S\n\x10\x61mbient_lighting\x18\x0b \x01(\x0b\x32\x37.meshtastic.protobuf.ModuleConfig.AmbientLightingConfigH\x00\x12S\n\x10\x64\x65tection_sensor\x18\x0c \x01(\x0b\x32\x37.meshtastic.protobuf.ModuleConfig.DetectionSensorConfigH\x00\x12H\n\npaxcounter\x18\r \x01(\x0b\x32\x32.meshtastic.protobuf.ModuleConfig.PaxcounterConfigH\x00\x12\\\n\rstatusmessage\x18\x0e \x01(\x0b\x32\x35.meshtastic.protobuf.ModuleConfig.StatusMessageConfigB\x0c\xca\xf3\x18\x08R\x06\x32.7.20H\x00\x12\x64\n\x12traffic_management\x18\x0f \x01(\x0b\x32\x39.meshtastic.protobuf.ModuleConfig.TrafficManagementConfigB\x0b\xca\xf3\x18\x07R\x05\x32.8.0H\x00\x12G\n\x03tak\x18\x10 \x01(\x0b\x32+.meshtastic.protobuf.ModuleConfig.TAKConfigB\x0b\xca\xf3\x18\x07R\x05\x32.8.0H\x00\x12V\n\x0bmesh_beacon\x18\x11 \x01(\x0b\x32\x32.meshtastic.protobuf.ModuleConfig.MeshBeaconConfigB\x0b\xca\xf3\x18\x07R\x05\x32.8.0H\x00\x1a\xd9\x07\n\nMQTTConfig\x12\x38\n\x07\x65nabled\x18\x01 \x01(\x08\x42\'\xca\xf3\x18#:\x0cMQTT EnabledB\x13\x45nable MQTT gateway\x12\x33\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\"\xca\xf3\x18\x1e:\x07\x41\x64\x64ressB\x13MQTT server address\x12/\n\x08username\x18\x03 \x01(\tB\x1d\xca\xf3\x18\x19:\x08UsernameB\rMQTT username\x12/\n\x08password\x18\x04 \x01(\tB\x1d\xca\xf3\x18\x19:\x08PasswordB\rMQTT password\x12T\n\x12\x65ncryption_enabled\x18\x05 \x01(\x08\x42\x38\xca\xf3\x18\x34:\x12\x45ncryption EnabledB\x1eSend encrypted packets to MQTT\x12#\n\x0cjson_enabled\x18\x06 \x01(\x08\x42\r\x18\x01\xca\xf3\x18\x07Z\x05\x32.8.0\x12L\n\x0btls_enabled\x18\x07 \x01(\x08\x42\x37\xca\xf3\x18\x33:\x0bTLS EnabledB$Connect to the MQTT server over TLS.\x12/\n\x04root\x18\x08 \x01(\tB!\xca\xf3\x18\x1d:\nRoot TopicB\x0fMQTT root topic\x12{\n\x17proxy_to_client_enabled\x18\t \x01(\x08\x42Z\xca\xf3\x18V:\x11MQTT Client ProxyBAUtilizes the network connection on your phone to connect to MQTT.\x12\xb0\x02\n\x15map_reporting_enabled\x18\n \x01(\x08\x42\x90\x02\xca\xf3\x18\x8b\x02:\rMap ReportingB\xf9\x01Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name.\x12P\n\x13map_report_settings\x18\x0b \x01(\x0b\x32\x33.meshtastic.protobuf.ModuleConfig.MapReportSettings\x1a\xea\x02\n\x11MapReportSettings\x12{\n\x15publish_interval_secs\x18\x01 \x01(\rB\\\xca\xf3\x18X\x19\x00\x00\x00\x00\x00 \xac@*\x01s:\x14Map Publish IntervalB4How often a map report is published. Minimum 1 hour.\x12\x1a\n\x12position_precision\x18\x02 \x01(\r\x12\xbb\x01\n\x16should_report_location\x18\x03 \x01(\x08\x42\x9a\x01\xca\xf3\x18\x95\x01:\x0cShare on MapB~Consent to publish this node\'s details and approximate location unencrypted to the MQTT map. No map report is sent without it.R\x05\x32.6.8\x1a\x8b\x01\n\x14RemoteHardwareConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\"\n\x1a\x61llow_undefined_pin_access\x18\x02 \x01(\x08\x12>\n\x0e\x61vailable_pins\x18\x03 \x03(\x0b\x32&.meshtastic.protobuf.RemoteHardwarePin\x1a\x84\x04\n\x12NeighborInfoConfig\x12\xb2\x01\n\x07\x65nabled\x18\x01 \x01(\x08\x42\xa0\x01\xca\xf3\x18\x9b\x01:\x15Neighbor Info EnabledB\x81\x01\x45nable neighbor info broadcasting. Periodically sends information about directly-heard neighbors to help visualize mesh topology.\x12r\n\x0fupdate_interval\x18\x02 \x01(\rBY\xca\xf3\x18U\x19\x00\x00\x00\x00\x00 \xcc@*\x01s:\x0fUpdate IntervalB6How often to broadcast neighbor info. Minimum 4 hours.\x12\xc4\x01\n\x12transmit_over_lora\x18\x03 \x01(\x08\x42\xa7\x01\xca\xf3\x18\xa2\x01:\x12Transmit over LoRaB\x8b\x01Whether to transmit neighbor info over LoRa in addition to MQTT and the connected app. Not available on channels with default key and name.\x1a\xf3\n\n\x15\x44\x65tectionSensorConfig\x12\x83\x02\n\x07\x65nabled\x18\x01 \x01(\x08\x42\xf1\x01\xca\xf3\x18\xec\x01:\x18\x44\x65tection Sensor EnabledB\xcf\x01\x45nables the detection sensor module, it needs to be enabled on both the node with the sensor, and any nodes that you want to receive detection sensor text messages or view the detection sensor log and chart.\x12~\n\x16minimum_broadcast_secs\x18\x02 \x01(\rB^\xca\xf3\x18Z*\x01s:)Minimum time between detection broadcastsB*Minimum time between detection broadcasts.\x12\xbd\x01\n\x14state_broadcast_secs\x18\x03 \x01(\rB\x9e\x01\xca\xf3\x18\x99\x01*\x01s:\x18State Broadcast IntervalBzHow often to send the detection sensor state to the mesh, whether or not anything was detected. 0 sends only on detection.\x12|\n\tsend_bell\x18\x04 \x01(\x08\x42i\xca\xf3\x18\x65:\tSend BellBXSend ASCII bell with alert message. Useful for triggering external notification on bell.\x12\x37\n\x04name\x18\x05 \x01(\tB)\xca\xf3\x18%:\x04NameB\x1dSensor name for mesh messages\x12j\n\x0bmonitor_pin\x18\x06 \x01(\rBU\xca\xf3\x18Q:\x13GPIO Pin to monitorB:GPIO pin watched for state changes. 0 disables the module.\x12\x8e\x01\n\x16\x64\x65tection_trigger_type\x18\x07 \x01(\x0e\x32\x43.meshtastic.protobuf.ModuleConfig.DetectionSensorConfig.TriggerTypeB)\xca\xf3\x18%:\x0cTrigger TypeB\x15Type of trigger event\x12h\n\nuse_pullup\x18\x08 \x01(\x08\x42T\xca\xf3\x18P:\x14Use Internal Pull-upB8Enable the internal pull-up resistor on the monitor pin.\"\xf5\x01\n\x0bTriggerType\x12\x18\n\tLOGIC_LOW\x10\x00\x1a\t\xca\xf3\x18\x05:\x03Low\x12\x1a\n\nLOGIC_HIGH\x10\x01\x1a\n\xca\xf3\x18\x06:\x04High\x12$\n\x0c\x46\x41LLING_EDGE\x10\x02\x1a\x12\xca\xf3\x18\x0e:\x0c\x46\x61lling Edge\x12\"\n\x0bRISING_EDGE\x10\x03\x1a\x11\xca\xf3\x18\r:\x0bRising Edge\x12\x31\n\x16\x45ITHER_EDGE_ACTIVE_LOW\x10\x04\x1a\x15\xca\xf3\x18\x11:\x0f\x45ither Edge Low\x12\x33\n\x17\x45ITHER_EDGE_ACTIVE_HIGH\x10\x05\x1a\x16\xca\xf3\x18\x12:\x10\x45ither Edge High\x1a\xb6\x07\n\x0b\x41udioConfig\x12z\n\x0e\x63odec2_enabled\x18\x01 \x01(\x08\x42\x62\xca\xf3\x18^:\x0e\x43odec2 EnabledBLEnable Codec2 audio encoding/decoding for voice communication over the mesh.\x12M\n\x07ptt_pin\x18\x02 \x01(\rB<\xca\xf3\x18\x38:\x07PTT PinB-Push-to-talk GPIO pin number. 0 uses GPIO 39.\x12\xd3\x01\n\x07\x62itrate\x18\x03 \x01(\x0e\x32\x38.meshtastic.protobuf.ModuleConfig.AudioConfig.Audio_BaudB\x87\x01\xca\xf3\x18\x82\x01:\x07\x42itrateBwThe Codec2 bitrate to use. The sample rate is always 8 kHz. Lower bitrates use less bandwidth but reduce audio quality.\x12)\n\x06i2s_ws\x18\x04 \x01(\rB\x19\xca\xf3\x18\x15:\x13I2S Word Select Pin\x12%\n\x06i2s_sd\x18\x05 \x01(\rB\x15\xca\xf3\x18\x11:\x0fI2S Data In Pin\x12\'\n\x07i2s_din\x18\x06 \x01(\rB\x16\xca\xf3\x18\x12:\x10I2S Data Out Pin\x12$\n\x07i2s_sck\x18\x07 \x01(\rB\x13\xca\xf3\x18\x0f:\rI2S Clock Pin\"\xe4\x02\n\nAudio_Baud\x12!\n\x0e\x43ODEC2_DEFAULT\x10\x00\x1a\r\xca\xf3\x18\t:\x07\x44\x65\x66\x61ult\x12\x1f\n\x0b\x43ODEC2_3200\x10\x01\x1a\x0e\xca\xf3\x18\n:\x08\x33\x32\x30\x30 bps\x12\x1f\n\x0b\x43ODEC2_2400\x10\x02\x1a\x0e\xca\xf3\x18\n:\x08\x32\x34\x30\x30 bps\x12\x1f\n\x0b\x43ODEC2_1600\x10\x03\x1a\x0e\xca\xf3\x18\n:\x08\x31\x36\x30\x30 bps\x12\x1f\n\x0b\x43ODEC2_1400\x10\x04\x1a\x0e\xca\xf3\x18\n:\x08\x31\x34\x30\x30 bps\x12\x1f\n\x0b\x43ODEC2_1300\x10\x05\x1a\x0e\xca\xf3\x18\n:\x08\x31\x33\x30\x30 bps\x12\x1f\n\x0b\x43ODEC2_1200\x10\x06\x1a\x0e\xca\xf3\x18\n:\x08\x31\x32\x30\x30 bps\x12\x12\n\nCODEC2_700\x10\x07\x1a\x02\x08\x01\x12\x13\n\x0b\x43ODEC2_700B\x10\x08\x1a\x02\x08\x01\x12%\n\x0b\x43ODEC2_700C\x10\t\x1a\x14\xca\xf3\x18\x10:\x0e\x37\x30\x30 bps (700C)\x12\x1d\n\nCODEC2_450\x10\n\x1a\r\xca\xf3\x18\t:\x07\x34\x35\x30 bps\x1a\xfd\x03\n\x10PaxcounterConfig\x12\xbf\x01\n\x07\x65nabled\x18\x01 \x01(\x08\x42\xad\x01\xca\xf3\x18\xa8\x01:\x13PAX Counter EnabledB\x90\x01When enabled, the PAX Counter module counts nearby WiFi and Bluetooth devices. Both WiFi and Bluetooth must be disabled for PAX counter to work.\x12n\n\x1apaxcounter_update_interval\x18\x02 \x01(\rBJ\xca\xf3\x18\x46*\x01s:\x0fUpdate IntervalB0How often to send the device counts to the mesh.\x12\\\n\x0ewifi_threshold\x18\x03 \x01(\x05\x42\x44\xca\xf3\x18@*\x03\x64\x42m:\x0eWiFi ThresholdB)RSSI threshold for counting WiFi devices.\x12Y\n\rble_threshold\x18\x04 \x01(\x05\x42\x42\xca\xf3\x18>*\x03\x64\x42m:\rBLE ThresholdB(RSSI threshold for counting BLE devices.\x1a\xf9\x07\n\x17TrafficManagementConfig\x12\x8b\x01\n\x1aposition_min_interval_secs\x18\x04 \x01(\rBg\xca\xf3\x18\x63*\x01s:\x19Minimum Position IntervalBCPositions from the same node arriving sooner than this are dropped.\x12\xe2\x01\n!nodeinfo_direct_response_max_hops\x18\x06 \x01(\rB\xb6\x01\xca\xf3\x18\xb1\x01!\x00\x00\x00\x00\x00\x00\x08@:\x18\x44irect NodeInfo Max HopsB\x8b\x01\x41nswer NodeInfo requests from cache for requestors within this many hops. Capped at 3 on routers; other roles answer direct neighbors only.\x12\x65\n\x16rate_limit_window_secs\x18\x08 \x01(\rBE\xca\xf3\x18\x41*\x01s:\x11Rate Limit WindowB)The time window packets are counted over.\x12u\n\x16rate_limit_max_packets\x18\t \x01(\rBU\xca\xf3\x18Q!\x00\x00\x00\x00\x00\x00N@:\x16Rate Limit Max PacketsB.The most packets one node may send per window.\x12\x95\x01\n\x18unknown_packet_threshold\x18\x0b \x01(\rBs\xca\xf3\x18o!\x00\x00\x00\x00\x00\x00N@:\x18Unknown Packet ThresholdBJUndecryptable packets one node may send in 5 minutes before it is dropped.J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08J\x04\x08\n\x10\x0bJ\x04\x08\x0c\x10\rJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0fR\x07\x65nabledR\x16position_dedup_enabledR\x17position_precision_bitsR\x18nodeinfo_direct_responseR\x12rate_limit_enabledR\x14\x64rop_unknown_enabledR\x15\x65xhaust_hop_telemetryR\x14\x65xhaust_hop_positionR\x14router_preserve_hops\x1a\xdc\x0b\n\x0cSerialConfig\x12;\n\x07\x65nabled\x18\x01 \x01(\x08\x42*\xca\xf3\x18&:\x0eSerial EnabledB\x14\x45nable serial module\x12`\n\x04\x65\x63ho\x18\x02 \x01(\x08\x42R\xca\xf3\x18N:\x04\x45\x63hoBFIf set, any packets you send will be echoed back over the serial port.\x12=\n\x03rxd\x18\x03 \x01(\rB0\xca\xf3\x18,:\x1bReceive data (rxd) GPIO pinB\rRX pin number\x12>\n\x03txd\x18\x04 \x01(\rB1\xca\xf3\x18-:\x1cTransmit data (txd) GPIO pinB\rTX pin number\x12\x66\n\x04\x62\x61ud\x18\x05 \x01(\x0e\x32:.meshtastic.protobuf.ModuleConfig.SerialConfig.Serial_BaudB\x1c\xca\xf3\x18\x18:\x04\x42\x61udB\x10Serial baud rate\x12~\n\x07timeout\x18\x06 \x01(\rBm\xca\xf3\x18i*\x02ms:\x07TimeoutBZHow long to wait before treating received serial data as a complete packet. 0 uses 250 ms.\x12r\n\x04mode\x18\x07 \x01(\x0e\x32:.meshtastic.protobuf.ModuleConfig.SerialConfig.Serial_ModeB(\xca\xf3\x18$:\x04ModeB\x1cSerial module operation mode\x12$\n\x1coverride_console_serial_port\x18\x08 \x01(\x08\"\xa2\x04\n\x0bSerial_Baud\x12\x1f\n\x0c\x42\x41UD_DEFAULT\x10\x00\x1a\r\xca\xf3\x18\t:\x07\x44\x65\x66\x61ult\x12\x1c\n\x08\x42\x41UD_110\x10\x01\x1a\x0e\xca\xf3\x18\n:\x08\x31\x31\x30 Baud\x12\x1c\n\x08\x42\x41UD_300\x10\x02\x1a\x0e\xca\xf3\x18\n:\x08\x33\x30\x30 Baud\x12\x1c\n\x08\x42\x41UD_600\x10\x03\x1a\x0e\xca\xf3\x18\n:\x08\x36\x30\x30 Baud\x12\x1e\n\tBAUD_1200\x10\x04\x1a\x0f\xca\xf3\x18\x0b:\t1200 Baud\x12\x1e\n\tBAUD_2400\x10\x05\x1a\x0f\xca\xf3\x18\x0b:\t2400 Baud\x12\x1e\n\tBAUD_4800\x10\x06\x1a\x0f\xca\xf3\x18\x0b:\t4800 Baud\x12\x1e\n\tBAUD_9600\x10\x07\x1a\x0f\xca\xf3\x18\x0b:\t9600 Baud\x12 \n\nBAUD_19200\x10\x08\x1a\x10\xca\xf3\x18\x0c:\n19200 Baud\x12 \n\nBAUD_38400\x10\t\x1a\x10\xca\xf3\x18\x0c:\n38400 Baud\x12 \n\nBAUD_57600\x10\n\x1a\x10\xca\xf3\x18\x0c:\n57600 Baud\x12\"\n\x0b\x42\x41UD_115200\x10\x0b\x1a\x11\xca\xf3\x18\r:\x0b\x31\x31\x35\x32\x30\x30 Baud\x12\"\n\x0b\x42\x41UD_230400\x10\x0c\x1a\x11\xca\xf3\x18\r:\x0b\x32\x33\x30\x34\x30\x30 Baud\x12\"\n\x0b\x42\x41UD_460800\x10\r\x1a\x11\xca\xf3\x18\r:\x0b\x34\x36\x30\x38\x30\x30 Baud\x12\"\n\x0b\x42\x41UD_576000\x10\x0e\x1a\x11\xca\xf3\x18\r:\x0b\x35\x37\x36\x30\x30\x30 Baud\x12\"\n\x0b\x42\x41UD_921600\x10\x0f\x1a\x11\xca\xf3\x18\r:\x0b\x39\x32\x31\x36\x30\x30 Baud\"\x86\x02\n\x0bSerial_Mode\x12\x1a\n\x07\x44\x45\x46\x41ULT\x10\x00\x1a\r\xca\xf3\x18\t:\x07\x44\x65\x66\x61ult\x12\x18\n\x06SIMPLE\x10\x01\x1a\x0c\xca\xf3\x18\x08:\x06Simple\x12\x1a\n\x05PROTO\x10\x02\x1a\x0f\xca\xf3\x18\x0b:\tProtobufs\x12\x1f\n\x07TEXTMSG\x10\x03\x1a\x12\xca\xf3\x18\x0e:\x0cText Message\x12\x1e\n\x04NMEA\x10\x04\x1a\x14\xca\xf3\x18\x10:\x0eNMEA Positions\x12\x1a\n\x07\x43\x41LTOPO\x10\x05\x1a\r\xca\xf3\x18\t:\x07\x43\x61lTopo\x12\x08\n\x04WS85\x10\x06\x12\r\n\tVE_DIRECT\x10\x07\x12\r\n\tMS_CONFIG\x10\x08\x12\x07\n\x03LOG\x10\t\x12\x0b\n\x07LOGTEXT\x10\n\x12\n\n\x06MODBUS\x10\x0b\x1a\x9f\r\n\x1a\x45xternalNotificationConfig\x12S\n\x07\x65nabled\x18\x01 \x01(\x08\x42\x42\xca\xf3\x18>:\x1d\x45xternal Notification EnabledB\x1d\x45nable external notifications\x12`\n\toutput_ms\x18\x02 \x01(\rBM\xca\xf3\x18I*\x02ms:\x14GPIO Output DurationB-In GPIO mode, how long to keep the output on.\x12s\n\x06output\x18\x03 \x01(\rBc\xca\xf3\x18_:\x0fOutput pin GPIOBLGPIO pin driven on notification. Defaults to the board\'s EXT_NOTIFY_OUT pin.\x12M\n\x0coutput_vibra\x18\x08 \x01(\rB7\xca\xf3\x18\x33:\x15Output pin vibra GPIOB\x1aVibration motor output pin\x12\x46\n\routput_buzzer\x18\t \x01(\rB/\xca\xf3\x18+:\x16Output pin buzzer GPIOB\x11\x42uzzer output pin\x12q\n\x06\x61\x63tive\x18\x04 \x01(\x08\x42\x61\xca\xf3\x18]:\x06\x41\x63tiveBSIf enabled, the \'output\' Pin will be pulled active high, disabled means active low.\x12V\n\ralert_message\x18\x05 \x01(\x08\x42?\xca\xf3\x18;:\x1e\x41lert when receiving a messageB\x19\x41lert on incoming message\x12\x65\n\x13\x61lert_message_vibra\x18\n \x01(\x08\x42H\xca\xf3\x18\x44:\x11Vibra Motor AlertB/Alert GPIO vibra motor when receiving a message\x12h\n\x14\x61lert_message_buzzer\x18\x0b \x01(\x08\x42J\xca\xf3\x18\x46:*Alert GPIO buzzer when receiving a messageB\x18\x42uzz on incoming message\x12N\n\nalert_bell\x18\x06 \x01(\x08\x42:\xca\xf3\x18\x36:\x1b\x41lert when receiving a bellB\x17\x41lert on bell character\x12g\n\x10\x61lert_bell_vibra\x18\x0c \x01(\x08\x42M\xca\xf3\x18I:,Alert GPIO vibra motor when receiving a bellB\x19Vibrate on bell character\x12`\n\x11\x61lert_bell_buzzer\x18\r \x01(\x08\x42\x45\xca\xf3\x18\x41:\'Alert GPIO buzzer when receiving a bellB\x16\x42uzz on bell character\x12\xee\x01\n\x07use_pwm\x18\x07 \x01(\x08\x42\xdc\x01\xca\xf3\x18\xd7\x01:\x0eUse PWM BuzzerB\xc4\x01Use a PWM output (like the RAK Buzzer) for tunes instead of an on/off output. This will ignore the output, output duration and active settings and use the device config buzzer GPIO option instead.\x12K\n\x0bnag_timeout\x18\x0e \x01(\rB6\xca\xf3\x18\x32*\x01s:\x0bNag TimeoutB How long the notification lasts.\x12\xc8\x01\n\x11use_i2s_as_buzzer\x18\x0f \x01(\x08\x42\xac\x01\xca\xf3\x18\xa7\x01:\x11Use I2S As BuzzerB\x91\x01\x45nables 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.\x1a\xb5\x05\n\x12StoreForwardConfig\x12W\n\x07\x65nabled\x18\x01 \x01(\x08\x42\x46\xca\xf3\x18\x42:\x19Store and Forward EnabledB%Enables the store and forward module.\x12]\n\theartbeat\x18\x02 \x01(\x08\x42J\xca\xf3\x18\x46:\x0eSend HeartbeatB4Send a heartbeat to advertise the server\'s presence.\x12s\n\x07records\x18\x03 \x01(\rBb\xca\xf3\x18^:\x11Number of recordsBIMaximum number of messages to store. 0 uses three quarters of free PSRAM.\x12x\n\x12history_return_max\x18\x04 \x01(\rB\\\xca\xf3\x18X:\x12History Return MaxBBMaximum number of stored messages returned per request. 0 uses 25.\x12\x7f\n\x15history_return_window\x18\x05 \x01(\rB`\xca\xf3\x18\\:\x15History Return WindowBCHow far back, in minutes, stored messages are returned. 0 uses 240.\x12w\n\tis_server\x18\x06 \x01(\x08\x42\x64\xca\xf3\x18`:\x06ServerBVEnable this device as a Store and Forward server. Requires an ESP32 device with PSRAM.\x1a\x8f\x03\n\x0fRangeTestConfig\x12\x43\n\x07\x65nabled\x18\x01 \x01(\x08\x42\x32\xca\xf3\x18.:\x12Range Test EnabledB\x18\x45nable range test module\x12\x85\x01\n\x06sender\x18\x02 \x01(\rBu\xca\xf3\x18q*\x01s:\x0fSender IntervalB[This device will send out range test messages on the selected interval. 0 disables sending.\x12\x87\x01\n\x04save\x18\x03 \x01(\x08\x42y\xca\xf3\x18u:\x04SaveBmSaves a CSV with the range test message details, currently only available on ESP32 devices with a web server.\x12%\n\x0f\x63lear_on_reboot\x18\x04 \x01(\x08\x42\x0c\xca\xf3\x18\x08R\x06\x32.7.11\x1a\x97\x0b\n\x0fTelemetryConfig\x12r\n\x16\x64\x65vice_update_interval\x18\x01 \x01(\rBR\xca\xf3\x18N*\x01s:\x17\x44\x65vice Metrics IntervalB0How often device metrics are sent over the mesh.\x12\x81\x01\n\x1b\x65nvironment_update_interval\x18\x02 \x01(\rB\\\xca\xf3\x18X*\x01s:\x1c\x45nvironment Metrics IntervalB5How often environment metrics are sent over the mesh.\x12l\n\x1f\x65nvironment_measurement_enabled\x18\x03 \x01(\x08\x42\x43\xca\xf3\x18?:\x1b\x45nvironment Metrics EnabledB Collect environment measurements\x12k\n\x1a\x65nvironment_screen_enabled\x18\x04 \x01(\x08\x42G\xca\xf3\x18\x43:\x15Show on device screenB*Display environment measurements on device\x12\x63\n\x1e\x65nvironment_display_fahrenheit\x18\x05 \x01(\x08\x42;\xca\xf3\x18\x37:\x12\x44isplay FahrenheitB!Display environment in Fahrenheit\x12[\n\x13\x61ir_quality_enabled\x18\x06 \x01(\x08\x42>\xca\xf3\x18::\x1b\x41ir Quality Metrics EnabledB\x1b\x43ollect air quality metrics\x12z\n\x14\x61ir_quality_interval\x18\x07 \x01(\rB\\\xca\xf3\x18X*\x01s:\x1c\x41ir Quality Metrics IntervalB5How often air quality metrics are sent over the mesh.\x12Y\n\x19power_measurement_enabled\x18\x08 \x01(\x08\x42\x36\xca\xf3\x18\x32:\x19Power Measurement EnabledB\x15\x43ollect power metrics\x12o\n\x15power_update_interval\x18\t \x01(\rBP\xca\xf3\x18L*\x01s:\x16Power Metrics IntervalB/How often power metrics are sent over the mesh.\x12Q\n\x14power_screen_enabled\x18\n \x01(\x08\x42\x33\xca\xf3\x18/:\x0cPower ScreenB\x1f\x44isplay power metrics on device\x12\"\n\x1ahealth_measurement_enabled\x18\x0b \x01(\x08\x12\x1e\n\x16health_update_interval\x18\x0c \x01(\r\x12\x1d\n\x15health_screen_enabled\x18\r \x01(\x08\x12\xbe\x01\n\x18\x64\x65vice_telemetry_enabled\x18\x0e \x01(\x08\x42\x9b\x01\xca\xf3\x18\x96\x01:\x18\x42roadcast Device MetricsBrEnable broadcasting device metrics to the mesh network. When disabled, metrics are only sent to connected clients.R\x06\x32.7.13\x12\x30\n\x1a\x61ir_quality_screen_enabled\x18\x0f \x01(\x08\x42\x0c\xca\xf3\x18\x08R\x06\x32.7.18\x1a\xfa\t\n\x13\x43\x61nnedMessageConfig\x12\x44\n\x0frotary1_enabled\x18\x01 \x01(\x08\x42+\xca\xf3\x18\':\x0eRotary EncoderB\x15\x45nable rotary encoder\x12K\n\x11inputbroker_pin_a\x18\x02 \x01(\rB0\xca\xf3\x18,:\x05Pin AB#GPIO pin for rotary encoder A port.\x12K\n\x11inputbroker_pin_b\x18\x03 \x01(\rB0\xca\xf3\x18,:\x05Pin BB#GPIO pin for rotary encoder B port.\x12V\n\x15inputbroker_pin_press\x18\x04 \x01(\rB7\xca\xf3\x18\x33:\tPress PinB&GPIO pin for the encoder press button.\x12\xa4\x01\n\x14inputbroker_event_cw\x18\x05 \x01(\x0e\x32\x44.meshtastic.protobuf.ModuleConfig.CannedMessageConfig.InputEventCharB@\xca\xf3\x18<:\x16\x43lockwise Rotary EventB\"Input event for clockwise rotation\x12\xb4\x01\n\x15inputbroker_event_ccw\x18\x06 \x01(\x0e\x32\x44.meshtastic.protobuf.ModuleConfig.CannedMessageConfig.InputEventCharBO\xca\xf3\x18K:\x1d\x43ounterclockwise Rotary EventB*Input event for counter-clockwise rotation\x12\x9f\x01\n\x17inputbroker_event_press\x18\x07 \x01(\x0e\x32\x44.meshtastic.protobuf.ModuleConfig.CannedMessageConfig.InputEventCharB8\xca\xf3\x18\x34:\x13\x45ncoder Press EventB\x1dInput event for encoder press\x12P\n\x0fupdown1_enabled\x18\x08 \x01(\x08\x42\x37\xca\xf3\x18\x33:\x14Up/Down/Select InputB\x1b\x45nable up/down/select input\x12\x1e\n\x07\x65nabled\x18\t \x01(\x08\x42\r\x18\x01\xca\xf3\x18\x07Z\x05\x32.7.0\x12)\n\x12\x61llow_input_source\x18\n \x01(\tB\r\x18\x01\xca\xf3\x18\x07Z\x05\x32.7.0\x12\x45\n\tsend_bell\x18\x0b \x01(\x08\x42\x32\xca\xf3\x18.:\tSend BellB!Send bell character with messages\"\xc6\x01\n\x0eInputEventChar\x12\x14\n\x04NONE\x10\x00\x1a\n\xca\xf3\x18\x06:\x04None\x12\x10\n\x02UP\x10\x11\x1a\x08\xca\xf3\x18\x04:\x02Up\x12\x14\n\x04\x44OWN\x10\x12\x1a\n\xca\xf3\x18\x06:\x04\x44own\x12\x14\n\x04LEFT\x10\x13\x1a\n\xca\xf3\x18\x06:\x04Left\x12\x16\n\x05RIGHT\x10\x14\x1a\x0b\xca\xf3\x18\x07:\x05Right\x12\x18\n\x06SELECT\x10\n\x1a\x0c\xca\xf3\x18\x08:\x06Select\x12\x14\n\x04\x42\x41\x43K\x10\x1b\x1a\n\xca\xf3\x18\x06:\x04\x42\x61\x63k\x12\x18\n\x06\x43\x41NCEL\x10\x18\x1a\x0c\xca\xf3\x18\x08:\x06\x43\x61ncel\x1a\xd1\x04\n\x15\x41mbientLightingConfig\x12\x41\n\tled_state\x18\x01 \x01(\x08\x42.\xca\xf3\x18*:\tLED StateB\x1dThe state of the LED (on/off)\x12t\n\x07\x63urrent\x18\x02 \x01(\rBc\xca\xf3\x18_\x19\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\x00?@:\x07\x43urrentB!Drive current for the LED output.J\x1fled|brightness|ambient|lighting\x12{\n\x03red\x18\x03 \x01(\rBn\xca\xf3\x18j\x19\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\xe0o@:\x03RedB*The red level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting\x12\x81\x01\n\x05green\x18\x04 \x01(\rBr\xca\xf3\x18n\x19\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\xe0o@:\x05GreenB,The green level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting\x12~\n\x04\x62lue\x18\x05 \x01(\rBp\xca\xf3\x18l\x19\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\xe0o@:\x04\x42lueB+The blue level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting\x1a*\n\x13StatusMessageConfig\x12\x13\n\x0bnode_status\x18\x01 \x01(\t\x1a\x84\t\n\x10MeshBeaconConfig\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12+\n\x1e\x62roadcast_offer_frequency_slot\x18\x02 \x01(\rH\x00\x88\x01\x01\x12X\n\x11\x62roadcast_message\x18\x04 \x01(\tB=\xca\xf3\x18\x39:\x07MessageB.Message for beacon broadcasts, up to 60 bytes.\x12\x45\n\x17\x62roadcast_offer_channel\x18\x05 \x01(\x0b\x32$.meshtastic.protobuf.ChannelSettings\x12Q\n\x16\x62roadcast_offer_region\x18\x06 \x01(\x0e\x32\x31.meshtastic.protobuf.Config.LoRaConfig.RegionCode\x12W\n\x16\x62roadcast_offer_preset\x18\x07 \x01(\x0e\x32\x32.meshtastic.protobuf.Config.LoRaConfig.ModemPresetH\x01\x88\x01\x01\x12m\n\x17\x62roadcast_interval_secs\x18\x0b \x01(\rBL\xca\xf3\x18H\x19\x00\x00\x00\x00\x00 \xac@*\x01s:\x08IntervalB0How often a beacon is broadcast. Minimum 1 hour.\x12]\n\x11\x62roadcast_targets\x18\r \x03(\x0b\x32\x42.meshtastic.protobuf.ModuleConfig.MeshBeaconConfig.BroadcastTarget\x1a\x86\x02\n\x0f\x42roadcastTarget\x12G\n\x06preset\x18\x01 \x01(\x0e\x32\x32.meshtastic.protobuf.Config.LoRaConfig.ModemPresetH\x00\x88\x01\x01\x12\x41\n\x06region\x18\x02 \x01(\x0e\x32\x31.meshtastic.protobuf.Config.LoRaConfig.RegionCode\x12\x1a\n\rchannel_index\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0e\x66requency_slot\x18\x05 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_presetB\x10\n\x0e_channel_indexB\x11\n\x0f_frequency_slot\"b\n\x05\x46lags\x12\r\n\tFLAG_NONE\x10\x00\x12\x17\n\x13\x46LAG_LISTEN_ENABLED\x10\x01\x12\x1a\n\x16\x46LAG_BROADCAST_ENABLED\x10\x02\x12\x15\n\x11\x46LAG_LEGACY_SPLIT\x10\x04\x42!\n\x1f_broadcast_offer_frequency_slotB\x19\n\x17_broadcast_offer_presetJ\x04\x08\x03\x10\x04J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0bR\x16\x62roadcast_send_as_nodeR\x14\x62roadcast_on_channelR\x13\x62roadcast_on_regionR\x13\x62roadcast_on_preset\x1a\x9c\x01\n\tTAKConfig\x12\x43\n\x04team\x18\x01 \x01(\x0e\x32\x19.meshtastic.protobuf.TeamB\x1a\xca\xf3\x18\x16:\x04TeamB\x0eTAK team color\x12J\n\x04role\x18\x02 \x01(\x0e\x32\x1f.meshtastic.protobuf.MemberRoleB\x1b\xca\xf3\x18\x17:\x04RoleB\x0fTAK member roleB\x11\n\x0fpayload_variant\"m\n\x11RemoteHardwarePin\x12\x10\n\x08gpio_pin\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x38\n\x04type\x18\x03 \x01(\x0e\x32*.meshtastic.protobuf.RemoteHardwarePinType*I\n\x15RemoteHardwarePinType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x44IGITAL_READ\x10\x01\x12\x11\n\rDIGITAL_WRITE\x10\x02\x42h\n\x14org.meshtastic.protoB\x12ModuleConfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.protobuf.module_config_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\024org.meshtastic.protoB\022ModuleConfigProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
_MODULECONFIG_MQTTCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030#:\014MQTT EnabledB\023Enable MQTT gateway'
_MODULECONFIG_MQTTCONFIG.fields_by_name['address']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['address']._serialized_options = b'\312\363\030\036:\007AddressB\023MQTT server address'
_MODULECONFIG_MQTTCONFIG.fields_by_name['username']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['username']._serialized_options = b'\312\363\030\031:\010UsernameB\rMQTT username'
_MODULECONFIG_MQTTCONFIG.fields_by_name['password']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['password']._serialized_options = b'\312\363\030\031:\010PasswordB\rMQTT password'
_MODULECONFIG_MQTTCONFIG.fields_by_name['encryption_enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['encryption_enabled']._serialized_options = b'\312\363\0304:\022Encryption EnabledB\036Send encrypted packets to MQTT'
_MODULECONFIG_MQTTCONFIG.fields_by_name['json_enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['json_enabled']._serialized_options = b'\030\001\312\363\030\007Z\0052.8.0'
_MODULECONFIG_MQTTCONFIG.fields_by_name['tls_enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['tls_enabled']._serialized_options = b'\312\363\0303:\013TLS EnabledB$Connect to the MQTT server over TLS.'
_MODULECONFIG_MQTTCONFIG.fields_by_name['root']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['root']._serialized_options = b'\312\363\030\035:\nRoot TopicB\017MQTT root topic'
_MODULECONFIG_MQTTCONFIG.fields_by_name['proxy_to_client_enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['proxy_to_client_enabled']._serialized_options = b'\312\363\030V:\021MQTT Client ProxyBAUtilizes the network connection on your phone to connect to MQTT.'
_MODULECONFIG_MQTTCONFIG.fields_by_name['map_reporting_enabled']._options = None
_MODULECONFIG_MQTTCONFIG.fields_by_name['map_reporting_enabled']._serialized_options = b'\312\363\030\213\002:\rMap ReportingB\371\001Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name.'
_MODULECONFIG_MAPREPORTSETTINGS.fields_by_name['publish_interval_secs']._options = None
_MODULECONFIG_MAPREPORTSETTINGS.fields_by_name['publish_interval_secs']._serialized_options = b'\312\363\030X\031\000\000\000\000\000 \254@*\001s:\024Map Publish IntervalB4How often a map report is published. Minimum 1 hour.'
_MODULECONFIG_MAPREPORTSETTINGS.fields_by_name['should_report_location']._options = None
_MODULECONFIG_MAPREPORTSETTINGS.fields_by_name['should_report_location']._serialized_options = b'\312\363\030\225\001:\014Share on MapB~Consent to publish this node\'s details and approximate location unencrypted to the MQTT map. No map report is sent without it.R\0052.6.8'
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030\233\001:\025Neighbor Info EnabledB\201\001Enable neighbor info broadcasting. Periodically sends information about directly-heard neighbors to help visualize mesh topology.'
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['update_interval']._options = None
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['update_interval']._serialized_options = b'\312\363\030U\031\000\000\000\000\000 \314@*\001s:\017Update IntervalB6How often to broadcast neighbor info. Minimum 4 hours.'
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['transmit_over_lora']._options = None
_MODULECONFIG_NEIGHBORINFOCONFIG.fields_by_name['transmit_over_lora']._serialized_options = b'\312\363\030\242\001:\022Transmit over LoRaB\213\001Whether to transmit neighbor info over LoRa in addition to MQTT and the connected app. Not available on channels with default key and name.'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["LOGIC_LOW"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["LOGIC_LOW"]._serialized_options = b'\312\363\030\005:\003Low'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["LOGIC_HIGH"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["LOGIC_HIGH"]._serialized_options = b'\312\363\030\006:\004High'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["FALLING_EDGE"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["FALLING_EDGE"]._serialized_options = b'\312\363\030\016:\014Falling Edge'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["RISING_EDGE"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["RISING_EDGE"]._serialized_options = b'\312\363\030\r:\013Rising Edge'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["EITHER_EDGE_ACTIVE_LOW"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["EITHER_EDGE_ACTIVE_LOW"]._serialized_options = b'\312\363\030\021:\017Either Edge Low'
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["EITHER_EDGE_ACTIVE_HIGH"]._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE.values_by_name["EITHER_EDGE_ACTIVE_HIGH"]._serialized_options = b'\312\363\030\022:\020Either Edge High'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030\354\001:\030Detection Sensor EnabledB\317\001Enables the detection sensor module, it needs to be enabled on both the node with the sensor, and any nodes that you want to receive detection sensor text messages or view the detection sensor log and chart.'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['minimum_broadcast_secs']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['minimum_broadcast_secs']._serialized_options = b'\312\363\030Z*\001s:)Minimum time between detection broadcastsB*Minimum time between detection broadcasts.'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['state_broadcast_secs']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['state_broadcast_secs']._serialized_options = b'\312\363\030\231\001*\001s:\030State Broadcast IntervalBzHow often to send the detection sensor state to the mesh, whether or not anything was detected. 0 sends only on detection.'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['send_bell']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['send_bell']._serialized_options = b'\312\363\030e:\tSend BellBXSend ASCII bell with alert message. Useful for triggering external notification on bell.'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['name']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['name']._serialized_options = b'\312\363\030%:\004NameB\035Sensor name for mesh messages'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['monitor_pin']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['monitor_pin']._serialized_options = b'\312\363\030Q:\023GPIO Pin to monitorB:GPIO pin watched for state changes. 0 disables the module.'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['detection_trigger_type']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['detection_trigger_type']._serialized_options = b'\312\363\030%:\014Trigger TypeB\025Type of trigger event'
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['use_pullup']._options = None
_MODULECONFIG_DETECTIONSENSORCONFIG.fields_by_name['use_pullup']._serialized_options = b'\312\363\030P:\024Use Internal Pull-upB8Enable the internal pull-up resistor on the monitor pin.'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_DEFAULT"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_DEFAULT"]._serialized_options = b'\312\363\030\t:\007Default'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_3200"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_3200"]._serialized_options = b'\312\363\030\n:\0103200 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_2400"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_2400"]._serialized_options = b'\312\363\030\n:\0102400 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1600"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1600"]._serialized_options = b'\312\363\030\n:\0101600 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1400"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1400"]._serialized_options = b'\312\363\030\n:\0101400 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1300"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1300"]._serialized_options = b'\312\363\030\n:\0101300 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1200"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_1200"]._serialized_options = b'\312\363\030\n:\0101200 bps'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700"]._serialized_options = b'\010\001'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700B"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700B"]._serialized_options = b'\010\001'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700C"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_700C"]._serialized_options = b'\312\363\030\020:\016700 bps (700C)'
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_450"]._options = None
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD.values_by_name["CODEC2_450"]._serialized_options = b'\312\363\030\t:\007450 bps'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['codec2_enabled']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['codec2_enabled']._serialized_options = b'\312\363\030^:\016Codec2 EnabledBLEnable Codec2 audio encoding/decoding for voice communication over the mesh.'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['ptt_pin']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['ptt_pin']._serialized_options = b'\312\363\0308:\007PTT PinB-Push-to-talk GPIO pin number. 0 uses GPIO 39.'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['bitrate']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['bitrate']._serialized_options = b'\312\363\030\202\001:\007BitrateBwThe Codec2 bitrate to use. The sample rate is always 8 kHz. Lower bitrates use less bandwidth but reduce audio quality.'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_ws']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_ws']._serialized_options = b'\312\363\030\025:\023I2S Word Select Pin'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_sd']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_sd']._serialized_options = b'\312\363\030\021:\017I2S Data In Pin'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_din']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_din']._serialized_options = b'\312\363\030\022:\020I2S Data Out Pin'
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_sck']._options = None
_MODULECONFIG_AUDIOCONFIG.fields_by_name['i2s_sck']._serialized_options = b'\312\363\030\017:\rI2S Clock Pin'
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030\250\001:\023PAX Counter EnabledB\220\001When enabled, the PAX Counter module counts nearby WiFi and Bluetooth devices. Both WiFi and Bluetooth must be disabled for PAX counter to work.'
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['paxcounter_update_interval']._options = None
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['paxcounter_update_interval']._serialized_options = b'\312\363\030F*\001s:\017Update IntervalB0How often to send the device counts to the mesh.'
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['wifi_threshold']._options = None
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['wifi_threshold']._serialized_options = b'\312\363\030@*\003dBm:\016WiFi ThresholdB)RSSI threshold for counting WiFi devices.'
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['ble_threshold']._options = None
_MODULECONFIG_PAXCOUNTERCONFIG.fields_by_name['ble_threshold']._serialized_options = b'\312\363\030>*\003dBm:\rBLE ThresholdB(RSSI threshold for counting BLE devices.'
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['position_min_interval_secs']._options = None
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['position_min_interval_secs']._serialized_options = b'\312\363\030c*\001s:\031Minimum Position IntervalBCPositions from the same node arriving sooner than this are dropped.'
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['nodeinfo_direct_response_max_hops']._options = None
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['nodeinfo_direct_response_max_hops']._serialized_options = b'\312\363\030\261\001!\000\000\000\000\000\000\010@:\030Direct NodeInfo Max HopsB\213\001Answer NodeInfo requests from cache for requestors within this many hops. Capped at 3 on routers; other roles answer direct neighbors only.'
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['rate_limit_window_secs']._options = None
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['rate_limit_window_secs']._serialized_options = b'\312\363\030A*\001s:\021Rate Limit WindowB)The time window packets are counted over.'
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['rate_limit_max_packets']._options = None
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['rate_limit_max_packets']._serialized_options = b'\312\363\030Q!\000\000\000\000\000\000N@:\026Rate Limit Max PacketsB.The most packets one node may send per window.'
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['unknown_packet_threshold']._options = None
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG.fields_by_name['unknown_packet_threshold']._serialized_options = b'\312\363\030o!\000\000\000\000\000\000N@:\030Unknown Packet ThresholdBJUndecryptable packets one node may send in 5 minutes before it is dropped.'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_DEFAULT"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_DEFAULT"]._serialized_options = b'\312\363\030\t:\007Default'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_110"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_110"]._serialized_options = b'\312\363\030\n:\010110 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_300"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_300"]._serialized_options = b'\312\363\030\n:\010300 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_600"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_600"]._serialized_options = b'\312\363\030\n:\010600 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_1200"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_1200"]._serialized_options = b'\312\363\030\013:\t1200 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_2400"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_2400"]._serialized_options = b'\312\363\030\013:\t2400 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_4800"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_4800"]._serialized_options = b'\312\363\030\013:\t4800 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_9600"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_9600"]._serialized_options = b'\312\363\030\013:\t9600 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_19200"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_19200"]._serialized_options = b'\312\363\030\014:\n19200 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_38400"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_38400"]._serialized_options = b'\312\363\030\014:\n38400 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_57600"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_57600"]._serialized_options = b'\312\363\030\014:\n57600 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_115200"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_115200"]._serialized_options = b'\312\363\030\r:\013115200 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_230400"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_230400"]._serialized_options = b'\312\363\030\r:\013230400 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_460800"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_460800"]._serialized_options = b'\312\363\030\r:\013460800 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_576000"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_576000"]._serialized_options = b'\312\363\030\r:\013576000 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_921600"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD.values_by_name["BAUD_921600"]._serialized_options = b'\312\363\030\r:\013921600 Baud'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["DEFAULT"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["DEFAULT"]._serialized_options = b'\312\363\030\t:\007Default'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["SIMPLE"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["SIMPLE"]._serialized_options = b'\312\363\030\010:\006Simple'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["PROTO"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["PROTO"]._serialized_options = b'\312\363\030\013:\tProtobufs'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["TEXTMSG"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["TEXTMSG"]._serialized_options = b'\312\363\030\016:\014Text Message'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["NMEA"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["NMEA"]._serialized_options = b'\312\363\030\020:\016NMEA Positions'
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["CALTOPO"]._options = None
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE.values_by_name["CALTOPO"]._serialized_options = b'\312\363\030\t:\007CalTopo'
_MODULECONFIG_SERIALCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030&:\016Serial EnabledB\024Enable serial module'
_MODULECONFIG_SERIALCONFIG.fields_by_name['echo']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['echo']._serialized_options = b'\312\363\030N:\004EchoBFIf set, any packets you send will be echoed back over the serial port.'
_MODULECONFIG_SERIALCONFIG.fields_by_name['rxd']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['rxd']._serialized_options = b'\312\363\030,:\033Receive data (rxd) GPIO pinB\rRX pin number'
_MODULECONFIG_SERIALCONFIG.fields_by_name['txd']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['txd']._serialized_options = b'\312\363\030-:\034Transmit data (txd) GPIO pinB\rTX pin number'
_MODULECONFIG_SERIALCONFIG.fields_by_name['baud']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['baud']._serialized_options = b'\312\363\030\030:\004BaudB\020Serial baud rate'
_MODULECONFIG_SERIALCONFIG.fields_by_name['timeout']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['timeout']._serialized_options = b'\312\363\030i*\002ms:\007TimeoutBZHow long to wait before treating received serial data as a complete packet. 0 uses 250 ms.'
_MODULECONFIG_SERIALCONFIG.fields_by_name['mode']._options = None
_MODULECONFIG_SERIALCONFIG.fields_by_name['mode']._serialized_options = b'\312\363\030$:\004ModeB\034Serial module operation mode'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030>:\035External Notification EnabledB\035Enable external notifications'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_ms']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_ms']._serialized_options = b'\312\363\030I*\002ms:\024GPIO Output DurationB-In GPIO mode, how long to keep the output on.'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output']._serialized_options = b'\312\363\030_:\017Output pin GPIOBLGPIO pin driven on notification. Defaults to the board\'s EXT_NOTIFY_OUT pin.'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_vibra']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_vibra']._serialized_options = b'\312\363\0303:\025Output pin vibra GPIOB\032Vibration motor output pin'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_buzzer']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['output_buzzer']._serialized_options = b'\312\363\030+:\026Output pin buzzer GPIOB\021Buzzer output pin'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['active']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['active']._serialized_options = b'\312\363\030]:\006ActiveBSIf enabled, the \'output\' Pin will be pulled active high, disabled means active low.'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message']._serialized_options = b'\312\363\030;:\036Alert when receiving a messageB\031Alert on incoming message'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message_vibra']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message_vibra']._serialized_options = b'\312\363\030D:\021Vibra Motor AlertB/Alert GPIO vibra motor when receiving a message'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message_buzzer']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_message_buzzer']._serialized_options = b'\312\363\030F:*Alert GPIO buzzer when receiving a messageB\030Buzz on incoming message'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell']._serialized_options = b'\312\363\0306:\033Alert when receiving a bellB\027Alert on bell character'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell_vibra']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell_vibra']._serialized_options = b'\312\363\030I:,Alert GPIO vibra motor when receiving a bellB\031Vibrate on bell character'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell_buzzer']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['alert_bell_buzzer']._serialized_options = b'\312\363\030A:\'Alert GPIO buzzer when receiving a bellB\026Buzz on bell character'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['use_pwm']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['use_pwm']._serialized_options = b'\312\363\030\327\001:\016Use PWM BuzzerB\304\001Use a PWM output (like the RAK Buzzer) for tunes instead of an on/off output. This will ignore the output, output duration and active settings and use the device config buzzer GPIO option instead.'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['nag_timeout']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['nag_timeout']._serialized_options = b'\312\363\0302*\001s:\013Nag TimeoutB How long the notification lasts.'
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['use_i2s_as_buzzer']._options = None
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG.fields_by_name['use_i2s_as_buzzer']._serialized_options = b'\312\363\030\247\001:\021Use I2S As BuzzerB\221\001Enables 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.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030B:\031Store and Forward EnabledB%Enables the store and forward module.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['heartbeat']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['heartbeat']._serialized_options = b'\312\363\030F:\016Send HeartbeatB4Send a heartbeat to advertise the server\'s presence.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['records']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['records']._serialized_options = b'\312\363\030^:\021Number of recordsBIMaximum number of messages to store. 0 uses three quarters of free PSRAM.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['history_return_max']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['history_return_max']._serialized_options = b'\312\363\030X:\022History Return MaxBBMaximum number of stored messages returned per request. 0 uses 25.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['history_return_window']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['history_return_window']._serialized_options = b'\312\363\030\\:\025History Return WindowBCHow far back, in minutes, stored messages are returned. 0 uses 240.'
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['is_server']._options = None
_MODULECONFIG_STOREFORWARDCONFIG.fields_by_name['is_server']._serialized_options = b'\312\363\030`:\006ServerBVEnable this device as a Store and Forward server. Requires an ESP32 device with PSRAM.'
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['enabled']._serialized_options = b'\312\363\030.:\022Range Test EnabledB\030Enable range test module'
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['sender']._options = None
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['sender']._serialized_options = b'\312\363\030q*\001s:\017Sender IntervalB[This device will send out range test messages on the selected interval. 0 disables sending.'
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['save']._options = None
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['save']._serialized_options = b'\312\363\030u:\004SaveBmSaves a CSV with the range test message details, currently only available on ESP32 devices with a web server.'
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['clear_on_reboot']._options = None
_MODULECONFIG_RANGETESTCONFIG.fields_by_name['clear_on_reboot']._serialized_options = b'\312\363\030\010R\0062.7.11'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['device_update_interval']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['device_update_interval']._serialized_options = b'\312\363\030N*\001s:\027Device Metrics IntervalB0How often device metrics are sent over the mesh.'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_update_interval']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_update_interval']._serialized_options = b'\312\363\030X*\001s:\034Environment Metrics IntervalB5How often environment metrics are sent over the mesh.'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_measurement_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_measurement_enabled']._serialized_options = b'\312\363\030?:\033Environment Metrics EnabledB Collect environment measurements'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_screen_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_screen_enabled']._serialized_options = b'\312\363\030C:\025Show on device screenB*Display environment measurements on device'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_display_fahrenheit']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['environment_display_fahrenheit']._serialized_options = b'\312\363\0307:\022Display FahrenheitB!Display environment in Fahrenheit'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_enabled']._serialized_options = b'\312\363\030::\033Air Quality Metrics EnabledB\033Collect air quality metrics'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_interval']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_interval']._serialized_options = b'\312\363\030X*\001s:\034Air Quality Metrics IntervalB5How often air quality metrics are sent over the mesh.'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_measurement_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_measurement_enabled']._serialized_options = b'\312\363\0302:\031Power Measurement EnabledB\025Collect power metrics'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_update_interval']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_update_interval']._serialized_options = b'\312\363\030L*\001s:\026Power Metrics IntervalB/How often power metrics are sent over the mesh.'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_screen_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['power_screen_enabled']._serialized_options = b'\312\363\030/:\014Power ScreenB\037Display power metrics on device'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['device_telemetry_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['device_telemetry_enabled']._serialized_options = b'\312\363\030\226\001:\030Broadcast Device MetricsBrEnable broadcasting device metrics to the mesh network. When disabled, metrics are only sent to connected clients.R\0062.7.13'
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_screen_enabled']._options = None
_MODULECONFIG_TELEMETRYCONFIG.fields_by_name['air_quality_screen_enabled']._serialized_options = b'\312\363\030\010R\0062.7.18'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["NONE"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["NONE"]._serialized_options = b'\312\363\030\006:\004None'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["UP"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["UP"]._serialized_options = b'\312\363\030\004:\002Up'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["DOWN"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["DOWN"]._serialized_options = b'\312\363\030\006:\004Down'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["LEFT"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["LEFT"]._serialized_options = b'\312\363\030\006:\004Left'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["RIGHT"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["RIGHT"]._serialized_options = b'\312\363\030\007:\005Right'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["SELECT"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["SELECT"]._serialized_options = b'\312\363\030\010:\006Select'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["BACK"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["BACK"]._serialized_options = b'\312\363\030\006:\004Back'
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["CANCEL"]._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR.values_by_name["CANCEL"]._serialized_options = b'\312\363\030\010:\006Cancel'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['rotary1_enabled']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['rotary1_enabled']._serialized_options = b'\312\363\030\':\016Rotary EncoderB\025Enable rotary encoder'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_a']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_a']._serialized_options = b'\312\363\030,:\005Pin AB#GPIO pin for rotary encoder A port.'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_b']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_b']._serialized_options = b'\312\363\030,:\005Pin BB#GPIO pin for rotary encoder B port.'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_press']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_pin_press']._serialized_options = b'\312\363\0303:\tPress PinB&GPIO pin for the encoder press button.'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_cw']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_cw']._serialized_options = b'\312\363\030<:\026Clockwise Rotary EventB\"Input event for clockwise rotation'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_ccw']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_ccw']._serialized_options = b'\312\363\030K:\035Counterclockwise Rotary EventB*Input event for counter-clockwise rotation'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_press']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['inputbroker_event_press']._serialized_options = b'\312\363\0304:\023Encoder Press EventB\035Input event for encoder press'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['updown1_enabled']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['updown1_enabled']._serialized_options = b'\312\363\0303:\024Up/Down/Select InputB\033Enable up/down/select input'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['enabled']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['enabled']._serialized_options = b'\030\001\312\363\030\007Z\0052.7.0'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['allow_input_source']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['allow_input_source']._serialized_options = b'\030\001\312\363\030\007Z\0052.7.0'
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['send_bell']._options = None
_MODULECONFIG_CANNEDMESSAGECONFIG.fields_by_name['send_bell']._serialized_options = b'\312\363\030.:\tSend BellB!Send bell character with messages'
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['led_state']._options = None
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['led_state']._serialized_options = b'\312\363\030*:\tLED StateB\035The state of the LED (on/off)'
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['current']._options = None
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['current']._serialized_options = b'\312\363\030_\031\000\000\000\000\000\000\000\000!\000\000\000\000\000\000?@:\007CurrentB!Drive current for the LED output.J\037led|brightness|ambient|lighting'
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['red']._options = None
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['red']._serialized_options = b'\312\363\030j\031\000\000\000\000\000\000\000\000!\000\000\000\000\000\340o@:\003RedB*The red level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting'
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['green']._options = None
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['green']._serialized_options = b'\312\363\030n\031\000\000\000\000\000\000\000\000!\000\000\000\000\000\340o@:\005GreenB,The green level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting'
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['blue']._options = None
_MODULECONFIG_AMBIENTLIGHTINGCONFIG.fields_by_name['blue']._serialized_options = b'\312\363\030l\031\000\000\000\000\000\000\000\000!\000\000\000\000\000\340o@:\004BlueB+The blue level of the ambient lighting LED.J%color|colour|rgb|led|ambient|lighting'
_MODULECONFIG_MESHBEACONCONFIG.fields_by_name['broadcast_message']._options = None
_MODULECONFIG_MESHBEACONCONFIG.fields_by_name['broadcast_message']._serialized_options = b'\312\363\0309:\007MessageB.Message for beacon broadcasts, up to 60 bytes.'
_MODULECONFIG_MESHBEACONCONFIG.fields_by_name['broadcast_interval_secs']._options = None
_MODULECONFIG_MESHBEACONCONFIG.fields_by_name['broadcast_interval_secs']._serialized_options = b'\312\363\030H\031\000\000\000\000\000 \254@*\001s:\010IntervalB0How often a beacon is broadcast. Minimum 1 hour.'
_MODULECONFIG_TAKCONFIG.fields_by_name['team']._options = None
_MODULECONFIG_TAKCONFIG.fields_by_name['team']._serialized_options = b'\312\363\030\026:\004TeamB\016TAK team color'
_MODULECONFIG_TAKCONFIG.fields_by_name['role']._options = None
_MODULECONFIG_TAKCONFIG.fields_by_name['role']._serialized_options = b'\312\363\030\027:\004RoleB\017TAK member role'
_MODULECONFIG.fields_by_name['statusmessage']._options = None
_MODULECONFIG.fields_by_name['statusmessage']._serialized_options = b'\312\363\030\010R\0062.7.20'
_MODULECONFIG.fields_by_name['traffic_management']._options = None
_MODULECONFIG.fields_by_name['traffic_management']._serialized_options = b'\312\363\030\007R\0052.8.0'
_MODULECONFIG.fields_by_name['tak']._options = None
_MODULECONFIG.fields_by_name['tak']._serialized_options = b'\312\363\030\007R\0052.8.0'
_MODULECONFIG.fields_by_name['mesh_beacon']._options = None
_MODULECONFIG.fields_by_name['mesh_beacon']._serialized_options = b'\312\363\030\007R\0052.8.0'
_REMOTEHARDWAREPINTYPE._serialized_start=16574
_REMOTEHARDWAREPINTYPE._serialized_end=16647
_MODULECONFIG._serialized_start=208
_MODULECONFIG._serialized_end=16461
_MODULECONFIG_MQTTCONFIG._serialized_start=1580
_MODULECONFIG_MQTTCONFIG._serialized_end=2565
_MODULECONFIG_MAPREPORTSETTINGS._serialized_start=2568
_MODULECONFIG_MAPREPORTSETTINGS._serialized_end=2930
_MODULECONFIG_REMOTEHARDWARECONFIG._serialized_start=2933
_MODULECONFIG_REMOTEHARDWARECONFIG._serialized_end=3072
_MODULECONFIG_NEIGHBORINFOCONFIG._serialized_start=3075
_MODULECONFIG_NEIGHBORINFOCONFIG._serialized_end=3591
_MODULECONFIG_DETECTIONSENSORCONFIG._serialized_start=3594
_MODULECONFIG_DETECTIONSENSORCONFIG._serialized_end=4989
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE._serialized_start=4744
_MODULECONFIG_DETECTIONSENSORCONFIG_TRIGGERTYPE._serialized_end=4989
_MODULECONFIG_AUDIOCONFIG._serialized_start=4992
_MODULECONFIG_AUDIOCONFIG._serialized_end=5942
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD._serialized_start=5586
_MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD._serialized_end=5942
_MODULECONFIG_PAXCOUNTERCONFIG._serialized_start=5945
_MODULECONFIG_PAXCOUNTERCONFIG._serialized_end=6454
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG._serialized_start=6457
_MODULECONFIG_TRAFFICMANAGEMENTCONFIG._serialized_end=7474
_MODULECONFIG_SERIALCONFIG._serialized_start=7477
_MODULECONFIG_SERIALCONFIG._serialized_end=8977
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD._serialized_start=8166
_MODULECONFIG_SERIALCONFIG_SERIAL_BAUD._serialized_end=8712
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE._serialized_start=8715
_MODULECONFIG_SERIALCONFIG_SERIAL_MODE._serialized_end=8977
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_start=8980
_MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_end=10675
_MODULECONFIG_STOREFORWARDCONFIG._serialized_start=10678
_MODULECONFIG_STOREFORWARDCONFIG._serialized_end=11371
_MODULECONFIG_RANGETESTCONFIG._serialized_start=11374
_MODULECONFIG_RANGETESTCONFIG._serialized_end=11773
_MODULECONFIG_TELEMETRYCONFIG._serialized_start=11776
_MODULECONFIG_TELEMETRYCONFIG._serialized_end=13207
_MODULECONFIG_CANNEDMESSAGECONFIG._serialized_start=13210
_MODULECONFIG_CANNEDMESSAGECONFIG._serialized_end=14484
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_start=14286
_MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_end=14484
_MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_start=14487
_MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_end=15080
_MODULECONFIG_STATUSMESSAGECONFIG._serialized_start=15082
_MODULECONFIG_STATUSMESSAGECONFIG._serialized_end=15124
_MODULECONFIG_MESHBEACONCONFIG._serialized_start=15127
_MODULECONFIG_MESHBEACONCONFIG._serialized_end=16283
_MODULECONFIG_MESHBEACONCONFIG_BROADCASTTARGET._serialized_start=15747
_MODULECONFIG_MESHBEACONCONFIG_BROADCASTTARGET._serialized_end=16009
_MODULECONFIG_MESHBEACONCONFIG_FLAGS._serialized_start=16011
_MODULECONFIG_MESHBEACONCONFIG_FLAGS._serialized_end=16109
_MODULECONFIG_TAKCONFIG._serialized_start=16286
_MODULECONFIG_TAKCONFIG._serialized_end=16442
_REMOTEHARDWAREPIN._serialized_start=16463
_REMOTEHARDWAREPIN._serialized_end=16572
# @@protoc_insertion_point(module_scope)