diff --git a/meshtastic/admin_pb2.py b/meshtastic/admin_pb2.py
deleted file mode 100644
index e98de3e..0000000
--- a/meshtastic/admin_pb2.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/admin.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 import channel_pb2 as meshtastic_dot_channel__pb2
-from meshtastic import config_pb2 as meshtastic_dot_config__pb2
-from meshtastic import connection_status_pb2 as meshtastic_dot_connection__status__pb2
-from meshtastic import mesh_pb2 as meshtastic_dot_mesh__pb2
-from meshtastic import module_config_pb2 as meshtastic_dot_module__config__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16meshtastic/admin.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x17meshtastic/config.proto\x1a\"meshtastic/connection_status.proto\x1a\x15meshtastic/mesh.proto\x1a\x1emeshtastic/module_config.proto\"\xce\x11\n\x0c\x41\x64minMessage\x12\x1d\n\x13get_channel_request\x18\x01 \x01(\rH\x00\x12\x33\n\x14get_channel_response\x18\x02 \x01(\x0b\x32\x13.meshtastic.ChannelH\x00\x12\x1b\n\x11get_owner_request\x18\x03 \x01(\x08H\x00\x12.\n\x12get_owner_response\x18\x04 \x01(\x0b\x32\x10.meshtastic.UserH\x00\x12\x41\n\x12get_config_request\x18\x05 \x01(\x0e\x32#.meshtastic.AdminMessage.ConfigTypeH\x00\x12\x31\n\x13get_config_response\x18\x06 \x01(\x0b\x32\x12.meshtastic.ConfigH\x00\x12N\n\x19get_module_config_request\x18\x07 \x01(\x0e\x32).meshtastic.AdminMessage.ModuleConfigTypeH\x00\x12>\n\x1aget_module_config_response\x18\x08 \x01(\x0b\x32\x18.meshtastic.ModuleConfigH\x00\x12\x34\n*get_canned_message_module_messages_request\x18\n \x01(\x08H\x00\x12\x35\n+get_canned_message_module_messages_response\x18\x0b \x01(\tH\x00\x12%\n\x1bget_device_metadata_request\x18\x0c \x01(\x08H\x00\x12\x42\n\x1cget_device_metadata_response\x18\r \x01(\x0b\x32\x1a.meshtastic.DeviceMetadataH\x00\x12\x1e\n\x14get_ringtone_request\x18\x0e \x01(\x08H\x00\x12\x1f\n\x15get_ringtone_response\x18\x0f \x01(\tH\x00\x12.\n$get_device_connection_status_request\x18\x10 \x01(\x08H\x00\x12S\n%get_device_connection_status_response\x18\x11 \x01(\x0b\x32\".meshtastic.DeviceConnectionStatusH\x00\x12\x31\n\x0cset_ham_mode\x18\x12 \x01(\x0b\x32\x19.meshtastic.HamParametersH\x00\x12/\n%get_node_remote_hardware_pins_request\x18\x13 \x01(\x08H\x00\x12\\\n&get_node_remote_hardware_pins_response\x18\x14 \x01(\x0b\x32*.meshtastic.NodeRemoteHardwarePinsResponseH\x00\x12 \n\x16\x65nter_dfu_mode_request\x18\x15 \x01(\x08H\x00\x12\x1d\n\x13\x64\x65lete_file_request\x18\x16 \x01(\tH\x00\x12%\n\tset_owner\x18 \x01(\x0b\x32\x10.meshtastic.UserH\x00\x12*\n\x0bset_channel\x18! \x01(\x0b\x32\x13.meshtastic.ChannelH\x00\x12(\n\nset_config\x18\" \x01(\x0b\x32\x12.meshtastic.ConfigH\x00\x12\x35\n\x11set_module_config\x18# \x01(\x0b\x32\x18.meshtastic.ModuleConfigH\x00\x12,\n\"set_canned_message_module_messages\x18$ \x01(\tH\x00\x12\x1e\n\x14set_ringtone_message\x18% \x01(\tH\x00\x12\x1b\n\x11remove_by_nodenum\x18& \x01(\rH\x00\x12\x1b\n\x11set_favorite_node\x18\' \x01(\rH\x00\x12\x1e\n\x14remove_favorite_node\x18( \x01(\rH\x00\x12\x32\n\x12set_fixed_position\x18) \x01(\x0b\x32\x14.meshtastic.PositionH\x00\x12\x1f\n\x15remove_fixed_position\x18* \x01(\x08H\x00\x12\x1d\n\x13\x62\x65gin_edit_settings\x18@ \x01(\x08H\x00\x12\x1e\n\x14\x63ommit_edit_settings\x18\x41 \x01(\x08H\x00\x12\x1c\n\x12reboot_ota_seconds\x18_ \x01(\x05H\x00\x12\x18\n\x0e\x65xit_simulator\x18` \x01(\x08H\x00\x12\x18\n\x0ereboot_seconds\x18\x61 \x01(\x05H\x00\x12\x1a\n\x10shutdown_seconds\x18\x62 \x01(\x05H\x00\x12\x17\n\rfactory_reset\x18\x63 \x01(\x05H\x00\x12\x16\n\x0cnodedb_reset\x18\x64 \x01(\x05H\x00\"\x95\x01\n\nConfigType\x12\x11\n\rDEVICE_CONFIG\x10\x00\x12\x13\n\x0fPOSITION_CONFIG\x10\x01\x12\x10\n\x0cPOWER_CONFIG\x10\x02\x12\x12\n\x0eNETWORK_CONFIG\x10\x03\x12\x12\n\x0e\x44ISPLAY_CONFIG\x10\x04\x12\x0f\n\x0bLORA_CONFIG\x10\x05\x12\x14\n\x10\x42LUETOOTH_CONFIG\x10\x06\"\xbb\x02\n\x10ModuleConfigType\x12\x0f\n\x0bMQTT_CONFIG\x10\x00\x12\x11\n\rSERIAL_CONFIG\x10\x01\x12\x13\n\x0f\x45XTNOTIF_CONFIG\x10\x02\x12\x17\n\x13STOREFORWARD_CONFIG\x10\x03\x12\x14\n\x10RANGETEST_CONFIG\x10\x04\x12\x14\n\x10TELEMETRY_CONFIG\x10\x05\x12\x14\n\x10\x43\x41NNEDMSG_CONFIG\x10\x06\x12\x10\n\x0c\x41UDIO_CONFIG\x10\x07\x12\x19\n\x15REMOTEHARDWARE_CONFIG\x10\x08\x12\x17\n\x13NEIGHBORINFO_CONFIG\x10\t\x12\x1a\n\x16\x41MBIENTLIGHTING_CONFIG\x10\n\x12\x1a\n\x16\x44\x45TECTIONSENSOR_CONFIG\x10\x0b\x12\x15\n\x11PAXCOUNTER_CONFIG\x10\x0c\x42\x11\n\x0fpayload_variant\"[\n\rHamParameters\x12\x11\n\tcall_sign\x18\x01 \x01(\t\x12\x10\n\x08tx_power\x18\x02 \x01(\x05\x12\x11\n\tfrequency\x18\x03 \x01(\x02\x12\x12\n\nshort_name\x18\x04 \x01(\t\"f\n\x1eNodeRemoteHardwarePinsResponse\x12\x44\n\x19node_remote_hardware_pins\x18\x01 \x03(\x0b\x32!.meshtastic.NodeRemoteHardwarePinB`\n\x13\x63om.geeksville.meshB\x0b\x41\x64minProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.admin_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\013AdminProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _ADMINMESSAGE._serialized_start=181
- _ADMINMESSAGE._serialized_end=2435
- _ADMINMESSAGE_CONFIGTYPE._serialized_start=1949
- _ADMINMESSAGE_CONFIGTYPE._serialized_end=2098
- _ADMINMESSAGE_MODULECONFIGTYPE._serialized_start=2101
- _ADMINMESSAGE_MODULECONFIGTYPE._serialized_end=2416
- _HAMPARAMETERS._serialized_start=2437
- _HAMPARAMETERS._serialized_end=2528
- _NODEREMOTEHARDWAREPINSRESPONSE._serialized_start=2530
- _NODEREMOTEHARDWAREPINSRESPONSE._serialized_end=2632
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/admin_pb2.pyi b/meshtastic/admin_pb2.pyi
deleted file mode 100644
index 8488f5b..0000000
--- a/meshtastic/admin_pb2.pyi
+++ /dev/null
@@ -1,557 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import meshtastic.channel_pb2
-import meshtastic.config_pb2
-import meshtastic.connection_status_pb2
-import meshtastic.mesh_pb2
-import meshtastic.module_config_pb2
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class AdminMessage(google.protobuf.message.Message):
- """
- This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
- This message is used to do settings operations to both remote AND local nodes.
- (Prior to 1.2 these operations were done via special ToRadio operations)
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _ConfigType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _ConfigTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._ConfigType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DEVICE_CONFIG: AdminMessage._ConfigType.ValueType # 0
- """
- TODO: REPLACE
- """
- POSITION_CONFIG: AdminMessage._ConfigType.ValueType # 1
- """
- TODO: REPLACE
- """
- POWER_CONFIG: AdminMessage._ConfigType.ValueType # 2
- """
- TODO: REPLACE
- """
- NETWORK_CONFIG: AdminMessage._ConfigType.ValueType # 3
- """
- TODO: REPLACE
- """
- DISPLAY_CONFIG: AdminMessage._ConfigType.ValueType # 4
- """
- TODO: REPLACE
- """
- LORA_CONFIG: AdminMessage._ConfigType.ValueType # 5
- """
- TODO: REPLACE
- """
- BLUETOOTH_CONFIG: AdminMessage._ConfigType.ValueType # 6
- """
- TODO: REPLACE
- """
-
- class ConfigType(_ConfigType, metaclass=_ConfigTypeEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- DEVICE_CONFIG: AdminMessage.ConfigType.ValueType # 0
- """
- TODO: REPLACE
- """
- POSITION_CONFIG: AdminMessage.ConfigType.ValueType # 1
- """
- TODO: REPLACE
- """
- POWER_CONFIG: AdminMessage.ConfigType.ValueType # 2
- """
- TODO: REPLACE
- """
- NETWORK_CONFIG: AdminMessage.ConfigType.ValueType # 3
- """
- TODO: REPLACE
- """
- DISPLAY_CONFIG: AdminMessage.ConfigType.ValueType # 4
- """
- TODO: REPLACE
- """
- LORA_CONFIG: AdminMessage.ConfigType.ValueType # 5
- """
- TODO: REPLACE
- """
- BLUETOOTH_CONFIG: AdminMessage.ConfigType.ValueType # 6
- """
- TODO: REPLACE
- """
-
- class _ModuleConfigType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _ModuleConfigTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._ModuleConfigType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- MQTT_CONFIG: AdminMessage._ModuleConfigType.ValueType # 0
- """
- TODO: REPLACE
- """
- SERIAL_CONFIG: AdminMessage._ModuleConfigType.ValueType # 1
- """
- TODO: REPLACE
- """
- EXTNOTIF_CONFIG: AdminMessage._ModuleConfigType.ValueType # 2
- """
- TODO: REPLACE
- """
- STOREFORWARD_CONFIG: AdminMessage._ModuleConfigType.ValueType # 3
- """
- TODO: REPLACE
- """
- RANGETEST_CONFIG: AdminMessage._ModuleConfigType.ValueType # 4
- """
- TODO: REPLACE
- """
- TELEMETRY_CONFIG: AdminMessage._ModuleConfigType.ValueType # 5
- """
- TODO: REPLACE
- """
- CANNEDMSG_CONFIG: AdminMessage._ModuleConfigType.ValueType # 6
- """
- TODO: REPLACE
- """
- AUDIO_CONFIG: AdminMessage._ModuleConfigType.ValueType # 7
- """
- TODO: REPLACE
- """
- REMOTEHARDWARE_CONFIG: AdminMessage._ModuleConfigType.ValueType # 8
- """
- TODO: REPLACE
- """
- NEIGHBORINFO_CONFIG: AdminMessage._ModuleConfigType.ValueType # 9
- """
- TODO: REPLACE
- """
- AMBIENTLIGHTING_CONFIG: AdminMessage._ModuleConfigType.ValueType # 10
- """
- TODO: REPLACE
- """
- DETECTIONSENSOR_CONFIG: AdminMessage._ModuleConfigType.ValueType # 11
- """
- TODO: REPLACE
- """
- PAXCOUNTER_CONFIG: AdminMessage._ModuleConfigType.ValueType # 12
- """
- TODO: REPLACE
- """
-
- class ModuleConfigType(_ModuleConfigType, metaclass=_ModuleConfigTypeEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- MQTT_CONFIG: AdminMessage.ModuleConfigType.ValueType # 0
- """
- TODO: REPLACE
- """
- SERIAL_CONFIG: AdminMessage.ModuleConfigType.ValueType # 1
- """
- TODO: REPLACE
- """
- EXTNOTIF_CONFIG: AdminMessage.ModuleConfigType.ValueType # 2
- """
- TODO: REPLACE
- """
- STOREFORWARD_CONFIG: AdminMessage.ModuleConfigType.ValueType # 3
- """
- TODO: REPLACE
- """
- RANGETEST_CONFIG: AdminMessage.ModuleConfigType.ValueType # 4
- """
- TODO: REPLACE
- """
- TELEMETRY_CONFIG: AdminMessage.ModuleConfigType.ValueType # 5
- """
- TODO: REPLACE
- """
- CANNEDMSG_CONFIG: AdminMessage.ModuleConfigType.ValueType # 6
- """
- TODO: REPLACE
- """
- AUDIO_CONFIG: AdminMessage.ModuleConfigType.ValueType # 7
- """
- TODO: REPLACE
- """
- REMOTEHARDWARE_CONFIG: AdminMessage.ModuleConfigType.ValueType # 8
- """
- TODO: REPLACE
- """
- NEIGHBORINFO_CONFIG: AdminMessage.ModuleConfigType.ValueType # 9
- """
- TODO: REPLACE
- """
- AMBIENTLIGHTING_CONFIG: AdminMessage.ModuleConfigType.ValueType # 10
- """
- TODO: REPLACE
- """
- DETECTIONSENSOR_CONFIG: AdminMessage.ModuleConfigType.ValueType # 11
- """
- TODO: REPLACE
- """
- PAXCOUNTER_CONFIG: AdminMessage.ModuleConfigType.ValueType # 12
- """
- TODO: REPLACE
- """
-
- GET_CHANNEL_REQUEST_FIELD_NUMBER: builtins.int
- GET_CHANNEL_RESPONSE_FIELD_NUMBER: builtins.int
- GET_OWNER_REQUEST_FIELD_NUMBER: builtins.int
- GET_OWNER_RESPONSE_FIELD_NUMBER: builtins.int
- GET_CONFIG_REQUEST_FIELD_NUMBER: builtins.int
- GET_CONFIG_RESPONSE_FIELD_NUMBER: builtins.int
- GET_MODULE_CONFIG_REQUEST_FIELD_NUMBER: builtins.int
- GET_MODULE_CONFIG_RESPONSE_FIELD_NUMBER: builtins.int
- GET_CANNED_MESSAGE_MODULE_MESSAGES_REQUEST_FIELD_NUMBER: builtins.int
- GET_CANNED_MESSAGE_MODULE_MESSAGES_RESPONSE_FIELD_NUMBER: builtins.int
- GET_DEVICE_METADATA_REQUEST_FIELD_NUMBER: builtins.int
- GET_DEVICE_METADATA_RESPONSE_FIELD_NUMBER: builtins.int
- GET_RINGTONE_REQUEST_FIELD_NUMBER: builtins.int
- GET_RINGTONE_RESPONSE_FIELD_NUMBER: builtins.int
- GET_DEVICE_CONNECTION_STATUS_REQUEST_FIELD_NUMBER: builtins.int
- GET_DEVICE_CONNECTION_STATUS_RESPONSE_FIELD_NUMBER: builtins.int
- SET_HAM_MODE_FIELD_NUMBER: builtins.int
- GET_NODE_REMOTE_HARDWARE_PINS_REQUEST_FIELD_NUMBER: builtins.int
- GET_NODE_REMOTE_HARDWARE_PINS_RESPONSE_FIELD_NUMBER: builtins.int
- ENTER_DFU_MODE_REQUEST_FIELD_NUMBER: builtins.int
- DELETE_FILE_REQUEST_FIELD_NUMBER: builtins.int
- SET_OWNER_FIELD_NUMBER: builtins.int
- SET_CHANNEL_FIELD_NUMBER: builtins.int
- SET_CONFIG_FIELD_NUMBER: builtins.int
- SET_MODULE_CONFIG_FIELD_NUMBER: builtins.int
- SET_CANNED_MESSAGE_MODULE_MESSAGES_FIELD_NUMBER: builtins.int
- SET_RINGTONE_MESSAGE_FIELD_NUMBER: builtins.int
- REMOVE_BY_NODENUM_FIELD_NUMBER: builtins.int
- SET_FAVORITE_NODE_FIELD_NUMBER: builtins.int
- REMOVE_FAVORITE_NODE_FIELD_NUMBER: builtins.int
- SET_FIXED_POSITION_FIELD_NUMBER: builtins.int
- REMOVE_FIXED_POSITION_FIELD_NUMBER: builtins.int
- BEGIN_EDIT_SETTINGS_FIELD_NUMBER: builtins.int
- COMMIT_EDIT_SETTINGS_FIELD_NUMBER: builtins.int
- REBOOT_OTA_SECONDS_FIELD_NUMBER: builtins.int
- EXIT_SIMULATOR_FIELD_NUMBER: builtins.int
- REBOOT_SECONDS_FIELD_NUMBER: builtins.int
- SHUTDOWN_SECONDS_FIELD_NUMBER: builtins.int
- FACTORY_RESET_FIELD_NUMBER: builtins.int
- NODEDB_RESET_FIELD_NUMBER: builtins.int
- get_channel_request: builtins.int
- """
- Send the specified channel in the response to this message
- NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present)
- """
- @property
- def get_channel_response(self) -> meshtastic.channel_pb2.Channel:
- """
- TODO: REPLACE
- """
- get_owner_request: builtins.bool
- """
- Send the current owner data in the response to this message.
- """
- @property
- def get_owner_response(self) -> meshtastic.mesh_pb2.User:
- """
- TODO: REPLACE
- """
- get_config_request: global___AdminMessage.ConfigType.ValueType
- """
- Ask for the following config data to be sent
- """
- @property
- def get_config_response(self) -> meshtastic.config_pb2.Config:
- """
- Send the current Config in the response to this message.
- """
- get_module_config_request: global___AdminMessage.ModuleConfigType.ValueType
- """
- Ask for the following config data to be sent
- """
- @property
- def get_module_config_response(self) -> meshtastic.module_config_pb2.ModuleConfig:
- """
- Send the current Config in the response to this message.
- """
- get_canned_message_module_messages_request: builtins.bool
- """
- Get the Canned Message Module messages in the response to this message.
- """
- get_canned_message_module_messages_response: builtins.str
- """
- Get the Canned Message Module messages in the response to this message.
- """
- get_device_metadata_request: builtins.bool
- """
- Request the node to send device metadata (firmware, protobuf version, etc)
- """
- @property
- def get_device_metadata_response(self) -> meshtastic.mesh_pb2.DeviceMetadata:
- """
- Device metadata response
- """
- get_ringtone_request: builtins.bool
- """
- Get the Ringtone in the response to this message.
- """
- get_ringtone_response: builtins.str
- """
- Get the Ringtone in the response to this message.
- """
- get_device_connection_status_request: builtins.bool
- """
- Request the node to send it's connection status
- """
- @property
- def get_device_connection_status_response(self) -> meshtastic.connection_status_pb2.DeviceConnectionStatus:
- """
- Device connection status response
- """
- @property
- def set_ham_mode(self) -> global___HamParameters:
- """
- Setup a node for licensed amateur (ham) radio operation
- """
- get_node_remote_hardware_pins_request: builtins.bool
- """
- Get the mesh's nodes with their available gpio pins for RemoteHardware module use
- """
- @property
- def get_node_remote_hardware_pins_response(self) -> global___NodeRemoteHardwarePinsResponse:
- """
- Respond with the mesh's nodes with their available gpio pins for RemoteHardware module use
- """
- enter_dfu_mode_request: builtins.bool
- """
- Enter (UF2) DFU mode
- Only implemented on NRF52 currently
- """
- delete_file_request: builtins.str
- """
- Delete the file by the specified path from the device
- """
- @property
- def set_owner(self) -> meshtastic.mesh_pb2.User:
- """
- Set the owner for this node
- """
- @property
- def set_channel(self) -> meshtastic.channel_pb2.Channel:
- """
- Set channels (using the new API).
- A special channel is the "primary channel".
- The other records are secondary channels.
- Note: only one channel can be marked as primary.
- If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
- """
- @property
- def set_config(self) -> meshtastic.config_pb2.Config:
- """
- Set the current Config
- """
- @property
- def set_module_config(self) -> meshtastic.module_config_pb2.ModuleConfig:
- """
- Set the current Config
- """
- set_canned_message_module_messages: builtins.str
- """
- Set the Canned Message Module messages text.
- """
- set_ringtone_message: builtins.str
- """
- Set the ringtone for ExternalNotification.
- """
- remove_by_nodenum: builtins.int
- """
- Remove the node by the specified node-num from the NodeDB on the device
- """
- set_favorite_node: builtins.int
- """
- Set specified node-num to be favorited on the NodeDB on the device
- """
- remove_favorite_node: builtins.int
- """
- Set specified node-num to be un-favorited on the NodeDB on the device
- """
- @property
- def set_fixed_position(self) -> meshtastic.mesh_pb2.Position:
- """
- Set fixed position data on the node and then set the position.fixed_position = true
- """
- remove_fixed_position: builtins.bool
- """
- Clear fixed position coordinates and then set position.fixed_position = false
- """
- begin_edit_settings: builtins.bool
- """
- Begins an edit transaction for config, module config, owner, and channel settings changes
- This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
- """
- commit_edit_settings: builtins.bool
- """
- Commits an open transaction for any edits made to config, module config, owner, and channel settings
- """
- reboot_ota_seconds: builtins.int
- """
- Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot)
- Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth.
- """
- exit_simulator: builtins.bool
- """
- This message is only supported for the simulator Portduino build.
- If received the simulator will exit successfully.
- """
- reboot_seconds: builtins.int
- """
- Tell the node to reboot in this many seconds (or <0 to cancel reboot)
- """
- shutdown_seconds: builtins.int
- """
- Tell the node to shutdown in this many seconds (or <0 to cancel shutdown)
- """
- factory_reset: builtins.int
- """
- Tell the node to factory reset, all device settings will be returned to factory defaults.
- """
- nodedb_reset: builtins.int
- """
- Tell the node to reset the nodedb.
- """
- def __init__(
- self,
- *,
- get_channel_request: builtins.int = ...,
- get_channel_response: meshtastic.channel_pb2.Channel | None = ...,
- get_owner_request: builtins.bool = ...,
- get_owner_response: meshtastic.mesh_pb2.User | None = ...,
- get_config_request: global___AdminMessage.ConfigType.ValueType = ...,
- get_config_response: meshtastic.config_pb2.Config | None = ...,
- get_module_config_request: global___AdminMessage.ModuleConfigType.ValueType = ...,
- get_module_config_response: meshtastic.module_config_pb2.ModuleConfig | None = ...,
- get_canned_message_module_messages_request: builtins.bool = ...,
- get_canned_message_module_messages_response: builtins.str = ...,
- get_device_metadata_request: builtins.bool = ...,
- get_device_metadata_response: meshtastic.mesh_pb2.DeviceMetadata | None = ...,
- get_ringtone_request: builtins.bool = ...,
- get_ringtone_response: builtins.str = ...,
- get_device_connection_status_request: builtins.bool = ...,
- get_device_connection_status_response: meshtastic.connection_status_pb2.DeviceConnectionStatus | None = ...,
- set_ham_mode: global___HamParameters | None = ...,
- get_node_remote_hardware_pins_request: builtins.bool = ...,
- get_node_remote_hardware_pins_response: global___NodeRemoteHardwarePinsResponse | None = ...,
- enter_dfu_mode_request: builtins.bool = ...,
- delete_file_request: builtins.str = ...,
- set_owner: meshtastic.mesh_pb2.User | None = ...,
- set_channel: meshtastic.channel_pb2.Channel | None = ...,
- set_config: meshtastic.config_pb2.Config | None = ...,
- set_module_config: meshtastic.module_config_pb2.ModuleConfig | None = ...,
- set_canned_message_module_messages: builtins.str = ...,
- set_ringtone_message: builtins.str = ...,
- remove_by_nodenum: builtins.int = ...,
- set_favorite_node: builtins.int = ...,
- remove_favorite_node: builtins.int = ...,
- set_fixed_position: meshtastic.mesh_pb2.Position | None = ...,
- remove_fixed_position: builtins.bool = ...,
- begin_edit_settings: builtins.bool = ...,
- commit_edit_settings: builtins.bool = ...,
- reboot_ota_seconds: builtins.int = ...,
- exit_simulator: builtins.bool = ...,
- reboot_seconds: builtins.int = ...,
- shutdown_seconds: builtins.int = ...,
- factory_reset: builtins.int = ...,
- nodedb_reset: builtins.int = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["begin_edit_settings", b"begin_edit_settings", "commit_edit_settings", b"commit_edit_settings", "delete_file_request", b"delete_file_request", "enter_dfu_mode_request", b"enter_dfu_mode_request", "exit_simulator", b"exit_simulator", "factory_reset", b"factory_reset", "get_canned_message_module_messages_request", b"get_canned_message_module_messages_request", "get_canned_message_module_messages_response", b"get_canned_message_module_messages_response", "get_channel_request", b"get_channel_request", "get_channel_response", b"get_channel_response", "get_config_request", b"get_config_request", "get_config_response", b"get_config_response", "get_device_connection_status_request", b"get_device_connection_status_request", "get_device_connection_status_response", b"get_device_connection_status_response", "get_device_metadata_request", b"get_device_metadata_request", "get_device_metadata_response", b"get_device_metadata_response", "get_module_config_request", b"get_module_config_request", "get_module_config_response", b"get_module_config_response", "get_node_remote_hardware_pins_request", b"get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", b"get_node_remote_hardware_pins_response", "get_owner_request", b"get_owner_request", "get_owner_response", b"get_owner_response", "get_ringtone_request", b"get_ringtone_request", "get_ringtone_response", b"get_ringtone_response", "nodedb_reset", b"nodedb_reset", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "set_canned_message_module_messages", b"set_canned_message_module_messages", "set_channel", b"set_channel", "set_config", b"set_config", "set_favorite_node", b"set_favorite_node", "set_fixed_position", b"set_fixed_position", "set_ham_mode", b"set_ham_mode", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "shutdown_seconds", b"shutdown_seconds"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["begin_edit_settings", b"begin_edit_settings", "commit_edit_settings", b"commit_edit_settings", "delete_file_request", b"delete_file_request", "enter_dfu_mode_request", b"enter_dfu_mode_request", "exit_simulator", b"exit_simulator", "factory_reset", b"factory_reset", "get_canned_message_module_messages_request", b"get_canned_message_module_messages_request", "get_canned_message_module_messages_response", b"get_canned_message_module_messages_response", "get_channel_request", b"get_channel_request", "get_channel_response", b"get_channel_response", "get_config_request", b"get_config_request", "get_config_response", b"get_config_response", "get_device_connection_status_request", b"get_device_connection_status_request", "get_device_connection_status_response", b"get_device_connection_status_response", "get_device_metadata_request", b"get_device_metadata_request", "get_device_metadata_response", b"get_device_metadata_response", "get_module_config_request", b"get_module_config_request", "get_module_config_response", b"get_module_config_response", "get_node_remote_hardware_pins_request", b"get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", b"get_node_remote_hardware_pins_response", "get_owner_request", b"get_owner_request", "get_owner_response", b"get_owner_response", "get_ringtone_request", b"get_ringtone_request", "get_ringtone_response", b"get_ringtone_response", "nodedb_reset", b"nodedb_reset", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "set_canned_message_module_messages", b"set_canned_message_module_messages", "set_channel", b"set_channel", "set_config", b"set_config", "set_favorite_node", b"set_favorite_node", "set_fixed_position", b"set_fixed_position", "set_ham_mode", b"set_ham_mode", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "shutdown_seconds", b"shutdown_seconds"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["get_channel_request", "get_channel_response", "get_owner_request", "get_owner_response", "get_config_request", "get_config_response", "get_module_config_request", "get_module_config_response", "get_canned_message_module_messages_request", "get_canned_message_module_messages_response", "get_device_metadata_request", "get_device_metadata_response", "get_ringtone_request", "get_ringtone_response", "get_device_connection_status_request", "get_device_connection_status_response", "set_ham_mode", "get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", "enter_dfu_mode_request", "delete_file_request", "set_owner", "set_channel", "set_config", "set_module_config", "set_canned_message_module_messages", "set_ringtone_message", "remove_by_nodenum", "set_favorite_node", "remove_favorite_node", "set_fixed_position", "remove_fixed_position", "begin_edit_settings", "commit_edit_settings", "reboot_ota_seconds", "exit_simulator", "reboot_seconds", "shutdown_seconds", "factory_reset", "nodedb_reset"] | None: ...
-
-global___AdminMessage = AdminMessage
-
-@typing_extensions.final
-class HamParameters(google.protobuf.message.Message):
- """
- Parameters for setting up Meshtastic for ameteur radio usage
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CALL_SIGN_FIELD_NUMBER: builtins.int
- TX_POWER_FIELD_NUMBER: builtins.int
- FREQUENCY_FIELD_NUMBER: builtins.int
- SHORT_NAME_FIELD_NUMBER: builtins.int
- call_sign: builtins.str
- """
- Amateur radio call sign, eg. KD2ABC
- """
- tx_power: builtins.int
- """
- Transmit power in dBm at the LoRA transceiver, not including any amplification
- """
- frequency: builtins.float
- """
- The selected frequency of LoRA operation
- Please respect your local laws, regulations, and band plans.
- Ensure your radio is capable of operating of the selected frequency before setting this.
- """
- short_name: builtins.str
- """
- Optional short name of user
- """
- def __init__(
- self,
- *,
- call_sign: builtins.str = ...,
- tx_power: builtins.int = ...,
- frequency: builtins.float = ...,
- short_name: builtins.str = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["call_sign", b"call_sign", "frequency", b"frequency", "short_name", b"short_name", "tx_power", b"tx_power"]) -> None: ...
-
-global___HamParameters = HamParameters
-
-@typing_extensions.final
-class NodeRemoteHardwarePinsResponse(google.protobuf.message.Message):
- """
- Response envelope for node_remote_hardware_pins
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NODE_REMOTE_HARDWARE_PINS_FIELD_NUMBER: builtins.int
- @property
- def node_remote_hardware_pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.mesh_pb2.NodeRemoteHardwarePin]:
- """
- Nodes and their respective remote hardware GPIO pins
- """
- def __init__(
- self,
- *,
- node_remote_hardware_pins: collections.abc.Iterable[meshtastic.mesh_pb2.NodeRemoteHardwarePin] | None = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["node_remote_hardware_pins", b"node_remote_hardware_pins"]) -> None: ...
-
-global___NodeRemoteHardwarePinsResponse = NodeRemoteHardwarePinsResponse
diff --git a/meshtastic/apponly_pb2.py b/meshtastic/apponly_pb2.py
deleted file mode 100644
index 46d9931..0000000
--- a/meshtastic/apponly_pb2.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/apponly.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 import channel_pb2 as meshtastic_dot_channel__pb2
-from meshtastic import config_pb2 as meshtastic_dot_config__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18meshtastic/apponly.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x17meshtastic/config.proto\"o\n\nChannelSet\x12-\n\x08settings\x18\x01 \x03(\x0b\x32\x1b.meshtastic.ChannelSettings\x12\x32\n\x0blora_config\x18\x02 \x01(\x0b\x32\x1d.meshtastic.Config.LoRaConfigBb\n\x13\x63om.geeksville.meshB\rAppOnlyProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.apponly_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\rAppOnlyProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _CHANNELSET._serialized_start=91
- _CHANNELSET._serialized_end=202
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/apponly_pb2.pyi b/meshtastic/apponly_pb2.pyi
deleted file mode 100644
index 0d84ed6..0000000
--- a/meshtastic/apponly_pb2.pyi
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.message
-import meshtastic.channel_pb2
-import meshtastic.config_pb2
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class ChannelSet(google.protobuf.message.Message):
- """
- This is the most compact possible representation for a set of channels.
- It includes only one PRIMARY channel (which must be first) and
- any SECONDARY channels.
- No DISABLED channels are included.
- This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- SETTINGS_FIELD_NUMBER: builtins.int
- LORA_CONFIG_FIELD_NUMBER: builtins.int
- @property
- def settings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.channel_pb2.ChannelSettings]:
- """
- Channel list with settings
- """
- @property
- def lora_config(self) -> meshtastic.config_pb2.Config.LoRaConfig:
- """
- LoRa config
- """
- def __init__(
- self,
- *,
- settings: collections.abc.Iterable[meshtastic.channel_pb2.ChannelSettings] | None = ...,
- lora_config: meshtastic.config_pb2.Config.LoRaConfig | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["lora_config", b"lora_config"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["lora_config", b"lora_config", "settings", b"settings"]) -> None: ...
-
-global___ChannelSet = ChannelSet
diff --git a/meshtastic/atak_pb2.py b/meshtastic/atak_pb2.py
deleted file mode 100644
index a813729..0000000
--- a/meshtastic/atak_pb2.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/atak.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15meshtastic/atak.proto\x12\nmeshtastic\"\xe6\x01\n\tTAKPacket\x12\x15\n\ris_compressed\x18\x01 \x01(\x08\x12$\n\x07\x63ontact\x18\x02 \x01(\x0b\x32\x13.meshtastic.Contact\x12 \n\x05group\x18\x03 \x01(\x0b\x32\x11.meshtastic.Group\x12\"\n\x06status\x18\x04 \x01(\x0b\x32\x12.meshtastic.Status\x12\x1e\n\x03pli\x18\x05 \x01(\x0b\x32\x0f.meshtastic.PLIH\x00\x12#\n\x04\x63hat\x18\x06 \x01(\x0b\x32\x13.meshtastic.GeoChatH\x00\x42\x11\n\x0fpayload_variant\"\\\n\x07GeoChat\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x02to\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bto_callsign\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_toB\x0e\n\x0c_to_callsign\"M\n\x05Group\x12$\n\x04role\x18\x01 \x01(\x0e\x32\x16.meshtastic.MemberRole\x12\x1e\n\x04team\x18\x02 \x01(\x0e\x32\x10.meshtastic.Team\"\x19\n\x06Status\x12\x0f\n\x07\x62\x61ttery\x18\x01 \x01(\r\"4\n\x07\x43ontact\x12\x10\n\x08\x63\x61llsign\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65vice_callsign\x18\x02 \x01(\t\"_\n\x03PLI\x12\x12\n\nlatitude_i\x18\x01 \x01(\x0f\x12\x13\n\x0blongitude_i\x18\x02 \x01(\x0f\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x05\x12\r\n\x05speed\x18\x04 \x01(\r\x12\x0e\n\x06\x63ourse\x18\x05 \x01(\r*\xc0\x01\n\x04Team\x12\x14\n\x10Unspecifed_Color\x10\x00\x12\t\n\x05White\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\n\n\x06Orange\x10\x03\x12\x0b\n\x07Magenta\x10\x04\x12\x07\n\x03Red\x10\x05\x12\n\n\x06Maroon\x10\x06\x12\n\n\x06Purple\x10\x07\x12\r\n\tDark_Blue\x10\x08\x12\x08\n\x04\x42lue\x10\t\x12\x08\n\x04\x43yan\x10\n\x12\x08\n\x04Teal\x10\x0b\x12\t\n\x05Green\x10\x0c\x12\x0e\n\nDark_Green\x10\r\x12\t\n\x05\x42rown\x10\x0e*\x7f\n\nMemberRole\x12\x0e\n\nUnspecifed\x10\x00\x12\x0e\n\nTeamMember\x10\x01\x12\x0c\n\x08TeamLead\x10\x02\x12\x06\n\x02HQ\x10\x03\x12\n\n\x06Sniper\x10\x04\x12\t\n\x05Medic\x10\x05\x12\x13\n\x0f\x46orwardObserver\x10\x06\x12\x07\n\x03RTO\x10\x07\x12\x06\n\x02K9\x10\x08\x42_\n\x13\x63om.geeksville.meshB\nATAKProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.atak_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\nATAKProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _TEAM._serialized_start=622
- _TEAM._serialized_end=814
- _MEMBERROLE._serialized_start=816
- _MEMBERROLE._serialized_end=943
- _TAKPACKET._serialized_start=38
- _TAKPACKET._serialized_end=268
- _GEOCHAT._serialized_start=270
- _GEOCHAT._serialized_end=362
- _GROUP._serialized_start=364
- _GROUP._serialized_end=441
- _STATUS._serialized_start=443
- _STATUS._serialized_end=468
- _CONTACT._serialized_start=470
- _CONTACT._serialized_end=522
- _PLI._serialized_start=524
- _PLI._serialized_end=619
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/atak_pb2.pyi b/meshtastic/atak_pb2.pyi
deleted file mode 100644
index 0cc35ef..0000000
--- a/meshtastic/atak_pb2.pyi
+++ /dev/null
@@ -1,464 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _Team:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _TeamEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Team.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- Unspecifed_Color: _Team.ValueType # 0
- """
- Unspecifed
- """
- White: _Team.ValueType # 1
- """
- White
- """
- Yellow: _Team.ValueType # 2
- """
- Yellow
- """
- Orange: _Team.ValueType # 3
- """
- Orange
- """
- Magenta: _Team.ValueType # 4
- """
- Magenta
- """
- Red: _Team.ValueType # 5
- """
- Red
- """
- Maroon: _Team.ValueType # 6
- """
- Maroon
- """
- Purple: _Team.ValueType # 7
- """
- Purple
- """
- Dark_Blue: _Team.ValueType # 8
- """
- Dark Blue
- """
- Blue: _Team.ValueType # 9
- """
- Blue
- """
- Cyan: _Team.ValueType # 10
- """
- Cyan
- """
- Teal: _Team.ValueType # 11
- """
- Teal
- """
- Green: _Team.ValueType # 12
- """
- Green
- """
- Dark_Green: _Team.ValueType # 13
- """
- Dark Green
- """
- Brown: _Team.ValueType # 14
- """
- Brown
- """
-
-class Team(_Team, metaclass=_TeamEnumTypeWrapper): ...
-
-Unspecifed_Color: Team.ValueType # 0
-"""
-Unspecifed
-"""
-White: Team.ValueType # 1
-"""
-White
-"""
-Yellow: Team.ValueType # 2
-"""
-Yellow
-"""
-Orange: Team.ValueType # 3
-"""
-Orange
-"""
-Magenta: Team.ValueType # 4
-"""
-Magenta
-"""
-Red: Team.ValueType # 5
-"""
-Red
-"""
-Maroon: Team.ValueType # 6
-"""
-Maroon
-"""
-Purple: Team.ValueType # 7
-"""
-Purple
-"""
-Dark_Blue: Team.ValueType # 8
-"""
-Dark Blue
-"""
-Blue: Team.ValueType # 9
-"""
-Blue
-"""
-Cyan: Team.ValueType # 10
-"""
-Cyan
-"""
-Teal: Team.ValueType # 11
-"""
-Teal
-"""
-Green: Team.ValueType # 12
-"""
-Green
-"""
-Dark_Green: Team.ValueType # 13
-"""
-Dark Green
-"""
-Brown: Team.ValueType # 14
-"""
-Brown
-"""
-global___Team = Team
-
-class _MemberRole:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _MemberRoleEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MemberRole.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- Unspecifed: _MemberRole.ValueType # 0
- """
- Unspecifed
- """
- TeamMember: _MemberRole.ValueType # 1
- """
- Team Member
- """
- TeamLead: _MemberRole.ValueType # 2
- """
- Team Lead
- """
- HQ: _MemberRole.ValueType # 3
- """
- Headquarters
- """
- Sniper: _MemberRole.ValueType # 4
- """
- Airsoft enthusiast
- """
- Medic: _MemberRole.ValueType # 5
- """
- Medic
- """
- ForwardObserver: _MemberRole.ValueType # 6
- """
- ForwardObserver
- """
- RTO: _MemberRole.ValueType # 7
- """
- Radio Telephone Operator
- """
- K9: _MemberRole.ValueType # 8
- """
- Doggo
- """
-
-class MemberRole(_MemberRole, metaclass=_MemberRoleEnumTypeWrapper):
- """
- Role of the group member
- """
-
-Unspecifed: MemberRole.ValueType # 0
-"""
-Unspecifed
-"""
-TeamMember: MemberRole.ValueType # 1
-"""
-Team Member
-"""
-TeamLead: MemberRole.ValueType # 2
-"""
-Team Lead
-"""
-HQ: MemberRole.ValueType # 3
-"""
-Headquarters
-"""
-Sniper: MemberRole.ValueType # 4
-"""
-Airsoft enthusiast
-"""
-Medic: MemberRole.ValueType # 5
-"""
-Medic
-"""
-ForwardObserver: MemberRole.ValueType # 6
-"""
-ForwardObserver
-"""
-RTO: MemberRole.ValueType # 7
-"""
-Radio Telephone Operator
-"""
-K9: MemberRole.ValueType # 8
-"""
-Doggo
-"""
-global___MemberRole = MemberRole
-
-@typing_extensions.final
-class TAKPacket(google.protobuf.message.Message):
- """
- Packets for the official ATAK Plugin
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- IS_COMPRESSED_FIELD_NUMBER: builtins.int
- CONTACT_FIELD_NUMBER: builtins.int
- GROUP_FIELD_NUMBER: builtins.int
- STATUS_FIELD_NUMBER: builtins.int
- PLI_FIELD_NUMBER: builtins.int
- CHAT_FIELD_NUMBER: builtins.int
- is_compressed: builtins.bool
- """
- Are the payloads strings compressed for LoRA transport?
- """
- @property
- def contact(self) -> global___Contact:
- """
- The contact / callsign for ATAK user
- """
- @property
- def group(self) -> global___Group:
- """
- The group for ATAK user
- """
- @property
- def status(self) -> global___Status:
- """
- The status of the ATAK EUD
- """
- @property
- def pli(self) -> global___PLI:
- """
- TAK position report
- """
- @property
- def chat(self) -> global___GeoChat:
- """
- ATAK GeoChat message
- """
- def __init__(
- self,
- *,
- is_compressed: builtins.bool = ...,
- contact: global___Contact | None = ...,
- group: global___Group | None = ...,
- status: global___Status | None = ...,
- pli: global___PLI | None = ...,
- chat: global___GeoChat | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["chat", b"chat", "contact", b"contact", "group", b"group", "payload_variant", b"payload_variant", "pli", b"pli", "status", b"status"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["chat", b"chat", "contact", b"contact", "group", b"group", "is_compressed", b"is_compressed", "payload_variant", b"payload_variant", "pli", b"pli", "status", b"status"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["pli", "chat"] | None: ...
-
-global___TAKPacket = TAKPacket
-
-@typing_extensions.final
-class GeoChat(google.protobuf.message.Message):
- """
- ATAK GeoChat message
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MESSAGE_FIELD_NUMBER: builtins.int
- TO_FIELD_NUMBER: builtins.int
- TO_CALLSIGN_FIELD_NUMBER: builtins.int
- message: builtins.str
- """
- The text message
- """
- to: builtins.str
- """
- Uid recipient of the message
- """
- to_callsign: builtins.str
- """
- Callsign of the recipient for the message
- """
- def __init__(
- self,
- *,
- message: builtins.str = ...,
- to: builtins.str | None = ...,
- to_callsign: builtins.str | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["_to", b"_to", "_to_callsign", b"_to_callsign", "to", b"to", "to_callsign", b"to_callsign"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["_to", b"_to", "_to_callsign", b"_to_callsign", "message", b"message", "to", b"to", "to_callsign", b"to_callsign"]) -> None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_to", b"_to"]) -> typing_extensions.Literal["to"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_callsign", b"_to_callsign"]) -> typing_extensions.Literal["to_callsign"] | None: ...
-
-global___GeoChat = GeoChat
-
-@typing_extensions.final
-class Group(google.protobuf.message.Message):
- """
- ATAK Group
- <__group role='Team Member' name='Cyan'/>
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ROLE_FIELD_NUMBER: builtins.int
- TEAM_FIELD_NUMBER: builtins.int
- role: global___MemberRole.ValueType
- """
- Role of the group member
- """
- team: global___Team.ValueType
- """
- Team (color)
- Default Cyan
- """
- def __init__(
- self,
- *,
- role: global___MemberRole.ValueType = ...,
- team: global___Team.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["role", b"role", "team", b"team"]) -> None: ...
-
-global___Group = Group
-
-@typing_extensions.final
-class Status(google.protobuf.message.Message):
- """
- ATAK EUD Status
-
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- BATTERY_FIELD_NUMBER: builtins.int
- battery: builtins.int
- """
- Battery level
- """
- def __init__(
- self,
- *,
- battery: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["battery", b"battery"]) -> None: ...
-
-global___Status = Status
-
-@typing_extensions.final
-class Contact(google.protobuf.message.Message):
- """
- ATAK Contact
-
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CALLSIGN_FIELD_NUMBER: builtins.int
- DEVICE_CALLSIGN_FIELD_NUMBER: builtins.int
- callsign: builtins.str
- """
- Callsign
- """
- device_callsign: builtins.str
- """
- Device callsign
-
- IP address of endpoint in integer form (0.0.0.0 default)
- """
- def __init__(
- self,
- *,
- callsign: builtins.str = ...,
- device_callsign: builtins.str = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["callsign", b"callsign", "device_callsign", b"device_callsign"]) -> None: ...
-
-global___Contact = Contact
-
-@typing_extensions.final
-class PLI(google.protobuf.message.Message):
- """
- Position Location Information from ATAK
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- LATITUDE_I_FIELD_NUMBER: builtins.int
- LONGITUDE_I_FIELD_NUMBER: builtins.int
- ALTITUDE_FIELD_NUMBER: builtins.int
- SPEED_FIELD_NUMBER: builtins.int
- COURSE_FIELD_NUMBER: builtins.int
- latitude_i: builtins.int
- """
- The new preferred location encoding, multiply by 1e-7 to get degrees
- in floating point
- """
- longitude_i: builtins.int
- """
- The new preferred location encoding, multiply by 1e-7 to get degrees
- in floating point
- """
- altitude: builtins.int
- """
- Altitude (ATAK prefers HAE)
- """
- speed: builtins.int
- """
- Speed
- """
- course: builtins.int
- """
- Course in degrees
- """
- def __init__(
- self,
- *,
- latitude_i: builtins.int = ...,
- longitude_i: builtins.int = ...,
- altitude: builtins.int = ...,
- speed: builtins.int = ...,
- course: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["altitude", b"altitude", "course", b"course", "latitude_i", b"latitude_i", "longitude_i", b"longitude_i", "speed", b"speed"]) -> None: ...
-
-global___PLI = PLI
diff --git a/meshtastic/cannedmessages_pb2.py b/meshtastic/cannedmessages_pb2.py
deleted file mode 100644
index 058f3cf..0000000
--- a/meshtastic/cannedmessages_pb2.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/cannedmessages.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmeshtastic/cannedmessages.proto\x12\nmeshtastic\"-\n\x19\x43\x61nnedMessageModuleConfig\x12\x10\n\x08messages\x18\x01 \x01(\tBn\n\x13\x63om.geeksville.meshB\x19\x43\x61nnedMessageConfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.cannedmessages_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\031CannedMessageConfigProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _CANNEDMESSAGEMODULECONFIG._serialized_start=47
- _CANNEDMESSAGEMODULECONFIG._serialized_end=92
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/cannedmessages_pb2.pyi b/meshtastic/cannedmessages_pb2.pyi
deleted file mode 100644
index 9ee96bd..0000000
--- a/meshtastic/cannedmessages_pb2.pyi
+++ /dev/null
@@ -1,37 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class CannedMessageModuleConfig(google.protobuf.message.Message):
- """
- Canned message module configuration.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MESSAGES_FIELD_NUMBER: builtins.int
- messages: builtins.str
- """
- Predefined messages for canned message module separated by '|' characters.
- """
- def __init__(
- self,
- *,
- messages: builtins.str = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["messages", b"messages"]) -> None: ...
-
-global___CannedMessageModuleConfig = CannedMessageModuleConfig
diff --git a/meshtastic/channel_pb2.py b/meshtastic/channel_pb2.py
deleted file mode 100644
index 2e66fe8..0000000
--- a/meshtastic/channel_pb2.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/channel.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18meshtastic/channel.proto\x12\nmeshtastic\"\xb8\x01\n\x0f\x43hannelSettings\x12\x17\n\x0b\x63hannel_num\x18\x01 \x01(\rB\x02\x18\x01\x12\x0b\n\x03psk\x18\x02 \x01(\x0c\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\n\n\x02id\x18\x04 \x01(\x07\x12\x16\n\x0euplink_enabled\x18\x05 \x01(\x08\x12\x18\n\x10\x64ownlink_enabled\x18\x06 \x01(\x08\x12\x33\n\x0fmodule_settings\x18\x07 \x01(\x0b\x32\x1a.meshtastic.ModuleSettings\"E\n\x0eModuleSettings\x12\x1a\n\x12position_precision\x18\x01 \x01(\r\x12\x17\n\x0fis_client_muted\x18\x02 \x01(\x08\"\xa1\x01\n\x07\x43hannel\x12\r\n\x05index\x18\x01 \x01(\x05\x12-\n\x08settings\x18\x02 \x01(\x0b\x32\x1b.meshtastic.ChannelSettings\x12&\n\x04role\x18\x03 \x01(\x0e\x32\x18.meshtastic.Channel.Role\"0\n\x04Role\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07PRIMARY\x10\x01\x12\r\n\tSECONDARY\x10\x02\x42\x62\n\x13\x63om.geeksville.meshB\rChannelProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.channel_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\rChannelProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _CHANNELSETTINGS.fields_by_name['channel_num']._options = None
- _CHANNELSETTINGS.fields_by_name['channel_num']._serialized_options = b'\030\001'
- _CHANNELSETTINGS._serialized_start=41
- _CHANNELSETTINGS._serialized_end=225
- _MODULESETTINGS._serialized_start=227
- _MODULESETTINGS._serialized_end=296
- _CHANNEL._serialized_start=299
- _CHANNEL._serialized_end=460
- _CHANNEL_ROLE._serialized_start=412
- _CHANNEL_ROLE._serialized_end=460
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/channel_pb2.pyi b/meshtastic/channel_pb2.pyi
deleted file mode 100644
index ff23a5f..0000000
--- a/meshtastic/channel_pb2.pyi
+++ /dev/null
@@ -1,231 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class ChannelSettings(google.protobuf.message.Message):
- """
- This information can be encoded as a QRcode/url so that other users can configure
- their radio to join the same channel.
- A note about how channel names are shown to users: channelname-X
- poundsymbol is a prefix used to indicate this is a channel name (idea from @professr).
- Where X is a letter from A-Z (base 26) representing a hash of the PSK for this
- channel - so that if the user changes anything about the channel (which does
- force a new PSK) this letter will also change. Thus preventing user confusion if
- two friends try to type in a channel name of "BobsChan" and then can't talk
- because their PSKs will be different.
- The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26"
- This also allows the option of someday if people have the PSK off (zero), the
- users COULD type in a channel name and be able to talk.
- FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
- FIXME: explain how apps use channels for security.
- explain how remote settings and remote gpio are managed as an example
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CHANNEL_NUM_FIELD_NUMBER: builtins.int
- PSK_FIELD_NUMBER: builtins.int
- NAME_FIELD_NUMBER: builtins.int
- ID_FIELD_NUMBER: builtins.int
- UPLINK_ENABLED_FIELD_NUMBER: builtins.int
- DOWNLINK_ENABLED_FIELD_NUMBER: builtins.int
- MODULE_SETTINGS_FIELD_NUMBER: builtins.int
- channel_num: builtins.int
- """
- Deprecated in favor of LoraConfig.channel_num
- """
- psk: builtins.bytes
- """
- A simple pre-shared key for now for crypto.
- Must be either 0 bytes (no crypto), 16 bytes (AES128), or 32 bytes (AES256).
- A special shorthand is used for 1 byte long psks.
- These psks should be treated as only minimally secure,
- because they are listed in this source code.
- Those bytes are mapped using the following scheme:
- `0` = No crypto
- `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0x01}
- `2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
- Shown to user as simple1 through 10
- """
- name: builtins.str
- """
- A SHORT name that will be packed into the URL.
- Less than 12 bytes.
- Something for end users to call the channel
- If this is the empty string it is assumed that this channel
- is the special (minimally secure) "Default"channel.
- In user interfaces it should be rendered as a local language translation of "X".
- For channel_num hashing empty string will be treated as "X".
- Where "X" is selected based on the English words listed above for ModemPreset
- """
- id: builtins.int
- """
- Used to construct a globally unique channel ID.
- The full globally unique ID will be: "name.id" where ID is shown as base36.
- Assuming that the number of meshtastic users is below 20K (true for a long time)
- the chance of this 64 bit random number colliding with anyone else is super low.
- And the penalty for collision is low as well, it just means that anyone trying to decrypt channel messages might need to
- try multiple candidate channels.
- Any time a non wire compatible change is made to a channel, this field should be regenerated.
- There are a small number of 'special' globally known (and fairly) insecure standard channels.
- Those channels do not have a numeric id included in the settings, but instead it is pulled from
- a table of well known IDs.
- (see Well Known Channels FIXME)
- """
- uplink_enabled: builtins.bool
- """
- If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe
- """
- downlink_enabled: builtins.bool
- """
- If true, messages seen on the internet will be forwarded to the local mesh.
- """
- @property
- def module_settings(self) -> global___ModuleSettings:
- """
- Per-channel module settings.
- """
- def __init__(
- self,
- *,
- channel_num: builtins.int = ...,
- psk: builtins.bytes = ...,
- name: builtins.str = ...,
- id: builtins.int = ...,
- uplink_enabled: builtins.bool = ...,
- downlink_enabled: builtins.bool = ...,
- module_settings: global___ModuleSettings | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["module_settings", b"module_settings"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel_num", b"channel_num", "downlink_enabled", b"downlink_enabled", "id", b"id", "module_settings", b"module_settings", "name", b"name", "psk", b"psk", "uplink_enabled", b"uplink_enabled"]) -> None: ...
-
-global___ChannelSettings = ChannelSettings
-
-@typing_extensions.final
-class ModuleSettings(google.protobuf.message.Message):
- """
- This message is specifically for modules to store per-channel configuration data.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- POSITION_PRECISION_FIELD_NUMBER: builtins.int
- IS_CLIENT_MUTED_FIELD_NUMBER: builtins.int
- position_precision: builtins.int
- """
- Bits of precision for the location sent in position packets.
- """
- is_client_muted: builtins.bool
- """
- Controls whether or not the phone / clients should mute the current channel
- Useful for noisy public channels you don't necessarily want to disable
- """
- def __init__(
- self,
- *,
- position_precision: builtins.int = ...,
- is_client_muted: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["is_client_muted", b"is_client_muted", "position_precision", b"position_precision"]) -> None: ...
-
-global___ModuleSettings = ModuleSettings
-
-@typing_extensions.final
-class Channel(google.protobuf.message.Message):
- """
- A pair of a channel number, mode and the (sharable) settings for that channel
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Role:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _RoleEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Channel._Role.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DISABLED: Channel._Role.ValueType # 0
- """
- This channel is not in use right now
- """
- PRIMARY: Channel._Role.ValueType # 1
- """
- This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
- """
- SECONDARY: Channel._Role.ValueType # 2
- """
- Secondary channels are only used for encryption/decryption/authentication purposes.
- Their radio settings (freq etc) are ignored, only psk is used.
- """
-
- class Role(_Role, metaclass=_RoleEnumTypeWrapper):
- """
- How this channel is being used (or not).
- Note: this field is an enum to give us options for the future.
- In particular, someday we might make a 'SCANNING' option.
- SCANNING channels could have different frequencies and the radio would
- occasionally check that freq to see if anything is being transmitted.
- For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow
- cross band routing as needed.
- If a device has only a single radio (the common case) only one channel can be PRIMARY at a time
- (but any number of SECONDARY channels can't be sent received on that common frequency)
- """
-
- DISABLED: Channel.Role.ValueType # 0
- """
- This channel is not in use right now
- """
- PRIMARY: Channel.Role.ValueType # 1
- """
- This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
- """
- SECONDARY: Channel.Role.ValueType # 2
- """
- Secondary channels are only used for encryption/decryption/authentication purposes.
- Their radio settings (freq etc) are ignored, only psk is used.
- """
-
- INDEX_FIELD_NUMBER: builtins.int
- SETTINGS_FIELD_NUMBER: builtins.int
- ROLE_FIELD_NUMBER: builtins.int
- index: builtins.int
- """
- The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1)
- (Someday - not currently implemented) An index of -1 could be used to mean "set by name",
- in which case the target node will find and set the channel by settings.name.
- """
- @property
- def settings(self) -> global___ChannelSettings:
- """
- The new settings, or NULL to disable that channel
- """
- role: global___Channel.Role.ValueType
- """
- TODO: REPLACE
- """
- def __init__(
- self,
- *,
- index: builtins.int = ...,
- settings: global___ChannelSettings | None = ...,
- role: global___Channel.Role.ValueType = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["settings", b"settings"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["index", b"index", "role", b"role", "settings", b"settings"]) -> None: ...
-
-global___Channel = Channel
diff --git a/meshtastic/clientonly_pb2.py b/meshtastic/clientonly_pb2.py
deleted file mode 100644
index 91e7b0d..0000000
--- a/meshtastic/clientonly_pb2.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/clientonly.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 import localonly_pb2 as meshtastic_dot_localonly__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bmeshtastic/clientonly.proto\x12\nmeshtastic\x1a\x1ameshtastic/localonly.proto\"\x8d\x02\n\rDeviceProfile\x12\x16\n\tlong_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nshort_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63hannel_url\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\x17.meshtastic.LocalConfigH\x03\x88\x01\x01\x12\x39\n\rmodule_config\x18\x05 \x01(\x0b\x32\x1d.meshtastic.LocalModuleConfigH\x04\x88\x01\x01\x42\x0c\n\n_long_nameB\r\n\x0b_short_nameB\x0e\n\x0c_channel_urlB\t\n\x07_configB\x10\n\x0e_module_configBe\n\x13\x63om.geeksville.meshB\x10\x43lientOnlyProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.clientonly_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\020ClientOnlyProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _DEVICEPROFILE._serialized_start=72
- _DEVICEPROFILE._serialized_end=341
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/clientonly_pb2.pyi b/meshtastic/clientonly_pb2.pyi
deleted file mode 100644
index 10820e7..0000000
--- a/meshtastic/clientonly_pb2.pyi
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import meshtastic.localonly_pb2
-import sys
-import typing
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class DeviceProfile(google.protobuf.message.Message):
- """
- This abstraction is used to contain any configuration for provisioning a node on any client.
- It is useful for importing and exporting configurations.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- LONG_NAME_FIELD_NUMBER: builtins.int
- SHORT_NAME_FIELD_NUMBER: builtins.int
- CHANNEL_URL_FIELD_NUMBER: builtins.int
- CONFIG_FIELD_NUMBER: builtins.int
- MODULE_CONFIG_FIELD_NUMBER: builtins.int
- long_name: builtins.str
- """
- Long name for the node
- """
- short_name: builtins.str
- """
- Short name of the node
- """
- channel_url: builtins.str
- """
- The url of the channels from our node
- """
- @property
- def config(self) -> meshtastic.localonly_pb2.LocalConfig:
- """
- The Config of the node
- """
- @property
- def module_config(self) -> meshtastic.localonly_pb2.LocalModuleConfig:
- """
- The ModuleConfig of the node
- """
- def __init__(
- self,
- *,
- long_name: builtins.str | None = ...,
- short_name: builtins.str | None = ...,
- channel_url: builtins.str | None = ...,
- config: meshtastic.localonly_pb2.LocalConfig | None = ...,
- module_config: meshtastic.localonly_pb2.LocalModuleConfig | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["_channel_url", b"_channel_url", "_config", b"_config", "_long_name", b"_long_name", "_module_config", b"_module_config", "_short_name", b"_short_name", "channel_url", b"channel_url", "config", b"config", "long_name", b"long_name", "module_config", b"module_config", "short_name", b"short_name"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["_channel_url", b"_channel_url", "_config", b"_config", "_long_name", b"_long_name", "_module_config", b"_module_config", "_short_name", b"_short_name", "channel_url", b"channel_url", "config", b"config", "long_name", b"long_name", "module_config", b"module_config", "short_name", b"short_name"]) -> None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_channel_url", b"_channel_url"]) -> typing_extensions.Literal["channel_url"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_config", b"_config"]) -> typing_extensions.Literal["config"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_long_name", b"_long_name"]) -> typing_extensions.Literal["long_name"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_module_config", b"_module_config"]) -> typing_extensions.Literal["module_config"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_short_name", b"_short_name"]) -> typing_extensions.Literal["short_name"] | None: ...
-
-global___DeviceProfile = DeviceProfile
diff --git a/meshtastic/config_pb2.py b/meshtastic/config_pb2.py
deleted file mode 100644
index 9b216f9..0000000
--- a/meshtastic/config_pb2.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17meshtastic/config.proto\x12\nmeshtastic\"\xc2\x1f\n\x06\x43onfig\x12\x31\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x1f.meshtastic.Config.DeviceConfigH\x00\x12\x35\n\x08position\x18\x02 \x01(\x0b\x32!.meshtastic.Config.PositionConfigH\x00\x12/\n\x05power\x18\x03 \x01(\x0b\x32\x1e.meshtastic.Config.PowerConfigH\x00\x12\x33\n\x07network\x18\x04 \x01(\x0b\x32 .meshtastic.Config.NetworkConfigH\x00\x12\x33\n\x07\x64isplay\x18\x05 \x01(\x0b\x32 .meshtastic.Config.DisplayConfigH\x00\x12-\n\x04lora\x18\x06 \x01(\x0b\x32\x1d.meshtastic.Config.LoRaConfigH\x00\x12\x37\n\tbluetooth\x18\x07 \x01(\x0b\x32\".meshtastic.Config.BluetoothConfigH\x00\x1a\x91\x05\n\x0c\x44\x65viceConfig\x12\x32\n\x04role\x18\x01 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\x12\x16\n\x0eserial_enabled\x18\x02 \x01(\x08\x12\x19\n\x11\x64\x65\x62ug_log_enabled\x18\x03 \x01(\x08\x12\x13\n\x0b\x62utton_gpio\x18\x04 \x01(\r\x12\x13\n\x0b\x62uzzer_gpio\x18\x05 \x01(\r\x12I\n\x10rebroadcast_mode\x18\x06 \x01(\x0e\x32/.meshtastic.Config.DeviceConfig.RebroadcastMode\x12 \n\x18node_info_broadcast_secs\x18\x07 \x01(\r\x12\"\n\x1a\x64ouble_tap_as_button_press\x18\x08 \x01(\x08\x12\x12\n\nis_managed\x18\t \x01(\x08\x12\x1c\n\x14\x64isable_triple_click\x18\n \x01(\x08\x12\r\n\x05tzdef\x18\x0b \x01(\t\x12\x1e\n\x16led_heartbeat_disabled\x18\x0c \x01(\x08\"\xaa\x01\n\x04Role\x12\n\n\x06\x43LIENT\x10\x00\x12\x0f\n\x0b\x43LIENT_MUTE\x10\x01\x12\n\n\x06ROUTER\x10\x02\x12\x11\n\rROUTER_CLIENT\x10\x03\x12\x0c\n\x08REPEATER\x10\x04\x12\x0b\n\x07TRACKER\x10\x05\x12\n\n\x06SENSOR\x10\x06\x12\x07\n\x03TAK\x10\x07\x12\x11\n\rCLIENT_HIDDEN\x10\x08\x12\x12\n\x0eLOST_AND_FOUND\x10\t\x12\x0f\n\x0bTAK_TRACKER\x10\n\"Q\n\x0fRebroadcastMode\x12\x07\n\x03\x41LL\x10\x00\x12\x15\n\x11\x41LL_SKIP_DECODING\x10\x01\x12\x0e\n\nLOCAL_ONLY\x10\x02\x12\x0e\n\nKNOWN_ONLY\x10\x03\x1a\x91\x05\n\x0ePositionConfig\x12\x1f\n\x17position_broadcast_secs\x18\x01 \x01(\r\x12(\n position_broadcast_smart_enabled\x18\x02 \x01(\x08\x12\x16\n\x0e\x66ixed_position\x18\x03 \x01(\x08\x12\x17\n\x0bgps_enabled\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x13gps_update_interval\x18\x05 \x01(\r\x12\x1c\n\x10gps_attempt_time\x18\x06 \x01(\rB\x02\x18\x01\x12\x16\n\x0eposition_flags\x18\x07 \x01(\r\x12\x0f\n\x07rx_gpio\x18\x08 \x01(\r\x12\x0f\n\x07tx_gpio\x18\t \x01(\r\x12(\n broadcast_smart_minimum_distance\x18\n \x01(\r\x12-\n%broadcast_smart_minimum_interval_secs\x18\x0b \x01(\r\x12\x13\n\x0bgps_en_gpio\x18\x0c \x01(\r\x12;\n\x08gps_mode\x18\r \x01(\x0e\x32).meshtastic.Config.PositionConfig.GpsMode\"\xab\x01\n\rPositionFlags\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x41LTITUDE\x10\x01\x12\x10\n\x0c\x41LTITUDE_MSL\x10\x02\x12\x16\n\x12GEOIDAL_SEPARATION\x10\x04\x12\x07\n\x03\x44OP\x10\x08\x12\t\n\x05HVDOP\x10\x10\x12\r\n\tSATINVIEW\x10 \x12\n\n\x06SEQ_NO\x10@\x12\x0e\n\tTIMESTAMP\x10\x80\x01\x12\x0c\n\x07HEADING\x10\x80\x02\x12\n\n\x05SPEED\x10\x80\x04\"5\n\x07GpsMode\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0f\n\x0bNOT_PRESENT\x10\x02\x1a\xea\x01\n\x0bPowerConfig\x12\x17\n\x0fis_power_saving\x18\x01 \x01(\x08\x12&\n\x1eon_battery_shutdown_after_secs\x18\x02 \x01(\r\x12\x1f\n\x17\x61\x64\x63_multiplier_override\x18\x03 \x01(\x02\x12\x1b\n\x13wait_bluetooth_secs\x18\x04 \x01(\r\x12\x10\n\x08sds_secs\x18\x06 \x01(\r\x12\x0f\n\x07ls_secs\x18\x07 \x01(\r\x12\x15\n\rmin_wake_secs\x18\x08 \x01(\r\x12\"\n\x1a\x64\x65vice_battery_ina_address\x18\t \x01(\r\x1a\xfe\x02\n\rNetworkConfig\x12\x14\n\x0cwifi_enabled\x18\x01 \x01(\x08\x12\x11\n\twifi_ssid\x18\x03 \x01(\t\x12\x10\n\x08wifi_psk\x18\x04 \x01(\t\x12\x12\n\nntp_server\x18\x05 \x01(\t\x12\x13\n\x0b\x65th_enabled\x18\x06 \x01(\x08\x12\x42\n\x0c\x61\x64\x64ress_mode\x18\x07 \x01(\x0e\x32,.meshtastic.Config.NetworkConfig.AddressMode\x12@\n\x0bipv4_config\x18\x08 \x01(\x0b\x32+.meshtastic.Config.NetworkConfig.IpV4Config\x12\x16\n\x0ersyslog_server\x18\t \x01(\t\x1a\x46\n\nIpV4Config\x12\n\n\x02ip\x18\x01 \x01(\x07\x12\x0f\n\x07gateway\x18\x02 \x01(\x07\x12\x0e\n\x06subnet\x18\x03 \x01(\x07\x12\x0b\n\x03\x64ns\x18\x04 \x01(\x07\"#\n\x0b\x41\x64\x64ressMode\x12\x08\n\x04\x44HCP\x10\x00\x12\n\n\x06STATIC\x10\x01\x1a\xbe\x05\n\rDisplayConfig\x12\x16\n\x0escreen_on_secs\x18\x01 \x01(\r\x12H\n\ngps_format\x18\x02 \x01(\x0e\x32\x34.meshtastic.Config.DisplayConfig.GpsCoordinateFormat\x12!\n\x19\x61uto_screen_carousel_secs\x18\x03 \x01(\r\x12\x19\n\x11\x63ompass_north_top\x18\x04 \x01(\x08\x12\x13\n\x0b\x66lip_screen\x18\x05 \x01(\x08\x12<\n\x05units\x18\x06 \x01(\x0e\x32-.meshtastic.Config.DisplayConfig.DisplayUnits\x12\x37\n\x04oled\x18\x07 \x01(\x0e\x32).meshtastic.Config.DisplayConfig.OledType\x12\x41\n\x0b\x64isplaymode\x18\x08 \x01(\x0e\x32,.meshtastic.Config.DisplayConfig.DisplayMode\x12\x14\n\x0cheading_bold\x18\t \x01(\x08\x12\x1d\n\x15wake_on_tap_or_motion\x18\n \x01(\x08\"M\n\x13GpsCoordinateFormat\x12\x07\n\x03\x44\x45\x43\x10\x00\x12\x07\n\x03\x44MS\x10\x01\x12\x07\n\x03UTM\x10\x02\x12\x08\n\x04MGRS\x10\x03\x12\x07\n\x03OLC\x10\x04\x12\x08\n\x04OSGR\x10\x05\"(\n\x0c\x44isplayUnits\x12\n\n\x06METRIC\x10\x00\x12\x0c\n\x08IMPERIAL\x10\x01\"M\n\x08OledType\x12\r\n\tOLED_AUTO\x10\x00\x12\x10\n\x0cOLED_SSD1306\x10\x01\x12\x0f\n\x0bOLED_SH1106\x10\x02\x12\x0f\n\x0bOLED_SH1107\x10\x03\"A\n\x0b\x44isplayMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08TWOCOLOR\x10\x01\x12\x0c\n\x08INVERTED\x10\x02\x12\t\n\x05\x43OLOR\x10\x03\x1a\xb0\x06\n\nLoRaConfig\x12\x12\n\nuse_preset\x18\x01 \x01(\x08\x12?\n\x0cmodem_preset\x18\x02 \x01(\x0e\x32).meshtastic.Config.LoRaConfig.ModemPreset\x12\x11\n\tbandwidth\x18\x03 \x01(\r\x12\x15\n\rspread_factor\x18\x04 \x01(\r\x12\x13\n\x0b\x63oding_rate\x18\x05 \x01(\r\x12\x18\n\x10\x66requency_offset\x18\x06 \x01(\x02\x12\x38\n\x06region\x18\x07 \x01(\x0e\x32(.meshtastic.Config.LoRaConfig.RegionCode\x12\x11\n\thop_limit\x18\x08 \x01(\r\x12\x12\n\ntx_enabled\x18\t \x01(\x08\x12\x10\n\x08tx_power\x18\n \x01(\x05\x12\x13\n\x0b\x63hannel_num\x18\x0b \x01(\r\x12\x1b\n\x13override_duty_cycle\x18\x0c \x01(\x08\x12\x1e\n\x16sx126x_rx_boosted_gain\x18\r \x01(\x08\x12\x1a\n\x12override_frequency\x18\x0e \x01(\x02\x12\x17\n\x0fignore_incoming\x18g \x03(\r\x12\x13\n\x0bignore_mqtt\x18h \x01(\x08\"\xcd\x01\n\nRegionCode\x12\t\n\x05UNSET\x10\x00\x12\x06\n\x02US\x10\x01\x12\n\n\x06\x45U_433\x10\x02\x12\n\n\x06\x45U_868\x10\x03\x12\x06\n\x02\x43N\x10\x04\x12\x06\n\x02JP\x10\x05\x12\x07\n\x03\x41NZ\x10\x06\x12\x06\n\x02KR\x10\x07\x12\x06\n\x02TW\x10\x08\x12\x06\n\x02RU\x10\t\x12\x06\n\x02IN\x10\n\x12\n\n\x06NZ_865\x10\x0b\x12\x06\n\x02TH\x10\x0c\x12\x0b\n\x07LORA_24\x10\r\x12\n\n\x06UA_433\x10\x0e\x12\n\n\x06UA_868\x10\x0f\x12\n\n\x06MY_433\x10\x10\x12\n\n\x06MY_919\x10\x11\x12\n\n\x06SG_923\x10\x12\"\x94\x01\n\x0bModemPreset\x12\r\n\tLONG_FAST\x10\x00\x12\r\n\tLONG_SLOW\x10\x01\x12\x12\n\x0eVERY_LONG_SLOW\x10\x02\x12\x0f\n\x0bMEDIUM_SLOW\x10\x03\x12\x0f\n\x0bMEDIUM_FAST\x10\x04\x12\x0e\n\nSHORT_SLOW\x10\x05\x12\x0e\n\nSHORT_FAST\x10\x06\x12\x11\n\rLONG_MODERATE\x10\x07\x1a\xad\x01\n\x0f\x42luetoothConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12<\n\x04mode\x18\x02 \x01(\x0e\x32..meshtastic.Config.BluetoothConfig.PairingMode\x12\x11\n\tfixed_pin\x18\x03 \x01(\r\"8\n\x0bPairingMode\x12\x0e\n\nRANDOM_PIN\x10\x00\x12\r\n\tFIXED_PIN\x10\x01\x12\n\n\x06NO_PIN\x10\x02\x42\x11\n\x0fpayload_variantBa\n\x13\x63om.geeksville.meshB\x0c\x43onfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.config_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\014ConfigProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _CONFIG_POSITIONCONFIG.fields_by_name['gps_enabled']._options = None
- _CONFIG_POSITIONCONFIG.fields_by_name['gps_enabled']._serialized_options = b'\030\001'
- _CONFIG_POSITIONCONFIG.fields_by_name['gps_attempt_time']._options = None
- _CONFIG_POSITIONCONFIG.fields_by_name['gps_attempt_time']._serialized_options = b'\030\001'
- _CONFIG._serialized_start=40
- _CONFIG._serialized_end=4074
- _CONFIG_DEVICECONFIG._serialized_start=416
- _CONFIG_DEVICECONFIG._serialized_end=1073
- _CONFIG_DEVICECONFIG_ROLE._serialized_start=820
- _CONFIG_DEVICECONFIG_ROLE._serialized_end=990
- _CONFIG_DEVICECONFIG_REBROADCASTMODE._serialized_start=992
- _CONFIG_DEVICECONFIG_REBROADCASTMODE._serialized_end=1073
- _CONFIG_POSITIONCONFIG._serialized_start=1076
- _CONFIG_POSITIONCONFIG._serialized_end=1733
- _CONFIG_POSITIONCONFIG_POSITIONFLAGS._serialized_start=1507
- _CONFIG_POSITIONCONFIG_POSITIONFLAGS._serialized_end=1678
- _CONFIG_POSITIONCONFIG_GPSMODE._serialized_start=1680
- _CONFIG_POSITIONCONFIG_GPSMODE._serialized_end=1733
- _CONFIG_POWERCONFIG._serialized_start=1736
- _CONFIG_POWERCONFIG._serialized_end=1970
- _CONFIG_NETWORKCONFIG._serialized_start=1973
- _CONFIG_NETWORKCONFIG._serialized_end=2355
- _CONFIG_NETWORKCONFIG_IPV4CONFIG._serialized_start=2248
- _CONFIG_NETWORKCONFIG_IPV4CONFIG._serialized_end=2318
- _CONFIG_NETWORKCONFIG_ADDRESSMODE._serialized_start=2320
- _CONFIG_NETWORKCONFIG_ADDRESSMODE._serialized_end=2355
- _CONFIG_DISPLAYCONFIG._serialized_start=2358
- _CONFIG_DISPLAYCONFIG._serialized_end=3060
- _CONFIG_DISPLAYCONFIG_GPSCOORDINATEFORMAT._serialized_start=2795
- _CONFIG_DISPLAYCONFIG_GPSCOORDINATEFORMAT._serialized_end=2872
- _CONFIG_DISPLAYCONFIG_DISPLAYUNITS._serialized_start=2874
- _CONFIG_DISPLAYCONFIG_DISPLAYUNITS._serialized_end=2914
- _CONFIG_DISPLAYCONFIG_OLEDTYPE._serialized_start=2916
- _CONFIG_DISPLAYCONFIG_OLEDTYPE._serialized_end=2993
- _CONFIG_DISPLAYCONFIG_DISPLAYMODE._serialized_start=2995
- _CONFIG_DISPLAYCONFIG_DISPLAYMODE._serialized_end=3060
- _CONFIG_LORACONFIG._serialized_start=3063
- _CONFIG_LORACONFIG._serialized_end=3879
- _CONFIG_LORACONFIG_REGIONCODE._serialized_start=3523
- _CONFIG_LORACONFIG_REGIONCODE._serialized_end=3728
- _CONFIG_LORACONFIG_MODEMPRESET._serialized_start=3731
- _CONFIG_LORACONFIG_MODEMPRESET._serialized_end=3879
- _CONFIG_BLUETOOTHCONFIG._serialized_start=3882
- _CONFIG_BLUETOOTHCONFIG._serialized_end=4055
- _CONFIG_BLUETOOTHCONFIG_PAIRINGMODE._serialized_start=3999
- _CONFIG_BLUETOOTHCONFIG_PAIRINGMODE._serialized_end=4055
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/config_pb2.pyi b/meshtastic/config_pb2.pyi
deleted file mode 100644
index 4e864f0..0000000
--- a/meshtastic/config_pb2.pyi
+++ /dev/null
@@ -1,1508 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class Config(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- @typing_extensions.final
- class DeviceConfig(google.protobuf.message.Message):
- """
- Configuration
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Role:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _RoleEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DeviceConfig._Role.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- CLIENT: Config.DeviceConfig._Role.ValueType # 0
- """
- Description: App connected or stand alone messaging device.
- Technical Details: Default Role
- """
- CLIENT_MUTE: Config.DeviceConfig._Role.ValueType # 1
- """
- Description: Device that does not forward packets from other devices.
- """
- ROUTER: Config.DeviceConfig._Role.ValueType # 2
- """
- Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list.
- Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
- The wifi radio and the oled screen will be put to sleep.
- This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh.
- """
- ROUTER_CLIENT: Config.DeviceConfig._Role.ValueType # 3
- """
- Description: Combination of both ROUTER and CLIENT. Not for mobile devices.
- """
- REPEATER: Config.DeviceConfig._Role.ValueType # 4
- """
- Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.
- Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
- or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.
- """
- TRACKER: Config.DeviceConfig._Role.ValueType # 5
- """
- Description: Broadcasts GPS position packets as priority.
- Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default.
- When used in conjunction with power.is_power_saving = true, nodes will wake up,
- send position, and then sleep for position.position_broadcast_secs seconds.
- """
- SENSOR: Config.DeviceConfig._Role.ValueType # 6
- """
- Description: Broadcasts telemetry packets as priority.
- Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
- When used in conjunction with power.is_power_saving = true, nodes will wake up,
- send environment telemetry, and then sleep for telemetry.environment_update_interval seconds.
- """
- TAK: Config.DeviceConfig._Role.ValueType # 7
- """
- Description: Optimized for ATAK system communication and reduces routine broadcasts.
- Technical Details: Used for nodes dedicated for connection to an ATAK EUD.
- Turns off many of the routine broadcasts to favor CoT packet stream
- from the Meshtastic ATAK plugin -> IMeshService -> Node
- """
- CLIENT_HIDDEN: Config.DeviceConfig._Role.ValueType # 8
- """
- Description: Device that only broadcasts as needed for stealth or power savings.
- Technical Details: Used for nodes that "only speak when spoken to"
- Turns all of the routine broadcasts but allows for ad-hoc communication
- Still rebroadcasts, but with local only rebroadcast mode (known meshes only)
- Can be used for clandestine operation or to dramatically reduce airtime / power consumption
- """
- LOST_AND_FOUND: Config.DeviceConfig._Role.ValueType # 9
- """
- Description: Broadcasts location as message to default channel regularly for to assist with device recovery.
- Technical Details: Used to automatically send a text message to the mesh
- with the current position of the device on a frequent interval:
- "I'm lost! Position: lat / long"
- """
- TAK_TRACKER: Config.DeviceConfig._Role.ValueType # 10
- """
- Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts.
- Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream
- and automatic TAK PLI (position location information) broadcasts.
- Uses position module configuration to determine TAK PLI broadcast interval.
- """
-
- class Role(_Role, metaclass=_RoleEnumTypeWrapper):
- """
- Defines the device's role on the Mesh network
- """
-
- CLIENT: Config.DeviceConfig.Role.ValueType # 0
- """
- Description: App connected or stand alone messaging device.
- Technical Details: Default Role
- """
- CLIENT_MUTE: Config.DeviceConfig.Role.ValueType # 1
- """
- Description: Device that does not forward packets from other devices.
- """
- ROUTER: Config.DeviceConfig.Role.ValueType # 2
- """
- Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list.
- Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
- The wifi radio and the oled screen will be put to sleep.
- This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh.
- """
- ROUTER_CLIENT: Config.DeviceConfig.Role.ValueType # 3
- """
- Description: Combination of both ROUTER and CLIENT. Not for mobile devices.
- """
- REPEATER: Config.DeviceConfig.Role.ValueType # 4
- """
- Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.
- Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
- or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.
- """
- TRACKER: Config.DeviceConfig.Role.ValueType # 5
- """
- Description: Broadcasts GPS position packets as priority.
- Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default.
- When used in conjunction with power.is_power_saving = true, nodes will wake up,
- send position, and then sleep for position.position_broadcast_secs seconds.
- """
- SENSOR: Config.DeviceConfig.Role.ValueType # 6
- """
- Description: Broadcasts telemetry packets as priority.
- Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
- When used in conjunction with power.is_power_saving = true, nodes will wake up,
- send environment telemetry, and then sleep for telemetry.environment_update_interval seconds.
- """
- TAK: Config.DeviceConfig.Role.ValueType # 7
- """
- Description: Optimized for ATAK system communication and reduces routine broadcasts.
- Technical Details: Used for nodes dedicated for connection to an ATAK EUD.
- Turns off many of the routine broadcasts to favor CoT packet stream
- from the Meshtastic ATAK plugin -> IMeshService -> Node
- """
- CLIENT_HIDDEN: Config.DeviceConfig.Role.ValueType # 8
- """
- Description: Device that only broadcasts as needed for stealth or power savings.
- Technical Details: Used for nodes that "only speak when spoken to"
- Turns all of the routine broadcasts but allows for ad-hoc communication
- Still rebroadcasts, but with local only rebroadcast mode (known meshes only)
- Can be used for clandestine operation or to dramatically reduce airtime / power consumption
- """
- LOST_AND_FOUND: Config.DeviceConfig.Role.ValueType # 9
- """
- Description: Broadcasts location as message to default channel regularly for to assist with device recovery.
- Technical Details: Used to automatically send a text message to the mesh
- with the current position of the device on a frequent interval:
- "I'm lost! Position: lat / long"
- """
- TAK_TRACKER: Config.DeviceConfig.Role.ValueType # 10
- """
- Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts.
- Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream
- and automatic TAK PLI (position location information) broadcasts.
- Uses position module configuration to determine TAK PLI broadcast interval.
- """
-
- class _RebroadcastMode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _RebroadcastModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DeviceConfig._RebroadcastMode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- ALL: Config.DeviceConfig._RebroadcastMode.ValueType # 0
- """
- Default behavior.
- Rebroadcast any observed message, if it was on our private channel or from another mesh with the same lora params.
- """
- ALL_SKIP_DECODING: Config.DeviceConfig._RebroadcastMode.ValueType # 1
- """
- Same as behavior as ALL but skips packet decoding and simply rebroadcasts them.
- Only available in Repeater role. Setting this on any other roles will result in ALL behavior.
- """
- LOCAL_ONLY: Config.DeviceConfig._RebroadcastMode.ValueType # 2
- """
- Ignores observed messages from foreign meshes that are open or those which it cannot decrypt.
- Only rebroadcasts message on the nodes local primary / secondary channels.
- """
- KNOWN_ONLY: Config.DeviceConfig._RebroadcastMode.ValueType # 3
- """
- Ignores observed messages from foreign meshes like LOCAL_ONLY,
- but takes it step further by also ignoring messages from nodenums not in the node's known list (NodeDB)
- """
-
- class RebroadcastMode(_RebroadcastMode, metaclass=_RebroadcastModeEnumTypeWrapper):
- """
- Defines the device's behavior for how messages are rebroadcast
- """
-
- ALL: Config.DeviceConfig.RebroadcastMode.ValueType # 0
- """
- Default behavior.
- Rebroadcast any observed message, if it was on our private channel or from another mesh with the same lora params.
- """
- ALL_SKIP_DECODING: Config.DeviceConfig.RebroadcastMode.ValueType # 1
- """
- Same as behavior as ALL but skips packet decoding and simply rebroadcasts them.
- Only available in Repeater role. Setting this on any other roles will result in ALL behavior.
- """
- LOCAL_ONLY: Config.DeviceConfig.RebroadcastMode.ValueType # 2
- """
- Ignores observed messages from foreign meshes that are open or those which it cannot decrypt.
- Only rebroadcasts message on the nodes local primary / secondary channels.
- """
- KNOWN_ONLY: Config.DeviceConfig.RebroadcastMode.ValueType # 3
- """
- Ignores observed messages from foreign meshes like LOCAL_ONLY,
- but takes it step further by also ignoring messages from nodenums not in the node's known list (NodeDB)
- """
-
- ROLE_FIELD_NUMBER: builtins.int
- SERIAL_ENABLED_FIELD_NUMBER: builtins.int
- DEBUG_LOG_ENABLED_FIELD_NUMBER: builtins.int
- BUTTON_GPIO_FIELD_NUMBER: builtins.int
- BUZZER_GPIO_FIELD_NUMBER: builtins.int
- REBROADCAST_MODE_FIELD_NUMBER: builtins.int
- NODE_INFO_BROADCAST_SECS_FIELD_NUMBER: builtins.int
- DOUBLE_TAP_AS_BUTTON_PRESS_FIELD_NUMBER: builtins.int
- IS_MANAGED_FIELD_NUMBER: builtins.int
- DISABLE_TRIPLE_CLICK_FIELD_NUMBER: builtins.int
- TZDEF_FIELD_NUMBER: builtins.int
- LED_HEARTBEAT_DISABLED_FIELD_NUMBER: builtins.int
- role: global___Config.DeviceConfig.Role.ValueType
- """
- Sets the role of node
- """
- serial_enabled: builtins.bool
- """
- Disabling this will disable the SerialConsole by not initilizing the StreamAPI
- """
- debug_log_enabled: builtins.bool
- """
- By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
- Set this to true to leave the debug log outputting even when API is active.
- """
- button_gpio: builtins.int
- """
- For boards without a hard wired button, this is the pin number that will be used
- Boards that have more than one button can swap the function with this one. defaults to BUTTON_PIN if defined.
- """
- buzzer_gpio: builtins.int
- """
- For boards without a PWM buzzer, this is the pin number that will be used
- Defaults to PIN_BUZZER if defined.
- """
- rebroadcast_mode: global___Config.DeviceConfig.RebroadcastMode.ValueType
- """
- Sets the role of node
- """
- node_info_broadcast_secs: builtins.int
- """
- Send our nodeinfo this often
- Defaults to 900 Seconds (15 minutes)
- """
- double_tap_as_button_press: builtins.bool
- """
- Treat double tap interrupt on supported accelerometers as a button press if set to true
- """
- is_managed: builtins.bool
- """
- If true, device is considered to be "managed" by a mesh administrator
- Clients should then limit available configuration and administrative options inside the user interface
- """
- disable_triple_click: builtins.bool
- """
- Disables the triple-press of user button to enable or disable GPS
- """
- tzdef: builtins.str
- """
- POSIX Timezone definition string from https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv.
- """
- led_heartbeat_disabled: builtins.bool
- """
- If true, disable the default blinking LED (LED_PIN) behavior on the device
- """
- def __init__(
- self,
- *,
- role: global___Config.DeviceConfig.Role.ValueType = ...,
- serial_enabled: builtins.bool = ...,
- debug_log_enabled: builtins.bool = ...,
- button_gpio: builtins.int = ...,
- buzzer_gpio: builtins.int = ...,
- rebroadcast_mode: global___Config.DeviceConfig.RebroadcastMode.ValueType = ...,
- node_info_broadcast_secs: builtins.int = ...,
- double_tap_as_button_press: builtins.bool = ...,
- is_managed: builtins.bool = ...,
- disable_triple_click: builtins.bool = ...,
- tzdef: builtins.str = ...,
- led_heartbeat_disabled: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["button_gpio", b"button_gpio", "buzzer_gpio", b"buzzer_gpio", "debug_log_enabled", b"debug_log_enabled", "disable_triple_click", b"disable_triple_click", "double_tap_as_button_press", b"double_tap_as_button_press", "is_managed", b"is_managed", "led_heartbeat_disabled", b"led_heartbeat_disabled", "node_info_broadcast_secs", b"node_info_broadcast_secs", "rebroadcast_mode", b"rebroadcast_mode", "role", b"role", "serial_enabled", b"serial_enabled", "tzdef", b"tzdef"]) -> None: ...
-
- @typing_extensions.final
- class PositionConfig(google.protobuf.message.Message):
- """
- Position Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _PositionFlags:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _PositionFlagsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.PositionConfig._PositionFlags.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: Config.PositionConfig._PositionFlags.ValueType # 0
- """
- Required for compilation
- """
- ALTITUDE: Config.PositionConfig._PositionFlags.ValueType # 1
- """
- Include an altitude value (if available)
- """
- ALTITUDE_MSL: Config.PositionConfig._PositionFlags.ValueType # 2
- """
- Altitude value is MSL
- """
- GEOIDAL_SEPARATION: Config.PositionConfig._PositionFlags.ValueType # 4
- """
- Include geoidal separation
- """
- DOP: Config.PositionConfig._PositionFlags.ValueType # 8
- """
- Include the DOP value ; PDOP used by default, see below
- """
- HVDOP: Config.PositionConfig._PositionFlags.ValueType # 16
- """
- If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
- """
- SATINVIEW: Config.PositionConfig._PositionFlags.ValueType # 32
- """
- Include number of "satellites in view"
- """
- SEQ_NO: Config.PositionConfig._PositionFlags.ValueType # 64
- """
- Include a sequence number incremented per packet
- """
- TIMESTAMP: Config.PositionConfig._PositionFlags.ValueType # 128
- """
- Include positional timestamp (from GPS solution)
- """
- HEADING: Config.PositionConfig._PositionFlags.ValueType # 256
- """
- Include positional heading
- Intended for use with vehicle not walking speeds
- walking speeds are likely to be error prone like the compass
- """
- SPEED: Config.PositionConfig._PositionFlags.ValueType # 512
- """
- Include positional speed
- Intended for use with vehicle not walking speeds
- walking speeds are likely to be error prone like the compass
- """
-
- class PositionFlags(_PositionFlags, metaclass=_PositionFlagsEnumTypeWrapper):
- """
- Bit field of boolean configuration options, indicating which optional
- fields to include when assembling POSITION messages.
- Longitude, latitude, altitude, speed, heading, and DOP
- are always included (also time if GPS-synced)
- NOTE: the more fields are included, the larger the message will be -
- leading to longer airtime and a higher risk of packet loss
- """
-
- UNSET: Config.PositionConfig.PositionFlags.ValueType # 0
- """
- Required for compilation
- """
- ALTITUDE: Config.PositionConfig.PositionFlags.ValueType # 1
- """
- Include an altitude value (if available)
- """
- ALTITUDE_MSL: Config.PositionConfig.PositionFlags.ValueType # 2
- """
- Altitude value is MSL
- """
- GEOIDAL_SEPARATION: Config.PositionConfig.PositionFlags.ValueType # 4
- """
- Include geoidal separation
- """
- DOP: Config.PositionConfig.PositionFlags.ValueType # 8
- """
- Include the DOP value ; PDOP used by default, see below
- """
- HVDOP: Config.PositionConfig.PositionFlags.ValueType # 16
- """
- If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
- """
- SATINVIEW: Config.PositionConfig.PositionFlags.ValueType # 32
- """
- Include number of "satellites in view"
- """
- SEQ_NO: Config.PositionConfig.PositionFlags.ValueType # 64
- """
- Include a sequence number incremented per packet
- """
- TIMESTAMP: Config.PositionConfig.PositionFlags.ValueType # 128
- """
- Include positional timestamp (from GPS solution)
- """
- HEADING: Config.PositionConfig.PositionFlags.ValueType # 256
- """
- Include positional heading
- Intended for use with vehicle not walking speeds
- walking speeds are likely to be error prone like the compass
- """
- SPEED: Config.PositionConfig.PositionFlags.ValueType # 512
- """
- Include positional speed
- Intended for use with vehicle not walking speeds
- walking speeds are likely to be error prone like the compass
- """
-
- class _GpsMode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _GpsModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.PositionConfig._GpsMode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DISABLED: Config.PositionConfig._GpsMode.ValueType # 0
- """
- GPS is present but disabled
- """
- ENABLED: Config.PositionConfig._GpsMode.ValueType # 1
- """
- GPS is present and enabled
- """
- NOT_PRESENT: Config.PositionConfig._GpsMode.ValueType # 2
- """
- GPS is not present on the device
- """
-
- class GpsMode(_GpsMode, metaclass=_GpsModeEnumTypeWrapper): ...
- DISABLED: Config.PositionConfig.GpsMode.ValueType # 0
- """
- GPS is present but disabled
- """
- ENABLED: Config.PositionConfig.GpsMode.ValueType # 1
- """
- GPS is present and enabled
- """
- NOT_PRESENT: Config.PositionConfig.GpsMode.ValueType # 2
- """
- GPS is not present on the device
- """
-
- POSITION_BROADCAST_SECS_FIELD_NUMBER: builtins.int
- POSITION_BROADCAST_SMART_ENABLED_FIELD_NUMBER: builtins.int
- FIXED_POSITION_FIELD_NUMBER: builtins.int
- GPS_ENABLED_FIELD_NUMBER: builtins.int
- GPS_UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- GPS_ATTEMPT_TIME_FIELD_NUMBER: builtins.int
- POSITION_FLAGS_FIELD_NUMBER: builtins.int
- RX_GPIO_FIELD_NUMBER: builtins.int
- TX_GPIO_FIELD_NUMBER: builtins.int
- BROADCAST_SMART_MINIMUM_DISTANCE_FIELD_NUMBER: builtins.int
- BROADCAST_SMART_MINIMUM_INTERVAL_SECS_FIELD_NUMBER: builtins.int
- GPS_EN_GPIO_FIELD_NUMBER: builtins.int
- GPS_MODE_FIELD_NUMBER: builtins.int
- position_broadcast_secs: builtins.int
- """
- We should send our position this often (but only if it has changed significantly)
- Defaults to 15 minutes
- """
- position_broadcast_smart_enabled: builtins.bool
- """
- Adaptive position braoadcast, which is now the default.
- """
- fixed_position: builtins.bool
- """
- If set, this node is at a fixed position.
- We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node.
- The lat/lon/alt can be set by an internal GPS or with the help of the app.
- """
- gps_enabled: builtins.bool
- """
- Is GPS enabled for this node?
- """
- gps_update_interval: builtins.int
- """
- How often should we try to get GPS position (in seconds)
- or zero for the default of once every 30 seconds
- or a very large value (maxint) to update only once at boot.
- """
- gps_attempt_time: builtins.int
- """
- Deprecated in favor of using smart / regular broadcast intervals as implicit attempt time
- """
- position_flags: builtins.int
- """
- Bit field of boolean configuration options for POSITION messages
- (bitwise OR of PositionFlags)
- """
- rx_gpio: builtins.int
- """
- (Re)define GPS_RX_PIN for your board.
- """
- tx_gpio: builtins.int
- """
- (Re)define GPS_TX_PIN for your board.
- """
- broadcast_smart_minimum_distance: builtins.int
- """
- The minimum distance in meters traveled (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
- """
- broadcast_smart_minimum_interval_secs: builtins.int
- """
- The minimum number of seconds (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
- """
- gps_en_gpio: builtins.int
- """
- (Re)define PIN_GPS_EN for your board.
- """
- gps_mode: global___Config.PositionConfig.GpsMode.ValueType
- """
- Set where GPS is enabled, disabled, or not present
- """
- def __init__(
- self,
- *,
- position_broadcast_secs: builtins.int = ...,
- position_broadcast_smart_enabled: builtins.bool = ...,
- fixed_position: builtins.bool = ...,
- gps_enabled: builtins.bool = ...,
- gps_update_interval: builtins.int = ...,
- gps_attempt_time: builtins.int = ...,
- position_flags: builtins.int = ...,
- rx_gpio: builtins.int = ...,
- tx_gpio: builtins.int = ...,
- broadcast_smart_minimum_distance: builtins.int = ...,
- broadcast_smart_minimum_interval_secs: builtins.int = ...,
- gps_en_gpio: builtins.int = ...,
- gps_mode: global___Config.PositionConfig.GpsMode.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["broadcast_smart_minimum_distance", b"broadcast_smart_minimum_distance", "broadcast_smart_minimum_interval_secs", b"broadcast_smart_minimum_interval_secs", "fixed_position", b"fixed_position", "gps_attempt_time", b"gps_attempt_time", "gps_en_gpio", b"gps_en_gpio", "gps_enabled", b"gps_enabled", "gps_mode", b"gps_mode", "gps_update_interval", b"gps_update_interval", "position_broadcast_secs", b"position_broadcast_secs", "position_broadcast_smart_enabled", b"position_broadcast_smart_enabled", "position_flags", b"position_flags", "rx_gpio", b"rx_gpio", "tx_gpio", b"tx_gpio"]) -> None: ...
-
- @typing_extensions.final
- class PowerConfig(google.protobuf.message.Message):
- """
- Power Config\\
- See [Power Config](/docs/settings/config/power) for additional power config details.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- IS_POWER_SAVING_FIELD_NUMBER: builtins.int
- ON_BATTERY_SHUTDOWN_AFTER_SECS_FIELD_NUMBER: builtins.int
- ADC_MULTIPLIER_OVERRIDE_FIELD_NUMBER: builtins.int
- WAIT_BLUETOOTH_SECS_FIELD_NUMBER: builtins.int
- SDS_SECS_FIELD_NUMBER: builtins.int
- LS_SECS_FIELD_NUMBER: builtins.int
- MIN_WAKE_SECS_FIELD_NUMBER: builtins.int
- DEVICE_BATTERY_INA_ADDRESS_FIELD_NUMBER: builtins.int
- is_power_saving: builtins.bool
- """
- Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio.
- Don't use this setting if you want to use your device with the phone apps or are using a device without a user button.
- Technical Details: Works for ESP32 devices and NRF52 devices in the Sensor or Tracker roles
- """
- on_battery_shutdown_after_secs: builtins.int
- """
- Description: If non-zero, the device will fully power off this many seconds after external power is removed.
- """
- adc_multiplier_override: builtins.float
- """
- Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
- Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
- https://meshtastic.org/docs/configuration/radio/power/#adc-multiplier-override
- Should be set to floating point value between 2 and 6
- """
- wait_bluetooth_secs: builtins.int
- """
- Description: The number of seconds for to wait before turning off BLE in No Bluetooth states
- Technical Details: ESP32 Only 0 for default of 1 minute
- """
- sds_secs: builtins.int
- """
- Super Deep Sleep Seconds
- While in Light Sleep if mesh_sds_timeout_secs is exceeded we will lower into super deep sleep
- for this value (default 1 year) or a button press
- 0 for default of one year
- """
- ls_secs: builtins.int
- """
- Description: In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
- Technical Details: ESP32 Only 0 for default of 300
- """
- min_wake_secs: builtins.int
- """
- Description: While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
- Technical Details: ESP32 Only 0 for default of 10 seconds
- """
- device_battery_ina_address: builtins.int
- """
- I2C address of INA_2XX to use for reading device battery voltage
- """
- def __init__(
- self,
- *,
- is_power_saving: builtins.bool = ...,
- on_battery_shutdown_after_secs: builtins.int = ...,
- adc_multiplier_override: builtins.float = ...,
- wait_bluetooth_secs: builtins.int = ...,
- sds_secs: builtins.int = ...,
- ls_secs: builtins.int = ...,
- min_wake_secs: builtins.int = ...,
- device_battery_ina_address: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["adc_multiplier_override", b"adc_multiplier_override", "device_battery_ina_address", b"device_battery_ina_address", "is_power_saving", b"is_power_saving", "ls_secs", b"ls_secs", "min_wake_secs", b"min_wake_secs", "on_battery_shutdown_after_secs", b"on_battery_shutdown_after_secs", "sds_secs", b"sds_secs", "wait_bluetooth_secs", b"wait_bluetooth_secs"]) -> None: ...
-
- @typing_extensions.final
- class NetworkConfig(google.protobuf.message.Message):
- """
- Network Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _AddressMode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _AddressModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.NetworkConfig._AddressMode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DHCP: Config.NetworkConfig._AddressMode.ValueType # 0
- """
- obtain ip address via DHCP
- """
- STATIC: Config.NetworkConfig._AddressMode.ValueType # 1
- """
- use static ip address
- """
-
- class AddressMode(_AddressMode, metaclass=_AddressModeEnumTypeWrapper): ...
- DHCP: Config.NetworkConfig.AddressMode.ValueType # 0
- """
- obtain ip address via DHCP
- """
- STATIC: Config.NetworkConfig.AddressMode.ValueType # 1
- """
- use static ip address
- """
-
- @typing_extensions.final
- class IpV4Config(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- IP_FIELD_NUMBER: builtins.int
- GATEWAY_FIELD_NUMBER: builtins.int
- SUBNET_FIELD_NUMBER: builtins.int
- DNS_FIELD_NUMBER: builtins.int
- ip: builtins.int
- """
- Static IP address
- """
- gateway: builtins.int
- """
- Static gateway address
- """
- subnet: builtins.int
- """
- Static subnet mask
- """
- dns: builtins.int
- """
- Static DNS server address
- """
- def __init__(
- self,
- *,
- ip: builtins.int = ...,
- gateway: builtins.int = ...,
- subnet: builtins.int = ...,
- dns: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["dns", b"dns", "gateway", b"gateway", "ip", b"ip", "subnet", b"subnet"]) -> None: ...
-
- WIFI_ENABLED_FIELD_NUMBER: builtins.int
- WIFI_SSID_FIELD_NUMBER: builtins.int
- WIFI_PSK_FIELD_NUMBER: builtins.int
- NTP_SERVER_FIELD_NUMBER: builtins.int
- ETH_ENABLED_FIELD_NUMBER: builtins.int
- ADDRESS_MODE_FIELD_NUMBER: builtins.int
- IPV4_CONFIG_FIELD_NUMBER: builtins.int
- RSYSLOG_SERVER_FIELD_NUMBER: builtins.int
- wifi_enabled: builtins.bool
- """
- Enable WiFi (disables Bluetooth)
- """
- wifi_ssid: builtins.str
- """
- If set, this node will try to join the specified wifi network and
- acquire an address via DHCP
- """
- wifi_psk: builtins.str
- """
- If set, will be use to authenticate to the named wifi
- """
- ntp_server: builtins.str
- """
- NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
- """
- eth_enabled: builtins.bool
- """
- Enable Ethernet
- """
- address_mode: global___Config.NetworkConfig.AddressMode.ValueType
- """
- acquire an address via DHCP or assign static
- """
- @property
- def ipv4_config(self) -> global___Config.NetworkConfig.IpV4Config:
- """
- struct to keep static address
- """
- rsyslog_server: builtins.str
- """
- rsyslog Server and Port
- """
- def __init__(
- self,
- *,
- wifi_enabled: builtins.bool = ...,
- wifi_ssid: builtins.str = ...,
- wifi_psk: builtins.str = ...,
- ntp_server: builtins.str = ...,
- eth_enabled: builtins.bool = ...,
- address_mode: global___Config.NetworkConfig.AddressMode.ValueType = ...,
- ipv4_config: global___Config.NetworkConfig.IpV4Config | None = ...,
- rsyslog_server: builtins.str = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["ipv4_config", b"ipv4_config"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["address_mode", b"address_mode", "eth_enabled", b"eth_enabled", "ipv4_config", b"ipv4_config", "ntp_server", b"ntp_server", "rsyslog_server", b"rsyslog_server", "wifi_enabled", b"wifi_enabled", "wifi_psk", b"wifi_psk", "wifi_ssid", b"wifi_ssid"]) -> None: ...
-
- @typing_extensions.final
- class DisplayConfig(google.protobuf.message.Message):
- """
- Display Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _GpsCoordinateFormat:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _GpsCoordinateFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DisplayConfig._GpsCoordinateFormat.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DEC: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 0
- """
- GPS coordinates are displayed in the normal decimal degrees format:
- DD.DDDDDD DDD.DDDDDD
- """
- DMS: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 1
- """
- GPS coordinates are displayed in the degrees minutes seconds format:
- DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
- """
- UTM: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 2
- """
- Universal Transverse Mercator format:
- ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
- """
- MGRS: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 3
- """
- Military Grid Reference System format:
- ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
- E is easting, N is northing
- """
- OLC: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 4
- """
- Open Location Code (aka Plus Codes).
- """
- OSGR: Config.DisplayConfig._GpsCoordinateFormat.ValueType # 5
- """
- Ordnance Survey Grid Reference (the National Grid System of the UK).
- Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
- E is the easting, N is the northing
- """
-
- class GpsCoordinateFormat(_GpsCoordinateFormat, metaclass=_GpsCoordinateFormatEnumTypeWrapper):
- """
- How the GPS coordinates are displayed on the OLED screen.
- """
-
- DEC: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 0
- """
- GPS coordinates are displayed in the normal decimal degrees format:
- DD.DDDDDD DDD.DDDDDD
- """
- DMS: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 1
- """
- GPS coordinates are displayed in the degrees minutes seconds format:
- DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
- """
- UTM: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 2
- """
- Universal Transverse Mercator format:
- ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
- """
- MGRS: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 3
- """
- Military Grid Reference System format:
- ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
- E is easting, N is northing
- """
- OLC: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 4
- """
- Open Location Code (aka Plus Codes).
- """
- OSGR: Config.DisplayConfig.GpsCoordinateFormat.ValueType # 5
- """
- Ordnance Survey Grid Reference (the National Grid System of the UK).
- Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
- E is the easting, N is the northing
- """
-
- class _DisplayUnits:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _DisplayUnitsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DisplayConfig._DisplayUnits.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- METRIC: Config.DisplayConfig._DisplayUnits.ValueType # 0
- """
- Metric (Default)
- """
- IMPERIAL: Config.DisplayConfig._DisplayUnits.ValueType # 1
- """
- Imperial
- """
-
- class DisplayUnits(_DisplayUnits, metaclass=_DisplayUnitsEnumTypeWrapper):
- """
- Unit display preference
- """
-
- METRIC: Config.DisplayConfig.DisplayUnits.ValueType # 0
- """
- Metric (Default)
- """
- IMPERIAL: Config.DisplayConfig.DisplayUnits.ValueType # 1
- """
- Imperial
- """
-
- class _OledType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _OledTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DisplayConfig._OledType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- OLED_AUTO: Config.DisplayConfig._OledType.ValueType # 0
- """
- Default / Auto
- """
- OLED_SSD1306: Config.DisplayConfig._OledType.ValueType # 1
- """
- Default / Auto
- """
- OLED_SH1106: Config.DisplayConfig._OledType.ValueType # 2
- """
- Default / Auto
- """
- OLED_SH1107: Config.DisplayConfig._OledType.ValueType # 3
- """
- Can not be auto detected but set by proto. Used for 128x128 screens
- """
-
- class OledType(_OledType, metaclass=_OledTypeEnumTypeWrapper):
- """
- Override OLED outo detect with this if it fails.
- """
-
- OLED_AUTO: Config.DisplayConfig.OledType.ValueType # 0
- """
- Default / Auto
- """
- OLED_SSD1306: Config.DisplayConfig.OledType.ValueType # 1
- """
- Default / Auto
- """
- OLED_SH1106: Config.DisplayConfig.OledType.ValueType # 2
- """
- Default / Auto
- """
- OLED_SH1107: Config.DisplayConfig.OledType.ValueType # 3
- """
- Can not be auto detected but set by proto. Used for 128x128 screens
- """
-
- class _DisplayMode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _DisplayModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.DisplayConfig._DisplayMode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DEFAULT: Config.DisplayConfig._DisplayMode.ValueType # 0
- """
- Default. The old style for the 128x64 OLED screen
- """
- TWOCOLOR: Config.DisplayConfig._DisplayMode.ValueType # 1
- """
- Rearrange display elements to cater for bicolor OLED displays
- """
- INVERTED: Config.DisplayConfig._DisplayMode.ValueType # 2
- """
- Same as TwoColor, but with inverted top bar. Not so good for Epaper displays
- """
- COLOR: Config.DisplayConfig._DisplayMode.ValueType # 3
- """
- TFT Full Color Displays (not implemented yet)
- """
-
- class DisplayMode(_DisplayMode, metaclass=_DisplayModeEnumTypeWrapper): ...
- DEFAULT: Config.DisplayConfig.DisplayMode.ValueType # 0
- """
- Default. The old style for the 128x64 OLED screen
- """
- TWOCOLOR: Config.DisplayConfig.DisplayMode.ValueType # 1
- """
- Rearrange display elements to cater for bicolor OLED displays
- """
- INVERTED: Config.DisplayConfig.DisplayMode.ValueType # 2
- """
- Same as TwoColor, but with inverted top bar. Not so good for Epaper displays
- """
- COLOR: Config.DisplayConfig.DisplayMode.ValueType # 3
- """
- TFT Full Color Displays (not implemented yet)
- """
-
- SCREEN_ON_SECS_FIELD_NUMBER: builtins.int
- GPS_FORMAT_FIELD_NUMBER: builtins.int
- AUTO_SCREEN_CAROUSEL_SECS_FIELD_NUMBER: builtins.int
- COMPASS_NORTH_TOP_FIELD_NUMBER: builtins.int
- FLIP_SCREEN_FIELD_NUMBER: builtins.int
- UNITS_FIELD_NUMBER: builtins.int
- OLED_FIELD_NUMBER: builtins.int
- DISPLAYMODE_FIELD_NUMBER: builtins.int
- HEADING_BOLD_FIELD_NUMBER: builtins.int
- WAKE_ON_TAP_OR_MOTION_FIELD_NUMBER: builtins.int
- screen_on_secs: builtins.int
- """
- Number of seconds the screen stays on after pressing the user button or receiving a message
- 0 for default of one minute MAXUINT for always on
- """
- gps_format: global___Config.DisplayConfig.GpsCoordinateFormat.ValueType
- """
- How the GPS coordinates are formatted on the OLED screen.
- """
- auto_screen_carousel_secs: builtins.int
- """
- Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
- Potentially useful for devices without user buttons.
- """
- compass_north_top: builtins.bool
- """
- If this is set, the displayed compass will always point north. if unset, the old behaviour
- (top of display is heading direction) is used.
- """
- flip_screen: builtins.bool
- """
- Flip screen vertically, for cases that mount the screen upside down
- """
- units: global___Config.DisplayConfig.DisplayUnits.ValueType
- """
- Perferred display units
- """
- oled: global___Config.DisplayConfig.OledType.ValueType
- """
- Override auto-detect in screen
- """
- displaymode: global___Config.DisplayConfig.DisplayMode.ValueType
- """
- Display Mode
- """
- heading_bold: builtins.bool
- """
- Print first line in pseudo-bold? FALSE is original style, TRUE is bold
- """
- wake_on_tap_or_motion: builtins.bool
- """
- Should we wake the screen up on accelerometer detected motion or tap
- """
- def __init__(
- self,
- *,
- screen_on_secs: builtins.int = ...,
- gps_format: global___Config.DisplayConfig.GpsCoordinateFormat.ValueType = ...,
- auto_screen_carousel_secs: builtins.int = ...,
- compass_north_top: builtins.bool = ...,
- flip_screen: builtins.bool = ...,
- units: global___Config.DisplayConfig.DisplayUnits.ValueType = ...,
- oled: global___Config.DisplayConfig.OledType.ValueType = ...,
- displaymode: global___Config.DisplayConfig.DisplayMode.ValueType = ...,
- heading_bold: builtins.bool = ...,
- wake_on_tap_or_motion: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["auto_screen_carousel_secs", b"auto_screen_carousel_secs", "compass_north_top", b"compass_north_top", "displaymode", b"displaymode", "flip_screen", b"flip_screen", "gps_format", b"gps_format", "heading_bold", b"heading_bold", "oled", b"oled", "screen_on_secs", b"screen_on_secs", "units", b"units", "wake_on_tap_or_motion", b"wake_on_tap_or_motion"]) -> None: ...
-
- @typing_extensions.final
- class LoRaConfig(google.protobuf.message.Message):
- """
- Lora Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _RegionCode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _RegionCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.LoRaConfig._RegionCode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: Config.LoRaConfig._RegionCode.ValueType # 0
- """
- Region is not set
- """
- US: Config.LoRaConfig._RegionCode.ValueType # 1
- """
- United States
- """
- EU_433: Config.LoRaConfig._RegionCode.ValueType # 2
- """
- European Union 433mhz
- """
- EU_868: Config.LoRaConfig._RegionCode.ValueType # 3
- """
- European Union 868mhz
- """
- CN: Config.LoRaConfig._RegionCode.ValueType # 4
- """
- China
- """
- JP: Config.LoRaConfig._RegionCode.ValueType # 5
- """
- Japan
- """
- ANZ: Config.LoRaConfig._RegionCode.ValueType # 6
- """
- Australia / New Zealand
- """
- KR: Config.LoRaConfig._RegionCode.ValueType # 7
- """
- Korea
- """
- TW: Config.LoRaConfig._RegionCode.ValueType # 8
- """
- Taiwan
- """
- RU: Config.LoRaConfig._RegionCode.ValueType # 9
- """
- Russia
- """
- IN: Config.LoRaConfig._RegionCode.ValueType # 10
- """
- India
- """
- NZ_865: Config.LoRaConfig._RegionCode.ValueType # 11
- """
- New Zealand 865mhz
- """
- TH: Config.LoRaConfig._RegionCode.ValueType # 12
- """
- Thailand
- """
- LORA_24: Config.LoRaConfig._RegionCode.ValueType # 13
- """
- WLAN Band
- """
- UA_433: Config.LoRaConfig._RegionCode.ValueType # 14
- """
- Ukraine 433mhz
- """
- UA_868: Config.LoRaConfig._RegionCode.ValueType # 15
- """
- Ukraine 868mhz
- """
- MY_433: Config.LoRaConfig._RegionCode.ValueType # 16
- """
- Malaysia 433mhz
- """
- MY_919: Config.LoRaConfig._RegionCode.ValueType # 17
- """
- Malaysia 919mhz
- """
- SG_923: Config.LoRaConfig._RegionCode.ValueType # 18
- """
- Singapore 923mhz
- """
-
- class RegionCode(_RegionCode, metaclass=_RegionCodeEnumTypeWrapper): ...
- UNSET: Config.LoRaConfig.RegionCode.ValueType # 0
- """
- Region is not set
- """
- US: Config.LoRaConfig.RegionCode.ValueType # 1
- """
- United States
- """
- EU_433: Config.LoRaConfig.RegionCode.ValueType # 2
- """
- European Union 433mhz
- """
- EU_868: Config.LoRaConfig.RegionCode.ValueType # 3
- """
- European Union 868mhz
- """
- CN: Config.LoRaConfig.RegionCode.ValueType # 4
- """
- China
- """
- JP: Config.LoRaConfig.RegionCode.ValueType # 5
- """
- Japan
- """
- ANZ: Config.LoRaConfig.RegionCode.ValueType # 6
- """
- Australia / New Zealand
- """
- KR: Config.LoRaConfig.RegionCode.ValueType # 7
- """
- Korea
- """
- TW: Config.LoRaConfig.RegionCode.ValueType # 8
- """
- Taiwan
- """
- RU: Config.LoRaConfig.RegionCode.ValueType # 9
- """
- Russia
- """
- IN: Config.LoRaConfig.RegionCode.ValueType # 10
- """
- India
- """
- NZ_865: Config.LoRaConfig.RegionCode.ValueType # 11
- """
- New Zealand 865mhz
- """
- TH: Config.LoRaConfig.RegionCode.ValueType # 12
- """
- Thailand
- """
- LORA_24: Config.LoRaConfig.RegionCode.ValueType # 13
- """
- WLAN Band
- """
- UA_433: Config.LoRaConfig.RegionCode.ValueType # 14
- """
- Ukraine 433mhz
- """
- UA_868: Config.LoRaConfig.RegionCode.ValueType # 15
- """
- Ukraine 868mhz
- """
- MY_433: Config.LoRaConfig.RegionCode.ValueType # 16
- """
- Malaysia 433mhz
- """
- MY_919: Config.LoRaConfig.RegionCode.ValueType # 17
- """
- Malaysia 919mhz
- """
- SG_923: Config.LoRaConfig.RegionCode.ValueType # 18
- """
- Singapore 923mhz
- """
-
- class _ModemPreset:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _ModemPresetEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.LoRaConfig._ModemPreset.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- LONG_FAST: Config.LoRaConfig._ModemPreset.ValueType # 0
- """
- Long Range - Fast
- """
- LONG_SLOW: Config.LoRaConfig._ModemPreset.ValueType # 1
- """
- Long Range - Slow
- """
- VERY_LONG_SLOW: Config.LoRaConfig._ModemPreset.ValueType # 2
- """
- Very Long Range - Slow
- """
- MEDIUM_SLOW: Config.LoRaConfig._ModemPreset.ValueType # 3
- """
- Medium Range - Slow
- """
- MEDIUM_FAST: Config.LoRaConfig._ModemPreset.ValueType # 4
- """
- Medium Range - Fast
- """
- SHORT_SLOW: Config.LoRaConfig._ModemPreset.ValueType # 5
- """
- Short Range - Slow
- """
- SHORT_FAST: Config.LoRaConfig._ModemPreset.ValueType # 6
- """
- Short Range - Fast
- """
- LONG_MODERATE: Config.LoRaConfig._ModemPreset.ValueType # 7
- """
- Long Range - Moderately Fast
- """
-
- class ModemPreset(_ModemPreset, metaclass=_ModemPresetEnumTypeWrapper):
- """
- Standard predefined channel settings
- Note: these mappings must match ModemPreset Choice in the device code.
- """
-
- LONG_FAST: Config.LoRaConfig.ModemPreset.ValueType # 0
- """
- Long Range - Fast
- """
- LONG_SLOW: Config.LoRaConfig.ModemPreset.ValueType # 1
- """
- Long Range - Slow
- """
- VERY_LONG_SLOW: Config.LoRaConfig.ModemPreset.ValueType # 2
- """
- Very Long Range - Slow
- """
- MEDIUM_SLOW: Config.LoRaConfig.ModemPreset.ValueType # 3
- """
- Medium Range - Slow
- """
- MEDIUM_FAST: Config.LoRaConfig.ModemPreset.ValueType # 4
- """
- Medium Range - Fast
- """
- SHORT_SLOW: Config.LoRaConfig.ModemPreset.ValueType # 5
- """
- Short Range - Slow
- """
- SHORT_FAST: Config.LoRaConfig.ModemPreset.ValueType # 6
- """
- Short Range - Fast
- """
- LONG_MODERATE: Config.LoRaConfig.ModemPreset.ValueType # 7
- """
- Long Range - Moderately Fast
- """
-
- USE_PRESET_FIELD_NUMBER: builtins.int
- MODEM_PRESET_FIELD_NUMBER: builtins.int
- BANDWIDTH_FIELD_NUMBER: builtins.int
- SPREAD_FACTOR_FIELD_NUMBER: builtins.int
- CODING_RATE_FIELD_NUMBER: builtins.int
- FREQUENCY_OFFSET_FIELD_NUMBER: builtins.int
- REGION_FIELD_NUMBER: builtins.int
- HOP_LIMIT_FIELD_NUMBER: builtins.int
- TX_ENABLED_FIELD_NUMBER: builtins.int
- TX_POWER_FIELD_NUMBER: builtins.int
- CHANNEL_NUM_FIELD_NUMBER: builtins.int
- OVERRIDE_DUTY_CYCLE_FIELD_NUMBER: builtins.int
- SX126X_RX_BOOSTED_GAIN_FIELD_NUMBER: builtins.int
- OVERRIDE_FREQUENCY_FIELD_NUMBER: builtins.int
- IGNORE_INCOMING_FIELD_NUMBER: builtins.int
- IGNORE_MQTT_FIELD_NUMBER: builtins.int
- use_preset: builtins.bool
- """
- When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
- will be taked from their respective manually defined fields
- """
- modem_preset: global___Config.LoRaConfig.ModemPreset.ValueType
- """
- Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
- As a heuristic: If bandwidth is specified, do not use modem_config.
- Because protobufs take ZERO space when the value is zero this works out nicely.
- This value is replaced by bandwidth/spread_factor/coding_rate.
- If you'd like to experiment with other options add them to MeshRadio.cpp in the device code.
- """
- bandwidth: builtins.int
- """
- Bandwidth in MHz
- Certain bandwidth numbers are 'special' and will be converted to the
- appropriate floating point value: 31 -> 31.25MHz
- """
- spread_factor: builtins.int
- """
- A number from 7 to 12.
- Indicates number of chirps per symbol as 1< 7 results in the default
- """
- tx_enabled: builtins.bool
- """
- Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
- Defaults to false
- """
- tx_power: builtins.int
- """
- If zero, then use default max legal continuous power (ie. something that won't
- burn out the radio hardware)
- In most cases you should use zero here.
- Units are in dBm.
- """
- channel_num: builtins.int
- """
- This controls the actual hardware frequency the radio transmits on.
- Most users should never need to be exposed to this field/concept.
- A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region).
- If ZERO then the rule is "use the old channel name hash based
- algorithm to derive the channel number")
- If using the hash algorithm the channel number will be: hash(channel_name) %
- NUM_CHANNELS (Where num channels depends on the regulatory region).
- """
- override_duty_cycle: builtins.bool
- """
- If true, duty cycle limits will be exceeded and thus you're possibly not following
- the local regulations if you're not a HAM.
- Has no effect if the duty cycle of the used region is 100%.
- """
- sx126x_rx_boosted_gain: builtins.bool
- """
- If true, sets RX boosted gain mode on SX126X based radios
- """
- override_frequency: builtins.float
- """
- This parameter is for advanced users and licensed HAM radio operators.
- Ignore Channel Calculation and use this frequency instead. The frequency_offset
- will still be applied. This will allow you to use out-of-band frequencies.
- Please respect your local laws and regulations. If you are a HAM, make sure you
- enable HAM mode and turn off encryption.
- """
- @property
- def ignore_incoming(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """
- For testing it is useful sometimes to force a node to never listen to
- particular other nodes (simulating radio out of range). All nodenums listed
- in ignore_incoming will have packets they send dropped on receive (by router.cpp)
- """
- ignore_mqtt: builtins.bool
- """
- If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it.
- """
- def __init__(
- self,
- *,
- use_preset: builtins.bool = ...,
- modem_preset: global___Config.LoRaConfig.ModemPreset.ValueType = ...,
- bandwidth: builtins.int = ...,
- spread_factor: builtins.int = ...,
- coding_rate: builtins.int = ...,
- frequency_offset: builtins.float = ...,
- region: global___Config.LoRaConfig.RegionCode.ValueType = ...,
- hop_limit: builtins.int = ...,
- tx_enabled: builtins.bool = ...,
- tx_power: builtins.int = ...,
- channel_num: builtins.int = ...,
- override_duty_cycle: builtins.bool = ...,
- sx126x_rx_boosted_gain: builtins.bool = ...,
- override_frequency: builtins.float = ...,
- ignore_incoming: collections.abc.Iterable[builtins.int] | None = ...,
- ignore_mqtt: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["bandwidth", b"bandwidth", "channel_num", b"channel_num", "coding_rate", b"coding_rate", "frequency_offset", b"frequency_offset", "hop_limit", b"hop_limit", "ignore_incoming", b"ignore_incoming", "ignore_mqtt", b"ignore_mqtt", "modem_preset", b"modem_preset", "override_duty_cycle", b"override_duty_cycle", "override_frequency", b"override_frequency", "region", b"region", "spread_factor", b"spread_factor", "sx126x_rx_boosted_gain", b"sx126x_rx_boosted_gain", "tx_enabled", b"tx_enabled", "tx_power", b"tx_power", "use_preset", b"use_preset"]) -> None: ...
-
- @typing_extensions.final
- class BluetoothConfig(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _PairingMode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _PairingModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Config.BluetoothConfig._PairingMode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- RANDOM_PIN: Config.BluetoothConfig._PairingMode.ValueType # 0
- """
- Device generates a random PIN that will be shown on the screen of the device for pairing
- """
- FIXED_PIN: Config.BluetoothConfig._PairingMode.ValueType # 1
- """
- Device requires a specified fixed PIN for pairing
- """
- NO_PIN: Config.BluetoothConfig._PairingMode.ValueType # 2
- """
- Device requires no PIN for pairing
- """
-
- class PairingMode(_PairingMode, metaclass=_PairingModeEnumTypeWrapper): ...
- RANDOM_PIN: Config.BluetoothConfig.PairingMode.ValueType # 0
- """
- Device generates a random PIN that will be shown on the screen of the device for pairing
- """
- FIXED_PIN: Config.BluetoothConfig.PairingMode.ValueType # 1
- """
- Device requires a specified fixed PIN for pairing
- """
- NO_PIN: Config.BluetoothConfig.PairingMode.ValueType # 2
- """
- Device requires no PIN for pairing
- """
-
- ENABLED_FIELD_NUMBER: builtins.int
- MODE_FIELD_NUMBER: builtins.int
- FIXED_PIN_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Enable Bluetooth on the device
- """
- mode: global___Config.BluetoothConfig.PairingMode.ValueType
- """
- Determines the pairing strategy for the device
- """
- fixed_pin: builtins.int
- """
- Specified PIN for PairingMode.FixedPin
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- mode: global___Config.BluetoothConfig.PairingMode.ValueType = ...,
- fixed_pin: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["enabled", b"enabled", "fixed_pin", b"fixed_pin", "mode", b"mode"]) -> None: ...
-
- DEVICE_FIELD_NUMBER: builtins.int
- POSITION_FIELD_NUMBER: builtins.int
- POWER_FIELD_NUMBER: builtins.int
- NETWORK_FIELD_NUMBER: builtins.int
- DISPLAY_FIELD_NUMBER: builtins.int
- LORA_FIELD_NUMBER: builtins.int
- BLUETOOTH_FIELD_NUMBER: builtins.int
- @property
- def device(self) -> global___Config.DeviceConfig: ...
- @property
- def position(self) -> global___Config.PositionConfig: ...
- @property
- def power(self) -> global___Config.PowerConfig: ...
- @property
- def network(self) -> global___Config.NetworkConfig: ...
- @property
- def display(self) -> global___Config.DisplayConfig: ...
- @property
- def lora(self) -> global___Config.LoRaConfig: ...
- @property
- def bluetooth(self) -> global___Config.BluetoothConfig: ...
- def __init__(
- self,
- *,
- device: global___Config.DeviceConfig | None = ...,
- position: global___Config.PositionConfig | None = ...,
- power: global___Config.PowerConfig | None = ...,
- network: global___Config.NetworkConfig | None = ...,
- display: global___Config.DisplayConfig | None = ...,
- lora: global___Config.LoRaConfig | None = ...,
- bluetooth: global___Config.BluetoothConfig | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "payload_variant", b"payload_variant", "position", b"position", "power", b"power"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "payload_variant", b"payload_variant", "position", b"position", "power", b"power"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["device", "position", "power", "network", "display", "lora", "bluetooth"] | None: ...
-
-global___Config = Config
diff --git a/meshtastic/connection_status_pb2.py b/meshtastic/connection_status_pb2.py
deleted file mode 100644
index 1d37189..0000000
--- a/meshtastic/connection_status_pb2.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/connection_status.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"meshtastic/connection_status.proto\x12\nmeshtastic\"\xb1\x02\n\x16\x44\x65viceConnectionStatus\x12\x33\n\x04wifi\x18\x01 \x01(\x0b\x32 .meshtastic.WifiConnectionStatusH\x00\x88\x01\x01\x12;\n\x08\x65thernet\x18\x02 \x01(\x0b\x32$.meshtastic.EthernetConnectionStatusH\x01\x88\x01\x01\x12=\n\tbluetooth\x18\x03 \x01(\x0b\x32%.meshtastic.BluetoothConnectionStatusH\x02\x88\x01\x01\x12\x37\n\x06serial\x18\x04 \x01(\x0b\x32\".meshtastic.SerialConnectionStatusH\x03\x88\x01\x01\x42\x07\n\x05_wifiB\x0b\n\t_ethernetB\x0c\n\n_bluetoothB\t\n\x07_serial\"g\n\x14WifiConnectionStatus\x12\x33\n\x06status\x18\x01 \x01(\x0b\x32#.meshtastic.NetworkConnectionStatus\x12\x0c\n\x04ssid\x18\x02 \x01(\t\x12\x0c\n\x04rssi\x18\x03 \x01(\x05\"O\n\x18\x45thernetConnectionStatus\x12\x33\n\x06status\x18\x01 \x01(\x0b\x32#.meshtastic.NetworkConnectionStatus\"{\n\x17NetworkConnectionStatus\x12\x12\n\nip_address\x18\x01 \x01(\x07\x12\x14\n\x0cis_connected\x18\x02 \x01(\x08\x12\x19\n\x11is_mqtt_connected\x18\x03 \x01(\x08\x12\x1b\n\x13is_syslog_connected\x18\x04 \x01(\x08\"L\n\x19\x42luetoothConnectionStatus\x12\x0b\n\x03pin\x18\x01 \x01(\r\x12\x0c\n\x04rssi\x18\x02 \x01(\x05\x12\x14\n\x0cis_connected\x18\x03 \x01(\x08\"<\n\x16SerialConnectionStatus\x12\x0c\n\x04\x62\x61ud\x18\x01 \x01(\r\x12\x14\n\x0cis_connected\x18\x02 \x01(\x08\x42\x65\n\x13\x63om.geeksville.meshB\x10\x43onnStatusProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.connection_status_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\020ConnStatusProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _DEVICECONNECTIONSTATUS._serialized_start=51
- _DEVICECONNECTIONSTATUS._serialized_end=356
- _WIFICONNECTIONSTATUS._serialized_start=358
- _WIFICONNECTIONSTATUS._serialized_end=461
- _ETHERNETCONNECTIONSTATUS._serialized_start=463
- _ETHERNETCONNECTIONSTATUS._serialized_end=542
- _NETWORKCONNECTIONSTATUS._serialized_start=544
- _NETWORKCONNECTIONSTATUS._serialized_end=667
- _BLUETOOTHCONNECTIONSTATUS._serialized_start=669
- _BLUETOOTHCONNECTIONSTATUS._serialized_end=745
- _SERIALCONNECTIONSTATUS._serialized_start=747
- _SERIALCONNECTIONSTATUS._serialized_end=807
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/connection_status_pb2.pyi b/meshtastic/connection_status_pb2.pyi
deleted file mode 100644
index 1e56ba3..0000000
--- a/meshtastic/connection_status_pb2.pyi
+++ /dev/null
@@ -1,227 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class DeviceConnectionStatus(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- WIFI_FIELD_NUMBER: builtins.int
- ETHERNET_FIELD_NUMBER: builtins.int
- BLUETOOTH_FIELD_NUMBER: builtins.int
- SERIAL_FIELD_NUMBER: builtins.int
- @property
- def wifi(self) -> global___WifiConnectionStatus:
- """
- WiFi Status
- """
- @property
- def ethernet(self) -> global___EthernetConnectionStatus:
- """
- WiFi Status
- """
- @property
- def bluetooth(self) -> global___BluetoothConnectionStatus:
- """
- Bluetooth Status
- """
- @property
- def serial(self) -> global___SerialConnectionStatus:
- """
- Serial Status
- """
- def __init__(
- self,
- *,
- wifi: global___WifiConnectionStatus | None = ...,
- ethernet: global___EthernetConnectionStatus | None = ...,
- bluetooth: global___BluetoothConnectionStatus | None = ...,
- serial: global___SerialConnectionStatus | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["_bluetooth", b"_bluetooth", "_ethernet", b"_ethernet", "_serial", b"_serial", "_wifi", b"_wifi", "bluetooth", b"bluetooth", "ethernet", b"ethernet", "serial", b"serial", "wifi", b"wifi"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["_bluetooth", b"_bluetooth", "_ethernet", b"_ethernet", "_serial", b"_serial", "_wifi", b"_wifi", "bluetooth", b"bluetooth", "ethernet", b"ethernet", "serial", b"serial", "wifi", b"wifi"]) -> None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_bluetooth", b"_bluetooth"]) -> typing_extensions.Literal["bluetooth"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_ethernet", b"_ethernet"]) -> typing_extensions.Literal["ethernet"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_serial", b"_serial"]) -> typing_extensions.Literal["serial"] | None: ...
- @typing.overload
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_wifi", b"_wifi"]) -> typing_extensions.Literal["wifi"] | None: ...
-
-global___DeviceConnectionStatus = DeviceConnectionStatus
-
-@typing_extensions.final
-class WifiConnectionStatus(google.protobuf.message.Message):
- """
- WiFi connection status
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- STATUS_FIELD_NUMBER: builtins.int
- SSID_FIELD_NUMBER: builtins.int
- RSSI_FIELD_NUMBER: builtins.int
- @property
- def status(self) -> global___NetworkConnectionStatus:
- """
- Connection status
- """
- ssid: builtins.str
- """
- WiFi access point SSID
- """
- rssi: builtins.int
- """
- RSSI of wireless connection
- """
- def __init__(
- self,
- *,
- status: global___NetworkConnectionStatus | None = ...,
- ssid: builtins.str = ...,
- rssi: builtins.int = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["status", b"status"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["rssi", b"rssi", "ssid", b"ssid", "status", b"status"]) -> None: ...
-
-global___WifiConnectionStatus = WifiConnectionStatus
-
-@typing_extensions.final
-class EthernetConnectionStatus(google.protobuf.message.Message):
- """
- Ethernet connection status
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- STATUS_FIELD_NUMBER: builtins.int
- @property
- def status(self) -> global___NetworkConnectionStatus:
- """
- Connection status
- """
- def __init__(
- self,
- *,
- status: global___NetworkConnectionStatus | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["status", b"status"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ...
-
-global___EthernetConnectionStatus = EthernetConnectionStatus
-
-@typing_extensions.final
-class NetworkConnectionStatus(google.protobuf.message.Message):
- """
- Ethernet or WiFi connection status
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- IP_ADDRESS_FIELD_NUMBER: builtins.int
- IS_CONNECTED_FIELD_NUMBER: builtins.int
- IS_MQTT_CONNECTED_FIELD_NUMBER: builtins.int
- IS_SYSLOG_CONNECTED_FIELD_NUMBER: builtins.int
- ip_address: builtins.int
- """
- IP address of device
- """
- is_connected: builtins.bool
- """
- Whether the device has an active connection or not
- """
- is_mqtt_connected: builtins.bool
- """
- Whether the device has an active connection to an MQTT broker or not
- """
- is_syslog_connected: builtins.bool
- """
- Whether the device is actively remote syslogging or not
- """
- def __init__(
- self,
- *,
- ip_address: builtins.int = ...,
- is_connected: builtins.bool = ...,
- is_mqtt_connected: builtins.bool = ...,
- is_syslog_connected: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["ip_address", b"ip_address", "is_connected", b"is_connected", "is_mqtt_connected", b"is_mqtt_connected", "is_syslog_connected", b"is_syslog_connected"]) -> None: ...
-
-global___NetworkConnectionStatus = NetworkConnectionStatus
-
-@typing_extensions.final
-class BluetoothConnectionStatus(google.protobuf.message.Message):
- """
- Bluetooth connection status
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PIN_FIELD_NUMBER: builtins.int
- RSSI_FIELD_NUMBER: builtins.int
- IS_CONNECTED_FIELD_NUMBER: builtins.int
- pin: builtins.int
- """
- The pairing PIN for bluetooth
- """
- rssi: builtins.int
- """
- RSSI of bluetooth connection
- """
- is_connected: builtins.bool
- """
- Whether the device has an active connection or not
- """
- def __init__(
- self,
- *,
- pin: builtins.int = ...,
- rssi: builtins.int = ...,
- is_connected: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["is_connected", b"is_connected", "pin", b"pin", "rssi", b"rssi"]) -> None: ...
-
-global___BluetoothConnectionStatus = BluetoothConnectionStatus
-
-@typing_extensions.final
-class SerialConnectionStatus(google.protobuf.message.Message):
- """
- Serial connection status
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- BAUD_FIELD_NUMBER: builtins.int
- IS_CONNECTED_FIELD_NUMBER: builtins.int
- baud: builtins.int
- """
- Serial baud rate
- """
- is_connected: builtins.bool
- """
- Whether the device has an active connection or not
- """
- def __init__(
- self,
- *,
- baud: builtins.int = ...,
- is_connected: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["baud", b"baud", "is_connected", b"is_connected"]) -> None: ...
-
-global___SerialConnectionStatus = SerialConnectionStatus
diff --git a/meshtastic/deviceonly_pb2.py b/meshtastic/deviceonly_pb2.py
deleted file mode 100644
index 02dc0f8..0000000
--- a/meshtastic/deviceonly_pb2.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/deviceonly.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 import channel_pb2 as meshtastic_dot_channel__pb2
-from meshtastic import localonly_pb2 as meshtastic_dot_localonly__pb2
-from meshtastic import mesh_pb2 as meshtastic_dot_mesh__pb2
-from meshtastic import module_config_pb2 as meshtastic_dot_module__config__pb2
-from meshtastic import telemetry_pb2 as meshtastic_dot_telemetry__pb2
-from . import nanopb_pb2 as nanopb__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bmeshtastic/deviceonly.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x1ameshtastic/localonly.proto\x1a\x15meshtastic/mesh.proto\x1a\x1emeshtastic/module_config.proto\x1a\x1ameshtastic/telemetry.proto\x1a\x0cnanopb.proto\"\x90\x01\n\x0cPositionLite\x12\x12\n\nlatitude_i\x18\x01 \x01(\x0f\x12\x13\n\x0blongitude_i\x18\x02 \x01(\x0f\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x05\x12\x0c\n\x04time\x18\x04 \x01(\x07\x12\x37\n\x0flocation_source\x18\x05 \x01(\x0e\x32\x1e.meshtastic.Position.LocSource\"\x86\x02\n\x0cNodeInfoLite\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x1e\n\x04user\x18\x02 \x01(\x0b\x32\x10.meshtastic.User\x12*\n\x08position\x18\x03 \x01(\x0b\x32\x18.meshtastic.PositionLite\x12\x0b\n\x03snr\x18\x04 \x01(\x02\x12\x12\n\nlast_heard\x18\x05 \x01(\x07\x12\x31\n\x0e\x64\x65vice_metrics\x18\x06 \x01(\x0b\x32\x19.meshtastic.DeviceMetrics\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\r\x12\x10\n\x08via_mqtt\x18\x08 \x01(\x08\x12\x11\n\thops_away\x18\t \x01(\r\x12\x13\n\x0bis_favorite\x18\n \x01(\x08\"\xc3\x03\n\x0b\x44\x65viceState\x12\'\n\x07my_node\x18\x02 \x01(\x0b\x32\x16.meshtastic.MyNodeInfo\x12\x1f\n\x05owner\x18\x03 \x01(\x0b\x32\x10.meshtastic.User\x12-\n\rreceive_queue\x18\x05 \x03(\x0b\x32\x16.meshtastic.MeshPacket\x12\x0f\n\x07version\x18\x08 \x01(\r\x12/\n\x0frx_text_message\x18\x07 \x01(\x0b\x32\x16.meshtastic.MeshPacket\x12\x13\n\x07no_save\x18\t \x01(\x08\x42\x02\x18\x01\x12\x15\n\rdid_gps_reset\x18\x0b \x01(\x08\x12+\n\x0brx_waypoint\x18\x0c \x01(\x0b\x32\x16.meshtastic.MeshPacket\x12\x44\n\x19node_remote_hardware_pins\x18\r \x03(\x0b\x32!.meshtastic.NodeRemoteHardwarePin\x12Z\n\x0cnode_db_lite\x18\x0e \x03(\x0b\x32\x18.meshtastic.NodeInfoLiteB*\x92?\'\x92\x01$std::vector\"E\n\x0b\x43hannelFile\x12%\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x13.meshtastic.Channel\x12\x0f\n\x07version\x18\x02 \x01(\r\"\x97\x02\n\x08OEMStore\x12\x16\n\x0eoem_icon_width\x18\x01 \x01(\r\x12\x17\n\x0foem_icon_height\x18\x02 \x01(\r\x12\x15\n\roem_icon_bits\x18\x03 \x01(\x0c\x12)\n\x08oem_font\x18\x04 \x01(\x0e\x32\x17.meshtastic.ScreenFonts\x12\x10\n\x08oem_text\x18\x05 \x01(\t\x12\x13\n\x0boem_aes_key\x18\x06 \x01(\x0c\x12\x31\n\x10oem_local_config\x18\x07 \x01(\x0b\x32\x17.meshtastic.LocalConfig\x12>\n\x17oem_local_module_config\x18\x08 \x01(\x0b\x32\x1d.meshtastic.LocalModuleConfig*>\n\x0bScreenFonts\x12\x0e\n\nFONT_SMALL\x10\x00\x12\x0f\n\x0b\x46ONT_MEDIUM\x10\x01\x12\x0e\n\nFONT_LARGE\x10\x02\x42m\n\x13\x63om.geeksville.meshB\nDeviceOnlyZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x92?\x0b\xc2\x01\x08b\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.deviceonly_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\nDeviceOnlyZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000\222?\013\302\001\010'
- _DEVICESTATE.fields_by_name['no_save']._options = None
- _DEVICESTATE.fields_by_name['no_save']._serialized_options = b'\030\001'
- _DEVICESTATE.fields_by_name['node_db_lite']._options = None
- _DEVICESTATE.fields_by_name['node_db_lite']._serialized_options = b'\222?\'\222\001$std::vector'
- _SCREENFONTS._serialized_start=1413
- _SCREENFONTS._serialized_end=1475
- _POSITIONLITE._serialized_start=195
- _POSITIONLITE._serialized_end=339
- _NODEINFOLITE._serialized_start=342
- _NODEINFOLITE._serialized_end=604
- _DEVICESTATE._serialized_start=607
- _DEVICESTATE._serialized_end=1058
- _CHANNELFILE._serialized_start=1060
- _CHANNELFILE._serialized_end=1129
- _OEMSTORE._serialized_start=1132
- _OEMSTORE._serialized_end=1411
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/deviceonly_pb2.pyi b/meshtastic/deviceonly_pb2.pyi
deleted file mode 100644
index 38e8b9f..0000000
--- a/meshtastic/deviceonly_pb2.pyi
+++ /dev/null
@@ -1,386 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import meshtastic.channel_pb2
-import meshtastic.localonly_pb2
-import meshtastic.mesh_pb2
-import meshtastic.telemetry_pb2
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _ScreenFonts:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _ScreenFontsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ScreenFonts.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- FONT_SMALL: _ScreenFonts.ValueType # 0
- """
- TODO: REPLACE
- """
- FONT_MEDIUM: _ScreenFonts.ValueType # 1
- """
- TODO: REPLACE
- """
- FONT_LARGE: _ScreenFonts.ValueType # 2
- """
- TODO: REPLACE
- """
-
-class ScreenFonts(_ScreenFonts, metaclass=_ScreenFontsEnumTypeWrapper):
- """
- Font sizes for the device screen
- """
-
-FONT_SMALL: ScreenFonts.ValueType # 0
-"""
-TODO: REPLACE
-"""
-FONT_MEDIUM: ScreenFonts.ValueType # 1
-"""
-TODO: REPLACE
-"""
-FONT_LARGE: ScreenFonts.ValueType # 2
-"""
-TODO: REPLACE
-"""
-global___ScreenFonts = ScreenFonts
-
-@typing_extensions.final
-class PositionLite(google.protobuf.message.Message):
- """
- Position with static location information only for NodeDBLite
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- LATITUDE_I_FIELD_NUMBER: builtins.int
- LONGITUDE_I_FIELD_NUMBER: builtins.int
- ALTITUDE_FIELD_NUMBER: builtins.int
- TIME_FIELD_NUMBER: builtins.int
- LOCATION_SOURCE_FIELD_NUMBER: builtins.int
- latitude_i: builtins.int
- """
- The new preferred location encoding, multiply by 1e-7 to get degrees
- in floating point
- """
- longitude_i: builtins.int
- """
- TODO: REPLACE
- """
- altitude: builtins.int
- """
- In meters above MSL (but see issue #359)
- """
- time: builtins.int
- """
- This is usually not sent over the mesh (to save space), but it is sent
- from the phone so that the local device can set its RTC If it is sent over
- the mesh (because there are devices on the mesh without GPS), it will only
- be sent by devices which has a hardware GPS clock.
- seconds since 1970
- """
- location_source: meshtastic.mesh_pb2.Position.LocSource.ValueType
- """
- TODO: REPLACE
- """
- def __init__(
- self,
- *,
- latitude_i: builtins.int = ...,
- longitude_i: builtins.int = ...,
- altitude: builtins.int = ...,
- time: builtins.int = ...,
- location_source: meshtastic.mesh_pb2.Position.LocSource.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["altitude", b"altitude", "latitude_i", b"latitude_i", "location_source", b"location_source", "longitude_i", b"longitude_i", "time", b"time"]) -> None: ...
-
-global___PositionLite = PositionLite
-
-@typing_extensions.final
-class NodeInfoLite(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NUM_FIELD_NUMBER: builtins.int
- USER_FIELD_NUMBER: builtins.int
- POSITION_FIELD_NUMBER: builtins.int
- SNR_FIELD_NUMBER: builtins.int
- LAST_HEARD_FIELD_NUMBER: builtins.int
- DEVICE_METRICS_FIELD_NUMBER: builtins.int
- CHANNEL_FIELD_NUMBER: builtins.int
- VIA_MQTT_FIELD_NUMBER: builtins.int
- HOPS_AWAY_FIELD_NUMBER: builtins.int
- IS_FAVORITE_FIELD_NUMBER: builtins.int
- num: builtins.int
- """
- The node number
- """
- @property
- def user(self) -> meshtastic.mesh_pb2.User:
- """
- The user info for this node
- """
- @property
- def position(self) -> global___PositionLite:
- """
- This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
- Position.time now indicates the last time we received a POSITION from that node.
- """
- snr: builtins.float
- """
- Returns the Signal-to-noise ratio (SNR) of the last received message,
- as measured by the receiver. Return SNR of the last received message in dB
- """
- last_heard: builtins.int
- """
- Set to indicate the last time we received a packet from this node
- """
- @property
- def device_metrics(self) -> meshtastic.telemetry_pb2.DeviceMetrics:
- """
- The latest device metrics for the node.
- """
- channel: builtins.int
- """
- local channel index we heard that node on. Only populated if its not the default channel.
- """
- via_mqtt: builtins.bool
- """
- True if we witnessed the node over MQTT instead of LoRA transport
- """
- hops_away: builtins.int
- """
- Number of hops away from us this node is (0 if adjacent)
- """
- is_favorite: builtins.bool
- """
- True if node is in our favorites list
- Persists between NodeDB internal clean ups
- """
- def __init__(
- self,
- *,
- num: builtins.int = ...,
- user: meshtastic.mesh_pb2.User | None = ...,
- position: global___PositionLite | None = ...,
- snr: builtins.float = ...,
- last_heard: builtins.int = ...,
- device_metrics: meshtastic.telemetry_pb2.DeviceMetrics | None = ...,
- channel: builtins.int = ...,
- via_mqtt: builtins.bool = ...,
- hops_away: builtins.int = ...,
- is_favorite: builtins.bool = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["device_metrics", b"device_metrics", "position", b"position", "user", b"user"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel", b"channel", "device_metrics", b"device_metrics", "hops_away", b"hops_away", "is_favorite", b"is_favorite", "last_heard", b"last_heard", "num", b"num", "position", b"position", "snr", b"snr", "user", b"user", "via_mqtt", b"via_mqtt"]) -> None: ...
-
-global___NodeInfoLite = NodeInfoLite
-
-@typing_extensions.final
-class DeviceState(google.protobuf.message.Message):
- """
- This message is never sent over the wire, but it is used for serializing DB
- state to flash in the device code
- FIXME, since we write this each time we enter deep sleep (and have infinite
- flash) it would be better to use some sort of append only data structure for
- the receive queue and use the preferences store for the other stuff
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MY_NODE_FIELD_NUMBER: builtins.int
- OWNER_FIELD_NUMBER: builtins.int
- RECEIVE_QUEUE_FIELD_NUMBER: builtins.int
- VERSION_FIELD_NUMBER: builtins.int
- RX_TEXT_MESSAGE_FIELD_NUMBER: builtins.int
- NO_SAVE_FIELD_NUMBER: builtins.int
- DID_GPS_RESET_FIELD_NUMBER: builtins.int
- RX_WAYPOINT_FIELD_NUMBER: builtins.int
- NODE_REMOTE_HARDWARE_PINS_FIELD_NUMBER: builtins.int
- NODE_DB_LITE_FIELD_NUMBER: builtins.int
- @property
- def my_node(self) -> meshtastic.mesh_pb2.MyNodeInfo:
- """
- Read only settings/info about this node
- """
- @property
- def owner(self) -> meshtastic.mesh_pb2.User:
- """
- My owner info
- """
- @property
- def receive_queue(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.mesh_pb2.MeshPacket]:
- """
- Received packets saved for delivery to the phone
- """
- version: builtins.int
- """
- A version integer used to invalidate old save files when we make
- incompatible changes This integer is set at build time and is private to
- NodeDB.cpp in the device code.
- """
- @property
- def rx_text_message(self) -> meshtastic.mesh_pb2.MeshPacket:
- """
- We keep the last received text message (only) stored in the device flash,
- so we can show it on the screen.
- Might be null
- """
- no_save: builtins.bool
- """
- Used only during development.
- Indicates developer is testing and changes should never be saved to flash.
- Deprecated in 2.3.1
- """
- did_gps_reset: builtins.bool
- """
- Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
- """
- @property
- def rx_waypoint(self) -> meshtastic.mesh_pb2.MeshPacket:
- """
- We keep the last received waypoint stored in the device flash,
- so we can show it on the screen.
- Might be null
- """
- @property
- def node_remote_hardware_pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.mesh_pb2.NodeRemoteHardwarePin]:
- """
- The mesh's nodes with their available gpio pins for RemoteHardware module
- """
- @property
- def node_db_lite(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodeInfoLite]:
- """
- New lite version of NodeDB to decrease memory footprint
- """
- def __init__(
- self,
- *,
- my_node: meshtastic.mesh_pb2.MyNodeInfo | None = ...,
- owner: meshtastic.mesh_pb2.User | None = ...,
- receive_queue: collections.abc.Iterable[meshtastic.mesh_pb2.MeshPacket] | None = ...,
- version: builtins.int = ...,
- rx_text_message: meshtastic.mesh_pb2.MeshPacket | None = ...,
- no_save: builtins.bool = ...,
- did_gps_reset: builtins.bool = ...,
- rx_waypoint: meshtastic.mesh_pb2.MeshPacket | None = ...,
- node_remote_hardware_pins: collections.abc.Iterable[meshtastic.mesh_pb2.NodeRemoteHardwarePin] | None = ...,
- node_db_lite: collections.abc.Iterable[global___NodeInfoLite] | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["my_node", b"my_node", "owner", b"owner", "rx_text_message", b"rx_text_message", "rx_waypoint", b"rx_waypoint"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["did_gps_reset", b"did_gps_reset", "my_node", b"my_node", "no_save", b"no_save", "node_db_lite", b"node_db_lite", "node_remote_hardware_pins", b"node_remote_hardware_pins", "owner", b"owner", "receive_queue", b"receive_queue", "rx_text_message", b"rx_text_message", "rx_waypoint", b"rx_waypoint", "version", b"version"]) -> None: ...
-
-global___DeviceState = DeviceState
-
-@typing_extensions.final
-class ChannelFile(google.protobuf.message.Message):
- """
- The on-disk saved channels
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CHANNELS_FIELD_NUMBER: builtins.int
- VERSION_FIELD_NUMBER: builtins.int
- @property
- def channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.channel_pb2.Channel]:
- """
- The channels our node knows about
- """
- version: builtins.int
- """
- A version integer used to invalidate old save files when we make
- incompatible changes This integer is set at build time and is private to
- NodeDB.cpp in the device code.
- """
- def __init__(
- self,
- *,
- channels: collections.abc.Iterable[meshtastic.channel_pb2.Channel] | None = ...,
- version: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["channels", b"channels", "version", b"version"]) -> None: ...
-
-global___ChannelFile = ChannelFile
-
-@typing_extensions.final
-class OEMStore(google.protobuf.message.Message):
- """
- This can be used for customizing the firmware distribution. If populated,
- show a secondary bootup screen with custom logo and text for 2.5 seconds.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- OEM_ICON_WIDTH_FIELD_NUMBER: builtins.int
- OEM_ICON_HEIGHT_FIELD_NUMBER: builtins.int
- OEM_ICON_BITS_FIELD_NUMBER: builtins.int
- OEM_FONT_FIELD_NUMBER: builtins.int
- OEM_TEXT_FIELD_NUMBER: builtins.int
- OEM_AES_KEY_FIELD_NUMBER: builtins.int
- OEM_LOCAL_CONFIG_FIELD_NUMBER: builtins.int
- OEM_LOCAL_MODULE_CONFIG_FIELD_NUMBER: builtins.int
- oem_icon_width: builtins.int
- """
- The Logo width in Px
- """
- oem_icon_height: builtins.int
- """
- The Logo height in Px
- """
- oem_icon_bits: builtins.bytes
- """
- The Logo in XBM bytechar format
- """
- oem_font: global___ScreenFonts.ValueType
- """
- Use this font for the OEM text.
- """
- oem_text: builtins.str
- """
- Use this font for the OEM text.
- """
- oem_aes_key: builtins.bytes
- """
- The default device encryption key, 16 or 32 byte
- """
- @property
- def oem_local_config(self) -> meshtastic.localonly_pb2.LocalConfig:
- """
- A Preset LocalConfig to apply during factory reset
- """
- @property
- def oem_local_module_config(self) -> meshtastic.localonly_pb2.LocalModuleConfig:
- """
- A Preset LocalModuleConfig to apply during factory reset
- """
- def __init__(
- self,
- *,
- oem_icon_width: builtins.int = ...,
- oem_icon_height: builtins.int = ...,
- oem_icon_bits: builtins.bytes = ...,
- oem_font: global___ScreenFonts.ValueType = ...,
- oem_text: builtins.str = ...,
- oem_aes_key: builtins.bytes = ...,
- oem_local_config: meshtastic.localonly_pb2.LocalConfig | None = ...,
- oem_local_module_config: meshtastic.localonly_pb2.LocalModuleConfig | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["oem_local_config", b"oem_local_config", "oem_local_module_config", b"oem_local_module_config"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["oem_aes_key", b"oem_aes_key", "oem_font", b"oem_font", "oem_icon_bits", b"oem_icon_bits", "oem_icon_height", b"oem_icon_height", "oem_icon_width", b"oem_icon_width", "oem_local_config", b"oem_local_config", "oem_local_module_config", b"oem_local_module_config", "oem_text", b"oem_text"]) -> None: ...
-
-global___OEMStore = OEMStore
diff --git a/meshtastic/localonly_pb2.py b/meshtastic/localonly_pb2.py
deleted file mode 100644
index 324aaad..0000000
--- a/meshtastic/localonly_pb2.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/localonly.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 import config_pb2 as meshtastic_dot_config__pb2
-from meshtastic import module_config_pb2 as meshtastic_dot_module__config__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ameshtastic/localonly.proto\x12\nmeshtastic\x1a\x17meshtastic/config.proto\x1a\x1emeshtastic/module_config.proto\"\xfd\x02\n\x0bLocalConfig\x12/\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x1f.meshtastic.Config.DeviceConfig\x12\x33\n\x08position\x18\x02 \x01(\x0b\x32!.meshtastic.Config.PositionConfig\x12-\n\x05power\x18\x03 \x01(\x0b\x32\x1e.meshtastic.Config.PowerConfig\x12\x31\n\x07network\x18\x04 \x01(\x0b\x32 .meshtastic.Config.NetworkConfig\x12\x31\n\x07\x64isplay\x18\x05 \x01(\x0b\x32 .meshtastic.Config.DisplayConfig\x12+\n\x04lora\x18\x06 \x01(\x0b\x32\x1d.meshtastic.Config.LoRaConfig\x12\x35\n\tbluetooth\x18\x07 \x01(\x0b\x32\".meshtastic.Config.BluetoothConfig\x12\x0f\n\x07version\x18\x08 \x01(\r\"\xfb\x06\n\x11LocalModuleConfig\x12\x31\n\x04mqtt\x18\x01 \x01(\x0b\x32#.meshtastic.ModuleConfig.MQTTConfig\x12\x35\n\x06serial\x18\x02 \x01(\x0b\x32%.meshtastic.ModuleConfig.SerialConfig\x12R\n\x15\x65xternal_notification\x18\x03 \x01(\x0b\x32\x33.meshtastic.ModuleConfig.ExternalNotificationConfig\x12\x42\n\rstore_forward\x18\x04 \x01(\x0b\x32+.meshtastic.ModuleConfig.StoreForwardConfig\x12<\n\nrange_test\x18\x05 \x01(\x0b\x32(.meshtastic.ModuleConfig.RangeTestConfig\x12;\n\ttelemetry\x18\x06 \x01(\x0b\x32(.meshtastic.ModuleConfig.TelemetryConfig\x12\x44\n\x0e\x63\x61nned_message\x18\x07 \x01(\x0b\x32,.meshtastic.ModuleConfig.CannedMessageConfig\x12\x33\n\x05\x61udio\x18\t \x01(\x0b\x32$.meshtastic.ModuleConfig.AudioConfig\x12\x46\n\x0fremote_hardware\x18\n \x01(\x0b\x32-.meshtastic.ModuleConfig.RemoteHardwareConfig\x12\x42\n\rneighbor_info\x18\x0b \x01(\x0b\x32+.meshtastic.ModuleConfig.NeighborInfoConfig\x12H\n\x10\x61mbient_lighting\x18\x0c \x01(\x0b\x32..meshtastic.ModuleConfig.AmbientLightingConfig\x12H\n\x10\x64\x65tection_sensor\x18\r \x01(\x0b\x32..meshtastic.ModuleConfig.DetectionSensorConfig\x12=\n\npaxcounter\x18\x0e \x01(\x0b\x32).meshtastic.ModuleConfig.PaxcounterConfig\x12\x0f\n\x07version\x18\x08 \x01(\rBd\n\x13\x63om.geeksville.meshB\x0fLocalOnlyProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.localonly_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\017LocalOnlyProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _LOCALCONFIG._serialized_start=100
- _LOCALCONFIG._serialized_end=481
- _LOCALMODULECONFIG._serialized_start=484
- _LOCALMODULECONFIG._serialized_end=1375
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/localonly_pb2.pyi b/meshtastic/localonly_pb2.pyi
deleted file mode 100644
index 19cdc02..0000000
--- a/meshtastic/localonly_pb2.pyi
+++ /dev/null
@@ -1,204 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import meshtastic.config_pb2
-import meshtastic.module_config_pb2
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class LocalConfig(google.protobuf.message.Message):
- """
- Protobuf structures common to apponly.proto and deviceonly.proto
- This is never sent over the wire, only for local use
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- DEVICE_FIELD_NUMBER: builtins.int
- POSITION_FIELD_NUMBER: builtins.int
- POWER_FIELD_NUMBER: builtins.int
- NETWORK_FIELD_NUMBER: builtins.int
- DISPLAY_FIELD_NUMBER: builtins.int
- LORA_FIELD_NUMBER: builtins.int
- BLUETOOTH_FIELD_NUMBER: builtins.int
- VERSION_FIELD_NUMBER: builtins.int
- @property
- def device(self) -> meshtastic.config_pb2.Config.DeviceConfig:
- """
- The part of the config that is specific to the Device
- """
- @property
- def position(self) -> meshtastic.config_pb2.Config.PositionConfig:
- """
- The part of the config that is specific to the GPS Position
- """
- @property
- def power(self) -> meshtastic.config_pb2.Config.PowerConfig:
- """
- The part of the config that is specific to the Power settings
- """
- @property
- def network(self) -> meshtastic.config_pb2.Config.NetworkConfig:
- """
- The part of the config that is specific to the Wifi Settings
- """
- @property
- def display(self) -> meshtastic.config_pb2.Config.DisplayConfig:
- """
- The part of the config that is specific to the Display
- """
- @property
- def lora(self) -> meshtastic.config_pb2.Config.LoRaConfig:
- """
- The part of the config that is specific to the Lora Radio
- """
- @property
- def bluetooth(self) -> meshtastic.config_pb2.Config.BluetoothConfig:
- """
- The part of the config that is specific to the Bluetooth settings
- """
- version: builtins.int
- """
- A version integer used to invalidate old save files when we make
- incompatible changes This integer is set at build time and is private to
- NodeDB.cpp in the device code.
- """
- def __init__(
- self,
- *,
- device: meshtastic.config_pb2.Config.DeviceConfig | None = ...,
- position: meshtastic.config_pb2.Config.PositionConfig | None = ...,
- power: meshtastic.config_pb2.Config.PowerConfig | None = ...,
- network: meshtastic.config_pb2.Config.NetworkConfig | None = ...,
- display: meshtastic.config_pb2.Config.DisplayConfig | None = ...,
- lora: meshtastic.config_pb2.Config.LoRaConfig | None = ...,
- bluetooth: meshtastic.config_pb2.Config.BluetoothConfig | None = ...,
- version: builtins.int = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "position", b"position", "power", b"power"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "position", b"position", "power", b"power", "version", b"version"]) -> None: ...
-
-global___LocalConfig = LocalConfig
-
-@typing_extensions.final
-class LocalModuleConfig(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MQTT_FIELD_NUMBER: builtins.int
- SERIAL_FIELD_NUMBER: builtins.int
- EXTERNAL_NOTIFICATION_FIELD_NUMBER: builtins.int
- STORE_FORWARD_FIELD_NUMBER: builtins.int
- RANGE_TEST_FIELD_NUMBER: builtins.int
- TELEMETRY_FIELD_NUMBER: builtins.int
- CANNED_MESSAGE_FIELD_NUMBER: builtins.int
- AUDIO_FIELD_NUMBER: builtins.int
- REMOTE_HARDWARE_FIELD_NUMBER: builtins.int
- NEIGHBOR_INFO_FIELD_NUMBER: builtins.int
- AMBIENT_LIGHTING_FIELD_NUMBER: builtins.int
- DETECTION_SENSOR_FIELD_NUMBER: builtins.int
- PAXCOUNTER_FIELD_NUMBER: builtins.int
- VERSION_FIELD_NUMBER: builtins.int
- @property
- def mqtt(self) -> meshtastic.module_config_pb2.ModuleConfig.MQTTConfig:
- """
- The part of the config that is specific to the MQTT module
- """
- @property
- def serial(self) -> meshtastic.module_config_pb2.ModuleConfig.SerialConfig:
- """
- The part of the config that is specific to the Serial module
- """
- @property
- def external_notification(self) -> meshtastic.module_config_pb2.ModuleConfig.ExternalNotificationConfig:
- """
- The part of the config that is specific to the ExternalNotification module
- """
- @property
- def store_forward(self) -> meshtastic.module_config_pb2.ModuleConfig.StoreForwardConfig:
- """
- The part of the config that is specific to the Store & Forward module
- """
- @property
- def range_test(self) -> meshtastic.module_config_pb2.ModuleConfig.RangeTestConfig:
- """
- The part of the config that is specific to the RangeTest module
- """
- @property
- def telemetry(self) -> meshtastic.module_config_pb2.ModuleConfig.TelemetryConfig:
- """
- The part of the config that is specific to the Telemetry module
- """
- @property
- def canned_message(self) -> meshtastic.module_config_pb2.ModuleConfig.CannedMessageConfig:
- """
- The part of the config that is specific to the Canned Message module
- """
- @property
- def audio(self) -> meshtastic.module_config_pb2.ModuleConfig.AudioConfig:
- """
- The part of the config that is specific to the Audio module
- """
- @property
- def remote_hardware(self) -> meshtastic.module_config_pb2.ModuleConfig.RemoteHardwareConfig:
- """
- The part of the config that is specific to the Remote Hardware module
- """
- @property
- def neighbor_info(self) -> meshtastic.module_config_pb2.ModuleConfig.NeighborInfoConfig:
- """
- The part of the config that is specific to the Neighbor Info module
- """
- @property
- def ambient_lighting(self) -> meshtastic.module_config_pb2.ModuleConfig.AmbientLightingConfig:
- """
- The part of the config that is specific to the Ambient Lighting module
- """
- @property
- def detection_sensor(self) -> meshtastic.module_config_pb2.ModuleConfig.DetectionSensorConfig:
- """
- The part of the config that is specific to the Detection Sensor module
- """
- @property
- def paxcounter(self) -> meshtastic.module_config_pb2.ModuleConfig.PaxcounterConfig:
- """
- Paxcounter Config
- """
- version: builtins.int
- """
- A version integer used to invalidate old save files when we make
- incompatible changes This integer is set at build time and is private to
- NodeDB.cpp in the device code.
- """
- def __init__(
- self,
- *,
- mqtt: meshtastic.module_config_pb2.ModuleConfig.MQTTConfig | None = ...,
- serial: meshtastic.module_config_pb2.ModuleConfig.SerialConfig | None = ...,
- external_notification: meshtastic.module_config_pb2.ModuleConfig.ExternalNotificationConfig | None = ...,
- store_forward: meshtastic.module_config_pb2.ModuleConfig.StoreForwardConfig | None = ...,
- range_test: meshtastic.module_config_pb2.ModuleConfig.RangeTestConfig | None = ...,
- telemetry: meshtastic.module_config_pb2.ModuleConfig.TelemetryConfig | None = ...,
- canned_message: meshtastic.module_config_pb2.ModuleConfig.CannedMessageConfig | None = ...,
- audio: meshtastic.module_config_pb2.ModuleConfig.AudioConfig | None = ...,
- remote_hardware: meshtastic.module_config_pb2.ModuleConfig.RemoteHardwareConfig | None = ...,
- neighbor_info: meshtastic.module_config_pb2.ModuleConfig.NeighborInfoConfig | None = ...,
- ambient_lighting: meshtastic.module_config_pb2.ModuleConfig.AmbientLightingConfig | None = ...,
- detection_sensor: meshtastic.module_config_pb2.ModuleConfig.DetectionSensorConfig | None = ...,
- paxcounter: meshtastic.module_config_pb2.ModuleConfig.PaxcounterConfig | None = ...,
- version: builtins.int = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "store_forward", b"store_forward", "telemetry", b"telemetry"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "store_forward", b"store_forward", "telemetry", b"telemetry", "version", b"version"]) -> None: ...
-
-global___LocalModuleConfig = LocalModuleConfig
diff --git a/meshtastic/mesh_pb2.py b/meshtastic/mesh_pb2.py
deleted file mode 100644
index 29cfeb2..0000000
--- a/meshtastic/mesh_pb2.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/mesh.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 import channel_pb2 as meshtastic_dot_channel__pb2
-from meshtastic import config_pb2 as meshtastic_dot_config__pb2
-from meshtastic import module_config_pb2 as meshtastic_dot_module__config__pb2
-from meshtastic import portnums_pb2 as meshtastic_dot_portnums__pb2
-from meshtastic import telemetry_pb2 as meshtastic_dot_telemetry__pb2
-from meshtastic import xmodem_pb2 as meshtastic_dot_xmodem__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15meshtastic/mesh.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x17meshtastic/config.proto\x1a\x1emeshtastic/module_config.proto\x1a\x19meshtastic/portnums.proto\x1a\x1ameshtastic/telemetry.proto\x1a\x17meshtastic/xmodem.proto\"\xe5\x05\n\x08Position\x12\x12\n\nlatitude_i\x18\x01 \x01(\x0f\x12\x13\n\x0blongitude_i\x18\x02 \x01(\x0f\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x05\x12\x0c\n\x04time\x18\x04 \x01(\x07\x12\x37\n\x0flocation_source\x18\x05 \x01(\x0e\x32\x1e.meshtastic.Position.LocSource\x12\x37\n\x0f\x61ltitude_source\x18\x06 \x01(\x0e\x32\x1e.meshtastic.Position.AltSource\x12\x11\n\ttimestamp\x18\x07 \x01(\x07\x12\x1f\n\x17timestamp_millis_adjust\x18\x08 \x01(\x05\x12\x14\n\x0c\x61ltitude_hae\x18\t \x01(\x11\x12#\n\x1b\x61ltitude_geoidal_separation\x18\n \x01(\x11\x12\x0c\n\x04PDOP\x18\x0b \x01(\r\x12\x0c\n\x04HDOP\x18\x0c \x01(\r\x12\x0c\n\x04VDOP\x18\r \x01(\r\x12\x14\n\x0cgps_accuracy\x18\x0e \x01(\r\x12\x14\n\x0cground_speed\x18\x0f \x01(\r\x12\x14\n\x0cground_track\x18\x10 \x01(\r\x12\x13\n\x0b\x66ix_quality\x18\x11 \x01(\r\x12\x10\n\x08\x66ix_type\x18\x12 \x01(\r\x12\x14\n\x0csats_in_view\x18\x13 \x01(\r\x12\x11\n\tsensor_id\x18\x14 \x01(\r\x12\x13\n\x0bnext_update\x18\x15 \x01(\r\x12\x12\n\nseq_number\x18\x16 \x01(\r\x12\x16\n\x0eprecision_bits\x18\x17 \x01(\r\"N\n\tLocSource\x12\r\n\tLOC_UNSET\x10\x00\x12\x0e\n\nLOC_MANUAL\x10\x01\x12\x10\n\x0cLOC_INTERNAL\x10\x02\x12\x10\n\x0cLOC_EXTERNAL\x10\x03\"b\n\tAltSource\x12\r\n\tALT_UNSET\x10\x00\x12\x0e\n\nALT_MANUAL\x10\x01\x12\x10\n\x0c\x41LT_INTERNAL\x10\x02\x12\x10\n\x0c\x41LT_EXTERNAL\x10\x03\x12\x12\n\x0e\x41LT_BAROMETRIC\x10\x04\"\xc4\x01\n\x04User\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tlong_name\x18\x02 \x01(\t\x12\x12\n\nshort_name\x18\x03 \x01(\t\x12\x13\n\x07macaddr\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12+\n\x08hw_model\x18\x05 \x01(\x0e\x32\x19.meshtastic.HardwareModel\x12\x13\n\x0bis_licensed\x18\x06 \x01(\x08\x12\x32\n\x04role\x18\x07 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\"\x1f\n\x0eRouteDiscovery\x12\r\n\x05route\x18\x01 \x03(\x07\"\xfc\x02\n\x07Routing\x12\x33\n\rroute_request\x18\x01 \x01(\x0b\x32\x1a.meshtastic.RouteDiscoveryH\x00\x12\x31\n\x0broute_reply\x18\x02 \x01(\x0b\x32\x1a.meshtastic.RouteDiscoveryH\x00\x12\x31\n\x0c\x65rror_reason\x18\x03 \x01(\x0e\x32\x19.meshtastic.Routing.ErrorH\x00\"\xca\x01\n\x05\x45rror\x12\x08\n\x04NONE\x10\x00\x12\x0c\n\x08NO_ROUTE\x10\x01\x12\x0b\n\x07GOT_NAK\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x10\n\x0cNO_INTERFACE\x10\x04\x12\x12\n\x0eMAX_RETRANSMIT\x10\x05\x12\x0e\n\nNO_CHANNEL\x10\x06\x12\r\n\tTOO_LARGE\x10\x07\x12\x0f\n\x0bNO_RESPONSE\x10\x08\x12\x14\n\x10\x44UTY_CYCLE_LIMIT\x10\t\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10 \x12\x12\n\x0eNOT_AUTHORIZED\x10!B\t\n\x07variant\"\xa7\x01\n\x04\x44\x61ta\x12$\n\x07portnum\x18\x01 \x01(\x0e\x32\x13.meshtastic.PortNum\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x15\n\rwant_response\x18\x03 \x01(\x08\x12\x0c\n\x04\x64\x65st\x18\x04 \x01(\x07\x12\x0e\n\x06source\x18\x05 \x01(\x07\x12\x12\n\nrequest_id\x18\x06 \x01(\x07\x12\x10\n\x08reply_id\x18\x07 \x01(\x07\x12\r\n\x05\x65moji\x18\x08 \x01(\x07\"\x93\x01\n\x08Waypoint\x12\n\n\x02id\x18\x01 \x01(\r\x12\x12\n\nlatitude_i\x18\x02 \x01(\x0f\x12\x13\n\x0blongitude_i\x18\x03 \x01(\x0f\x12\x0e\n\x06\x65xpire\x18\x04 \x01(\r\x12\x11\n\tlocked_to\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x0c\n\x04icon\x18\x08 \x01(\x07\"l\n\x16MqttClientProxyMessage\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x03 \x01(\tH\x00\x12\x10\n\x08retained\x18\x04 \x01(\x08\x42\x11\n\x0fpayload_variant\"\x95\x04\n\nMeshPacket\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x07\x12\n\n\x02to\x18\x02 \x01(\x07\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\r\x12#\n\x07\x64\x65\x63oded\x18\x04 \x01(\x0b\x32\x10.meshtastic.DataH\x00\x12\x13\n\tencrypted\x18\x05 \x01(\x0cH\x00\x12\n\n\x02id\x18\x06 \x01(\x07\x12\x0f\n\x07rx_time\x18\x07 \x01(\x07\x12\x0e\n\x06rx_snr\x18\x08 \x01(\x02\x12\x11\n\thop_limit\x18\t \x01(\r\x12\x10\n\x08want_ack\x18\n \x01(\x08\x12\x31\n\x08priority\x18\x0b \x01(\x0e\x32\x1f.meshtastic.MeshPacket.Priority\x12\x0f\n\x07rx_rssi\x18\x0c \x01(\x05\x12\x33\n\x07\x64\x65layed\x18\r \x01(\x0e\x32\x1e.meshtastic.MeshPacket.DelayedB\x02\x18\x01\x12\x10\n\x08via_mqtt\x18\x0e \x01(\x08\x12\x11\n\thop_start\x18\x0f \x01(\r\"[\n\x08Priority\x12\t\n\x05UNSET\x10\x00\x12\x07\n\x03MIN\x10\x01\x12\x0e\n\nBACKGROUND\x10\n\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10@\x12\x0c\n\x08RELIABLE\x10\x46\x12\x07\n\x03\x41\x43K\x10x\x12\x07\n\x03MAX\x10\x7f\"B\n\x07\x44\x65layed\x12\x0c\n\x08NO_DELAY\x10\x00\x12\x15\n\x11\x44\x45LAYED_BROADCAST\x10\x01\x12\x12\n\x0e\x44\x45LAYED_DIRECT\x10\x02\x42\x11\n\x0fpayload_variant\"\xfe\x01\n\x08NodeInfo\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x1e\n\x04user\x18\x02 \x01(\x0b\x32\x10.meshtastic.User\x12&\n\x08position\x18\x03 \x01(\x0b\x32\x14.meshtastic.Position\x12\x0b\n\x03snr\x18\x04 \x01(\x02\x12\x12\n\nlast_heard\x18\x05 \x01(\x07\x12\x31\n\x0e\x64\x65vice_metrics\x18\x06 \x01(\x0b\x32\x19.meshtastic.DeviceMetrics\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\r\x12\x10\n\x08via_mqtt\x18\x08 \x01(\x08\x12\x11\n\thops_away\x18\t \x01(\r\x12\x13\n\x0bis_favorite\x18\n \x01(\x08\"P\n\nMyNodeInfo\x12\x13\n\x0bmy_node_num\x18\x01 \x01(\r\x12\x14\n\x0creboot_count\x18\x08 \x01(\r\x12\x17\n\x0fmin_app_version\x18\x0b \x01(\r\"\xc0\x01\n\tLogRecord\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0c\n\x04time\x18\x02 \x01(\x07\x12\x0e\n\x06source\x18\x03 \x01(\t\x12*\n\x05level\x18\x04 \x01(\x0e\x32\x1b.meshtastic.LogRecord.Level\"X\n\x05Level\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x43RITICAL\x10\x32\x12\t\n\x05\x45RROR\x10(\x12\x0b\n\x07WARNING\x10\x1e\x12\x08\n\x04INFO\x10\x14\x12\t\n\x05\x44\x45\x42UG\x10\n\x12\t\n\x05TRACE\x10\x05\"P\n\x0bQueueStatus\x12\x0b\n\x03res\x18\x01 \x01(\x05\x12\x0c\n\x04\x66ree\x18\x02 \x01(\r\x12\x0e\n\x06maxlen\x18\x03 \x01(\r\x12\x16\n\x0emesh_packet_id\x18\x04 \x01(\r\"\xdb\x04\n\tFromRadio\x12\n\n\x02id\x18\x01 \x01(\r\x12(\n\x06packet\x18\x02 \x01(\x0b\x32\x16.meshtastic.MeshPacketH\x00\x12)\n\x07my_info\x18\x03 \x01(\x0b\x32\x16.meshtastic.MyNodeInfoH\x00\x12)\n\tnode_info\x18\x04 \x01(\x0b\x32\x14.meshtastic.NodeInfoH\x00\x12$\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x12.meshtastic.ConfigH\x00\x12+\n\nlog_record\x18\x06 \x01(\x0b\x32\x15.meshtastic.LogRecordH\x00\x12\x1c\n\x12\x63onfig_complete_id\x18\x07 \x01(\rH\x00\x12\x12\n\x08rebooted\x18\x08 \x01(\x08H\x00\x12\x30\n\x0cmoduleConfig\x18\t \x01(\x0b\x32\x18.meshtastic.ModuleConfigH\x00\x12&\n\x07\x63hannel\x18\n \x01(\x0b\x32\x13.meshtastic.ChannelH\x00\x12.\n\x0bqueueStatus\x18\x0b \x01(\x0b\x32\x17.meshtastic.QueueStatusH\x00\x12*\n\x0cxmodemPacket\x18\x0c \x01(\x0b\x32\x12.meshtastic.XModemH\x00\x12.\n\x08metadata\x18\r \x01(\x0b\x32\x1a.meshtastic.DeviceMetadataH\x00\x12\x44\n\x16mqttClientProxyMessage\x18\x0e \x01(\x0b\x32\".meshtastic.MqttClientProxyMessageH\x00\x42\x11\n\x0fpayload_variant\"\x94\x02\n\x07ToRadio\x12(\n\x06packet\x18\x01 \x01(\x0b\x32\x16.meshtastic.MeshPacketH\x00\x12\x18\n\x0ewant_config_id\x18\x03 \x01(\rH\x00\x12\x14\n\ndisconnect\x18\x04 \x01(\x08H\x00\x12*\n\x0cxmodemPacket\x18\x05 \x01(\x0b\x32\x12.meshtastic.XModemH\x00\x12\x44\n\x16mqttClientProxyMessage\x18\x06 \x01(\x0b\x32\".meshtastic.MqttClientProxyMessageH\x00\x12*\n\theartbeat\x18\x07 \x01(\x0b\x32\x15.meshtastic.HeartbeatH\x00\x42\x11\n\x0fpayload_variant\"@\n\nCompressed\x12$\n\x07portnum\x18\x01 \x01(\x0e\x32\x13.meshtastic.PortNum\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x87\x01\n\x0cNeighborInfo\x12\x0f\n\x07node_id\x18\x01 \x01(\r\x12\x17\n\x0flast_sent_by_id\x18\x02 \x01(\r\x12$\n\x1cnode_broadcast_interval_secs\x18\x03 \x01(\r\x12\'\n\tneighbors\x18\x04 \x03(\x0b\x32\x14.meshtastic.Neighbor\"d\n\x08Neighbor\x12\x0f\n\x07node_id\x18\x01 \x01(\r\x12\x0b\n\x03snr\x18\x02 \x01(\x02\x12\x14\n\x0clast_rx_time\x18\x03 \x01(\x07\x12$\n\x1cnode_broadcast_interval_secs\x18\x04 \x01(\r\"\xad\x02\n\x0e\x44\x65viceMetadata\x12\x18\n\x10\x66irmware_version\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65vice_state_version\x18\x02 \x01(\r\x12\x13\n\x0b\x63\x61nShutdown\x18\x03 \x01(\x08\x12\x0f\n\x07hasWifi\x18\x04 \x01(\x08\x12\x14\n\x0chasBluetooth\x18\x05 \x01(\x08\x12\x13\n\x0bhasEthernet\x18\x06 \x01(\x08\x12\x32\n\x04role\x18\x07 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\x12\x16\n\x0eposition_flags\x18\x08 \x01(\r\x12+\n\x08hw_model\x18\t \x01(\x0e\x32\x19.meshtastic.HardwareModel\x12\x19\n\x11hasRemoteHardware\x18\n \x01(\x08\"\x0b\n\tHeartbeat\"U\n\x15NodeRemoteHardwarePin\x12\x10\n\x08node_num\x18\x01 \x01(\r\x12*\n\x03pin\x18\x02 \x01(\x0b\x32\x1d.meshtastic.RemoteHardwarePin\"e\n\x0e\x43hunkedPayload\x12\x12\n\npayload_id\x18\x01 \x01(\r\x12\x13\n\x0b\x63hunk_count\x18\x02 \x01(\r\x12\x13\n\x0b\x63hunk_index\x18\x03 \x01(\r\x12\x15\n\rpayload_chunk\x18\x04 \x01(\x0c\"\x1f\n\rresend_chunks\x12\x0e\n\x06\x63hunks\x18\x01 \x03(\r\"\xaa\x01\n\x16\x43hunkedPayloadResponse\x12\x12\n\npayload_id\x18\x01 \x01(\r\x12\x1a\n\x10request_transfer\x18\x02 \x01(\x08H\x00\x12\x19\n\x0f\x61\x63\x63\x65pt_transfer\x18\x03 \x01(\x08H\x00\x12\x32\n\rresend_chunks\x18\x04 \x01(\x0b\x32\x19.meshtastic.resend_chunksH\x00\x42\x11\n\x0fpayload_variant*\xeb\x08\n\rHardwareModel\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08TLORA_V2\x10\x01\x12\x0c\n\x08TLORA_V1\x10\x02\x12\x12\n\x0eTLORA_V2_1_1P6\x10\x03\x12\t\n\x05TBEAM\x10\x04\x12\x0f\n\x0bHELTEC_V2_0\x10\x05\x12\x0e\n\nTBEAM_V0P7\x10\x06\x12\n\n\x06T_ECHO\x10\x07\x12\x10\n\x0cTLORA_V1_1P3\x10\x08\x12\x0b\n\x07RAK4631\x10\t\x12\x0f\n\x0bHELTEC_V2_1\x10\n\x12\r\n\tHELTEC_V1\x10\x0b\x12\x18\n\x14LILYGO_TBEAM_S3_CORE\x10\x0c\x12\x0c\n\x08RAK11200\x10\r\x12\x0b\n\x07NANO_G1\x10\x0e\x12\x12\n\x0eTLORA_V2_1_1P8\x10\x0f\x12\x0f\n\x0bTLORA_T3_S3\x10\x10\x12\x14\n\x10NANO_G1_EXPLORER\x10\x11\x12\x11\n\rNANO_G2_ULTRA\x10\x12\x12\r\n\tLORA_TYPE\x10\x13\x12\x0b\n\x07WIPHONE\x10\x14\x12\x0e\n\nWIO_WM1110\x10\x15\x12\x0e\n\nSTATION_G1\x10\x19\x12\x0c\n\x08RAK11310\x10\x1a\x12\x14\n\x10SENSELORA_RP2040\x10\x1b\x12\x10\n\x0cSENSELORA_S3\x10\x1c\x12\r\n\tCANARYONE\x10\x1d\x12\x0f\n\x0bRP2040_LORA\x10\x1e\x12\x0e\n\nSTATION_G2\x10\x1f\x12\x11\n\rLORA_RELAY_V1\x10 \x12\x0e\n\nNRF52840DK\x10!\x12\x07\n\x03PPR\x10\"\x12\x0f\n\x0bGENIEBLOCKS\x10#\x12\x11\n\rNRF52_UNKNOWN\x10$\x12\r\n\tPORTDUINO\x10%\x12\x0f\n\x0b\x41NDROID_SIM\x10&\x12\n\n\x06\x44IY_V1\x10\'\x12\x15\n\x11NRF52840_PCA10059\x10(\x12\n\n\x06\x44R_DEV\x10)\x12\x0b\n\x07M5STACK\x10*\x12\r\n\tHELTEC_V3\x10+\x12\x11\n\rHELTEC_WSL_V3\x10,\x12\x13\n\x0f\x42\x45TAFPV_2400_TX\x10-\x12\x17\n\x13\x42\x45TAFPV_900_NANO_TX\x10.\x12\x0c\n\x08RPI_PICO\x10/\x12\x1b\n\x17HELTEC_WIRELESS_TRACKER\x10\x30\x12\x19\n\x15HELTEC_WIRELESS_PAPER\x10\x31\x12\n\n\x06T_DECK\x10\x32\x12\x0e\n\nT_WATCH_S3\x10\x33\x12\x11\n\rPICOMPUTER_S3\x10\x34\x12\x0f\n\x0bHELTEC_HT62\x10\x35\x12\x12\n\x0e\x45\x42YTE_ESP32_S3\x10\x36\x12\x11\n\rESP32_S3_PICO\x10\x37\x12\r\n\tCHATTER_2\x10\x38\x12\x1e\n\x1aHELTEC_WIRELESS_PAPER_V1_0\x10\x39\x12 \n\x1cHELTEC_WIRELESS_TRACKER_V1_0\x10:\x12\x0b\n\x07UNPHONE\x10;\x12\x0c\n\x08TD_LORAC\x10<\x12\x13\n\x0f\x43\x44\x45\x42YTE_EORA_S3\x10=\x12\x0f\n\x0bTWC_MESH_V4\x10>\x12\x16\n\x12NRF52_PROMICRO_DIY\x10?\x12\x1f\n\x1bRADIOMASTER_900_BANDIT_NANO\x10@\x12\x0f\n\nPRIVATE_HW\x10\xff\x01*,\n\tConstants\x12\x08\n\x04ZERO\x10\x00\x12\x15\n\x10\x44\x41TA_PAYLOAD_LEN\x10\xed\x01*\xee\x01\n\x11\x43riticalErrorCode\x12\x08\n\x04NONE\x10\x00\x12\x0f\n\x0bTX_WATCHDOG\x10\x01\x12\x14\n\x10SLEEP_ENTER_WAIT\x10\x02\x12\x0c\n\x08NO_RADIO\x10\x03\x12\x0f\n\x0bUNSPECIFIED\x10\x04\x12\x15\n\x11UBLOX_UNIT_FAILED\x10\x05\x12\r\n\tNO_AXP192\x10\x06\x12\x19\n\x15INVALID_RADIO_SETTING\x10\x07\x12\x13\n\x0fTRANSMIT_FAILED\x10\x08\x12\x0c\n\x08\x42ROWNOUT\x10\t\x12\x12\n\x0eSX1262_FAILURE\x10\n\x12\x11\n\rRADIO_SPI_BUG\x10\x0b\x42_\n\x13\x63om.geeksville.meshB\nMeshProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.mesh_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\nMeshProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _USER.fields_by_name['macaddr']._options = None
- _USER.fields_by_name['macaddr']._serialized_options = b'\030\001'
- _MESHPACKET.fields_by_name['delayed']._options = None
- _MESHPACKET.fields_by_name['delayed']._serialized_options = b'\030\001'
- _HARDWAREMODEL._serialized_start=5046
- _HARDWAREMODEL._serialized_end=6177
- _CONSTANTS._serialized_start=6179
- _CONSTANTS._serialized_end=6223
- _CRITICALERRORCODE._serialized_start=6226
- _CRITICALERRORCODE._serialized_end=6464
- _POSITION._serialized_start=201
- _POSITION._serialized_end=942
- _POSITION_LOCSOURCE._serialized_start=764
- _POSITION_LOCSOURCE._serialized_end=842
- _POSITION_ALTSOURCE._serialized_start=844
- _POSITION_ALTSOURCE._serialized_end=942
- _USER._serialized_start=945
- _USER._serialized_end=1141
- _ROUTEDISCOVERY._serialized_start=1143
- _ROUTEDISCOVERY._serialized_end=1174
- _ROUTING._serialized_start=1177
- _ROUTING._serialized_end=1557
- _ROUTING_ERROR._serialized_start=1344
- _ROUTING_ERROR._serialized_end=1546
- _DATA._serialized_start=1560
- _DATA._serialized_end=1727
- _WAYPOINT._serialized_start=1730
- _WAYPOINT._serialized_end=1877
- _MQTTCLIENTPROXYMESSAGE._serialized_start=1879
- _MQTTCLIENTPROXYMESSAGE._serialized_end=1987
- _MESHPACKET._serialized_start=1990
- _MESHPACKET._serialized_end=2523
- _MESHPACKET_PRIORITY._serialized_start=2345
- _MESHPACKET_PRIORITY._serialized_end=2436
- _MESHPACKET_DELAYED._serialized_start=2438
- _MESHPACKET_DELAYED._serialized_end=2504
- _NODEINFO._serialized_start=2526
- _NODEINFO._serialized_end=2780
- _MYNODEINFO._serialized_start=2782
- _MYNODEINFO._serialized_end=2862
- _LOGRECORD._serialized_start=2865
- _LOGRECORD._serialized_end=3057
- _LOGRECORD_LEVEL._serialized_start=2969
- _LOGRECORD_LEVEL._serialized_end=3057
- _QUEUESTATUS._serialized_start=3059
- _QUEUESTATUS._serialized_end=3139
- _FROMRADIO._serialized_start=3142
- _FROMRADIO._serialized_end=3745
- _TORADIO._serialized_start=3748
- _TORADIO._serialized_end=4024
- _COMPRESSED._serialized_start=4026
- _COMPRESSED._serialized_end=4090
- _NEIGHBORINFO._serialized_start=4093
- _NEIGHBORINFO._serialized_end=4228
- _NEIGHBOR._serialized_start=4230
- _NEIGHBOR._serialized_end=4330
- _DEVICEMETADATA._serialized_start=4333
- _DEVICEMETADATA._serialized_end=4634
- _HEARTBEAT._serialized_start=4636
- _HEARTBEAT._serialized_end=4647
- _NODEREMOTEHARDWAREPIN._serialized_start=4649
- _NODEREMOTEHARDWAREPIN._serialized_end=4734
- _CHUNKEDPAYLOAD._serialized_start=4736
- _CHUNKEDPAYLOAD._serialized_end=4837
- _RESEND_CHUNKS._serialized_start=4839
- _RESEND_CHUNKS._serialized_end=4870
- _CHUNKEDPAYLOADRESPONSE._serialized_start=4873
- _CHUNKEDPAYLOADRESPONSE._serialized_end=5043
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/mesh_pb2.pyi b/meshtastic/mesh_pb2.pyi
deleted file mode 100644
index 391aae7..0000000
--- a/meshtastic/mesh_pb2.pyi
+++ /dev/null
@@ -1,2526 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import meshtastic.channel_pb2
-import meshtastic.config_pb2
-import meshtastic.module_config_pb2
-import meshtastic.portnums_pb2
-import meshtastic.telemetry_pb2
-import meshtastic.xmodem_pb2
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _HardwareModel:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _HardwareModelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HardwareModel.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: _HardwareModel.ValueType # 0
- """
- TODO: REPLACE
- """
- TLORA_V2: _HardwareModel.ValueType # 1
- """
- TODO: REPLACE
- """
- TLORA_V1: _HardwareModel.ValueType # 2
- """
- TODO: REPLACE
- """
- TLORA_V2_1_1P6: _HardwareModel.ValueType # 3
- """
- TODO: REPLACE
- """
- TBEAM: _HardwareModel.ValueType # 4
- """
- TODO: REPLACE
- """
- HELTEC_V2_0: _HardwareModel.ValueType # 5
- """
- The original heltec WiFi_Lora_32_V2, which had battery voltage sensing hooked to GPIO 13
- (see HELTEC_V2 for the new version).
- """
- TBEAM_V0P7: _HardwareModel.ValueType # 6
- """
- TODO: REPLACE
- """
- T_ECHO: _HardwareModel.ValueType # 7
- """
- TODO: REPLACE
- """
- TLORA_V1_1P3: _HardwareModel.ValueType # 8
- """
- TODO: REPLACE
- """
- RAK4631: _HardwareModel.ValueType # 9
- """
- TODO: REPLACE
- """
- HELTEC_V2_1: _HardwareModel.ValueType # 10
- """
- The new version of the heltec WiFi_Lora_32_V2 board that has battery sensing hooked to GPIO 37.
- Sadly they did not update anything on the silkscreen to identify this board
- """
- HELTEC_V1: _HardwareModel.ValueType # 11
- """
- Ancient heltec WiFi_Lora_32 board
- """
- LILYGO_TBEAM_S3_CORE: _HardwareModel.ValueType # 12
- """
- New T-BEAM with ESP32-S3 CPU
- """
- RAK11200: _HardwareModel.ValueType # 13
- """
- RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/
- """
- NANO_G1: _HardwareModel.ValueType # 14
- """
- B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano
- """
- TLORA_V2_1_1P8: _HardwareModel.ValueType # 15
- """
- TODO: REPLACE
- """
- TLORA_T3_S3: _HardwareModel.ValueType # 16
- """
- TODO: REPLACE
- """
- NANO_G1_EXPLORER: _HardwareModel.ValueType # 17
- """
- B&Q Consulting Nano G1 Explorer: https://wiki.uniteng.com/en/meshtastic/nano-g1-explorer
- """
- NANO_G2_ULTRA: _HardwareModel.ValueType # 18
- """
- B&Q Consulting Nano G2 Ultra: https://wiki.uniteng.com/en/meshtastic/nano-g2-ultra
- """
- LORA_TYPE: _HardwareModel.ValueType # 19
- """
- LoRAType device: https://loratype.org/
- """
- WIPHONE: _HardwareModel.ValueType # 20
- """
- wiphone https://www.wiphone.io/
- """
- WIO_WM1110: _HardwareModel.ValueType # 21
- """
- WIO Tracker WM1110 family from Seeed Studio. Includes wio-1110-tracker and wio-1110-sdk
- """
- STATION_G1: _HardwareModel.ValueType # 25
- """
- B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
- """
- RAK11310: _HardwareModel.ValueType # 26
- """
- RAK11310 (RP2040 + SX1262)
- """
- SENSELORA_RP2040: _HardwareModel.ValueType # 27
- """
- Makerfabs SenseLoRA Receiver (RP2040 + RFM96)
- """
- SENSELORA_S3: _HardwareModel.ValueType # 28
- """
- Makerfabs SenseLoRA Industrial Monitor (ESP32-S3 + RFM96)
- """
- CANARYONE: _HardwareModel.ValueType # 29
- """
- Canary Radio Company - CanaryOne: https://canaryradio.io/products/canaryone
- """
- RP2040_LORA: _HardwareModel.ValueType # 30
- """
- Waveshare RP2040 LoRa - https://www.waveshare.com/rp2040-lora.htm
- """
- STATION_G2: _HardwareModel.ValueType # 31
- """
- B&Q Consulting Station G2: https://wiki.uniteng.com/en/meshtastic/station-g2
- """
- LORA_RELAY_V1: _HardwareModel.ValueType # 32
- """
- ---------------------------------------------------------------------------
- Less common/prototype boards listed here (needs one more byte over the air)
- ---------------------------------------------------------------------------
- """
- NRF52840DK: _HardwareModel.ValueType # 33
- """
- TODO: REPLACE
- """
- PPR: _HardwareModel.ValueType # 34
- """
- TODO: REPLACE
- """
- GENIEBLOCKS: _HardwareModel.ValueType # 35
- """
- TODO: REPLACE
- """
- NRF52_UNKNOWN: _HardwareModel.ValueType # 36
- """
- TODO: REPLACE
- """
- PORTDUINO: _HardwareModel.ValueType # 37
- """
- TODO: REPLACE
- """
- ANDROID_SIM: _HardwareModel.ValueType # 38
- """
- The simulator built into the android app
- """
- DIY_V1: _HardwareModel.ValueType # 39
- """
- Custom DIY device based on @NanoVHF schematics: https://github.com/NanoVHF/Meshtastic-DIY/tree/main/Schematics
- """
- NRF52840_PCA10059: _HardwareModel.ValueType # 40
- """
- nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/
- """
- DR_DEV: _HardwareModel.ValueType # 41
- """
- Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3
- """
- M5STACK: _HardwareModel.ValueType # 42
- """
- M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/
- """
- HELTEC_V3: _HardwareModel.ValueType # 43
- """
- New Heltec LoRA32 with ESP32-S3 CPU
- """
- HELTEC_WSL_V3: _HardwareModel.ValueType # 44
- """
- New Heltec Wireless Stick Lite with ESP32-S3 CPU
- """
- BETAFPV_2400_TX: _HardwareModel.ValueType # 45
- """
- New BETAFPV ELRS Micro TX Module 2.4G with ESP32 CPU
- """
- BETAFPV_900_NANO_TX: _HardwareModel.ValueType # 46
- """
- BetaFPV ExpressLRS "Nano" TX Module 900MHz with ESP32 CPU
- """
- RPI_PICO: _HardwareModel.ValueType # 47
- """
- Raspberry Pi Pico (W) with Waveshare SX1262 LoRa Node Module
- """
- HELTEC_WIRELESS_TRACKER: _HardwareModel.ValueType # 48
- """
- Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
- Newer V1.1, version is written on the PCB near the display.
- """
- HELTEC_WIRELESS_PAPER: _HardwareModel.ValueType # 49
- """
- Heltec Wireless Paper with ESP32-S3 CPU and E-Ink display
- """
- T_DECK: _HardwareModel.ValueType # 50
- """
- LilyGo T-Deck with ESP32-S3 CPU, Keyboard and IPS display
- """
- T_WATCH_S3: _HardwareModel.ValueType # 51
- """
- LilyGo T-Watch S3 with ESP32-S3 CPU and IPS display
- """
- PICOMPUTER_S3: _HardwareModel.ValueType # 52
- """
- Bobricius Picomputer with ESP32-S3 CPU, Keyboard and IPS display
- """
- HELTEC_HT62: _HardwareModel.ValueType # 53
- """
- Heltec HT-CT62 with ESP32-C3 CPU and SX1262 LoRa
- """
- EBYTE_ESP32_S3: _HardwareModel.ValueType # 54
- """
- EBYTE SPI LoRa module and ESP32-S3
- """
- ESP32_S3_PICO: _HardwareModel.ValueType # 55
- """
- Waveshare ESP32-S3-PICO with PICO LoRa HAT and 2.9inch e-Ink
- """
- CHATTER_2: _HardwareModel.ValueType # 56
- """
- CircuitMess Chatter 2 LLCC68 Lora Module and ESP32 Wroom
- Lora module can be swapped out for a Heltec RA-62 which is "almost" pin compatible
- with one cut and one jumper Meshtastic works
- """
- HELTEC_WIRELESS_PAPER_V1_0: _HardwareModel.ValueType # 57
- """
- Heltec Wireless Paper, With ESP32-S3 CPU and E-Ink display
- Older "V1.0" Variant, has no "version sticker"
- E-Ink model is DEPG0213BNS800
- Tab on the screen protector is RED
- Flex connector marking is FPC-7528B
- """
- HELTEC_WIRELESS_TRACKER_V1_0: _HardwareModel.ValueType # 58
- """
- Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
- Older "V1.0" Variant
- """
- UNPHONE: _HardwareModel.ValueType # 59
- """
- unPhone with ESP32-S3, TFT touchscreen, LSM6DS3TR-C accelerometer and gyroscope
- """
- TD_LORAC: _HardwareModel.ValueType # 60
- """
- Teledatics TD-LORAC NRF52840 based M.2 LoRA module
- Compatible with the TD-WRLS development board
- """
- CDEBYTE_EORA_S3: _HardwareModel.ValueType # 61
- """
- CDEBYTE EoRa-S3 board using their own MM modules, clone of LILYGO T3S3
- """
- TWC_MESH_V4: _HardwareModel.ValueType # 62
- """
- TWC_MESH_V4
- Adafruit NRF52840 feather express with SX1262, SSD1306 OLED and NEO6M GPS
- """
- NRF52_PROMICRO_DIY: _HardwareModel.ValueType # 63
- """
- NRF52_PROMICRO_DIY
- Promicro NRF52840 with SX1262/LLCC68, SSD1306 OLED and NEO6M GPS
- """
- RADIOMASTER_900_BANDIT_NANO: _HardwareModel.ValueType # 64
- """
- RadioMaster 900 Bandit Nano, https://www.radiomasterrc.com/products/bandit-nano-expresslrs-rf-module
- ESP32-D0WDQ6 With SX1276/SKY66122, SSD1306 OLED and No GPS
- """
- PRIVATE_HW: _HardwareModel.ValueType # 255
- """
- ------------------------------------------------------------------------------------------------------------------------------------------
- Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
- ------------------------------------------------------------------------------------------------------------------------------------------
- """
-
-class HardwareModel(_HardwareModel, metaclass=_HardwareModelEnumTypeWrapper):
- """
- Note: these enum names must EXACTLY match the string used in the device
- bin/build-all.sh script.
- Because they will be used to find firmware filenames in the android app for OTA updates.
- To match the old style filenames, _ is converted to -, p is converted to .
- """
-
-UNSET: HardwareModel.ValueType # 0
-"""
-TODO: REPLACE
-"""
-TLORA_V2: HardwareModel.ValueType # 1
-"""
-TODO: REPLACE
-"""
-TLORA_V1: HardwareModel.ValueType # 2
-"""
-TODO: REPLACE
-"""
-TLORA_V2_1_1P6: HardwareModel.ValueType # 3
-"""
-TODO: REPLACE
-"""
-TBEAM: HardwareModel.ValueType # 4
-"""
-TODO: REPLACE
-"""
-HELTEC_V2_0: HardwareModel.ValueType # 5
-"""
-The original heltec WiFi_Lora_32_V2, which had battery voltage sensing hooked to GPIO 13
-(see HELTEC_V2 for the new version).
-"""
-TBEAM_V0P7: HardwareModel.ValueType # 6
-"""
-TODO: REPLACE
-"""
-T_ECHO: HardwareModel.ValueType # 7
-"""
-TODO: REPLACE
-"""
-TLORA_V1_1P3: HardwareModel.ValueType # 8
-"""
-TODO: REPLACE
-"""
-RAK4631: HardwareModel.ValueType # 9
-"""
-TODO: REPLACE
-"""
-HELTEC_V2_1: HardwareModel.ValueType # 10
-"""
-The new version of the heltec WiFi_Lora_32_V2 board that has battery sensing hooked to GPIO 37.
-Sadly they did not update anything on the silkscreen to identify this board
-"""
-HELTEC_V1: HardwareModel.ValueType # 11
-"""
-Ancient heltec WiFi_Lora_32 board
-"""
-LILYGO_TBEAM_S3_CORE: HardwareModel.ValueType # 12
-"""
-New T-BEAM with ESP32-S3 CPU
-"""
-RAK11200: HardwareModel.ValueType # 13
-"""
-RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/
-"""
-NANO_G1: HardwareModel.ValueType # 14
-"""
-B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano
-"""
-TLORA_V2_1_1P8: HardwareModel.ValueType # 15
-"""
-TODO: REPLACE
-"""
-TLORA_T3_S3: HardwareModel.ValueType # 16
-"""
-TODO: REPLACE
-"""
-NANO_G1_EXPLORER: HardwareModel.ValueType # 17
-"""
-B&Q Consulting Nano G1 Explorer: https://wiki.uniteng.com/en/meshtastic/nano-g1-explorer
-"""
-NANO_G2_ULTRA: HardwareModel.ValueType # 18
-"""
-B&Q Consulting Nano G2 Ultra: https://wiki.uniteng.com/en/meshtastic/nano-g2-ultra
-"""
-LORA_TYPE: HardwareModel.ValueType # 19
-"""
-LoRAType device: https://loratype.org/
-"""
-WIPHONE: HardwareModel.ValueType # 20
-"""
-wiphone https://www.wiphone.io/
-"""
-WIO_WM1110: HardwareModel.ValueType # 21
-"""
-WIO Tracker WM1110 family from Seeed Studio. Includes wio-1110-tracker and wio-1110-sdk
-"""
-STATION_G1: HardwareModel.ValueType # 25
-"""
-B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
-"""
-RAK11310: HardwareModel.ValueType # 26
-"""
-RAK11310 (RP2040 + SX1262)
-"""
-SENSELORA_RP2040: HardwareModel.ValueType # 27
-"""
-Makerfabs SenseLoRA Receiver (RP2040 + RFM96)
-"""
-SENSELORA_S3: HardwareModel.ValueType # 28
-"""
-Makerfabs SenseLoRA Industrial Monitor (ESP32-S3 + RFM96)
-"""
-CANARYONE: HardwareModel.ValueType # 29
-"""
-Canary Radio Company - CanaryOne: https://canaryradio.io/products/canaryone
-"""
-RP2040_LORA: HardwareModel.ValueType # 30
-"""
-Waveshare RP2040 LoRa - https://www.waveshare.com/rp2040-lora.htm
-"""
-STATION_G2: HardwareModel.ValueType # 31
-"""
-B&Q Consulting Station G2: https://wiki.uniteng.com/en/meshtastic/station-g2
-"""
-LORA_RELAY_V1: HardwareModel.ValueType # 32
-"""
----------------------------------------------------------------------------
-Less common/prototype boards listed here (needs one more byte over the air)
----------------------------------------------------------------------------
-"""
-NRF52840DK: HardwareModel.ValueType # 33
-"""
-TODO: REPLACE
-"""
-PPR: HardwareModel.ValueType # 34
-"""
-TODO: REPLACE
-"""
-GENIEBLOCKS: HardwareModel.ValueType # 35
-"""
-TODO: REPLACE
-"""
-NRF52_UNKNOWN: HardwareModel.ValueType # 36
-"""
-TODO: REPLACE
-"""
-PORTDUINO: HardwareModel.ValueType # 37
-"""
-TODO: REPLACE
-"""
-ANDROID_SIM: HardwareModel.ValueType # 38
-"""
-The simulator built into the android app
-"""
-DIY_V1: HardwareModel.ValueType # 39
-"""
-Custom DIY device based on @NanoVHF schematics: https://github.com/NanoVHF/Meshtastic-DIY/tree/main/Schematics
-"""
-NRF52840_PCA10059: HardwareModel.ValueType # 40
-"""
-nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/
-"""
-DR_DEV: HardwareModel.ValueType # 41
-"""
-Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3
-"""
-M5STACK: HardwareModel.ValueType # 42
-"""
-M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/
-"""
-HELTEC_V3: HardwareModel.ValueType # 43
-"""
-New Heltec LoRA32 with ESP32-S3 CPU
-"""
-HELTEC_WSL_V3: HardwareModel.ValueType # 44
-"""
-New Heltec Wireless Stick Lite with ESP32-S3 CPU
-"""
-BETAFPV_2400_TX: HardwareModel.ValueType # 45
-"""
-New BETAFPV ELRS Micro TX Module 2.4G with ESP32 CPU
-"""
-BETAFPV_900_NANO_TX: HardwareModel.ValueType # 46
-"""
-BetaFPV ExpressLRS "Nano" TX Module 900MHz with ESP32 CPU
-"""
-RPI_PICO: HardwareModel.ValueType # 47
-"""
-Raspberry Pi Pico (W) with Waveshare SX1262 LoRa Node Module
-"""
-HELTEC_WIRELESS_TRACKER: HardwareModel.ValueType # 48
-"""
-Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
-Newer V1.1, version is written on the PCB near the display.
-"""
-HELTEC_WIRELESS_PAPER: HardwareModel.ValueType # 49
-"""
-Heltec Wireless Paper with ESP32-S3 CPU and E-Ink display
-"""
-T_DECK: HardwareModel.ValueType # 50
-"""
-LilyGo T-Deck with ESP32-S3 CPU, Keyboard and IPS display
-"""
-T_WATCH_S3: HardwareModel.ValueType # 51
-"""
-LilyGo T-Watch S3 with ESP32-S3 CPU and IPS display
-"""
-PICOMPUTER_S3: HardwareModel.ValueType # 52
-"""
-Bobricius Picomputer with ESP32-S3 CPU, Keyboard and IPS display
-"""
-HELTEC_HT62: HardwareModel.ValueType # 53
-"""
-Heltec HT-CT62 with ESP32-C3 CPU and SX1262 LoRa
-"""
-EBYTE_ESP32_S3: HardwareModel.ValueType # 54
-"""
-EBYTE SPI LoRa module and ESP32-S3
-"""
-ESP32_S3_PICO: HardwareModel.ValueType # 55
-"""
-Waveshare ESP32-S3-PICO with PICO LoRa HAT and 2.9inch e-Ink
-"""
-CHATTER_2: HardwareModel.ValueType # 56
-"""
-CircuitMess Chatter 2 LLCC68 Lora Module and ESP32 Wroom
-Lora module can be swapped out for a Heltec RA-62 which is "almost" pin compatible
-with one cut and one jumper Meshtastic works
-"""
-HELTEC_WIRELESS_PAPER_V1_0: HardwareModel.ValueType # 57
-"""
-Heltec Wireless Paper, With ESP32-S3 CPU and E-Ink display
-Older "V1.0" Variant, has no "version sticker"
-E-Ink model is DEPG0213BNS800
-Tab on the screen protector is RED
-Flex connector marking is FPC-7528B
-"""
-HELTEC_WIRELESS_TRACKER_V1_0: HardwareModel.ValueType # 58
-"""
-Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
-Older "V1.0" Variant
-"""
-UNPHONE: HardwareModel.ValueType # 59
-"""
-unPhone with ESP32-S3, TFT touchscreen, LSM6DS3TR-C accelerometer and gyroscope
-"""
-TD_LORAC: HardwareModel.ValueType # 60
-"""
-Teledatics TD-LORAC NRF52840 based M.2 LoRA module
-Compatible with the TD-WRLS development board
-"""
-CDEBYTE_EORA_S3: HardwareModel.ValueType # 61
-"""
-CDEBYTE EoRa-S3 board using their own MM modules, clone of LILYGO T3S3
-"""
-TWC_MESH_V4: HardwareModel.ValueType # 62
-"""
-TWC_MESH_V4
-Adafruit NRF52840 feather express with SX1262, SSD1306 OLED and NEO6M GPS
-"""
-NRF52_PROMICRO_DIY: HardwareModel.ValueType # 63
-"""
-NRF52_PROMICRO_DIY
-Promicro NRF52840 with SX1262/LLCC68, SSD1306 OLED and NEO6M GPS
-"""
-RADIOMASTER_900_BANDIT_NANO: HardwareModel.ValueType # 64
-"""
-RadioMaster 900 Bandit Nano, https://www.radiomasterrc.com/products/bandit-nano-expresslrs-rf-module
-ESP32-D0WDQ6 With SX1276/SKY66122, SSD1306 OLED and No GPS
-"""
-PRIVATE_HW: HardwareModel.ValueType # 255
-"""
-------------------------------------------------------------------------------------------------------------------------------------------
-Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
-------------------------------------------------------------------------------------------------------------------------------------------
-"""
-global___HardwareModel = HardwareModel
-
-class _Constants:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _ConstantsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Constants.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- ZERO: _Constants.ValueType # 0
- """
- First enum must be zero, and we are just using this enum to
- pass int constants between two very different environments
- """
- DATA_PAYLOAD_LEN: _Constants.ValueType # 237
- """
- From mesh.options
- note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is
- outside of this envelope
- """
-
-class Constants(_Constants, metaclass=_ConstantsEnumTypeWrapper):
- """
- Shared constants between device and phone
- """
-
-ZERO: Constants.ValueType # 0
-"""
-First enum must be zero, and we are just using this enum to
-pass int constants between two very different environments
-"""
-DATA_PAYLOAD_LEN: Constants.ValueType # 237
-"""
-From mesh.options
-note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is
-outside of this envelope
-"""
-global___Constants = Constants
-
-class _CriticalErrorCode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _CriticalErrorCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CriticalErrorCode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- NONE: _CriticalErrorCode.ValueType # 0
- """
- TODO: REPLACE
- """
- TX_WATCHDOG: _CriticalErrorCode.ValueType # 1
- """
- A software bug was detected while trying to send lora
- """
- SLEEP_ENTER_WAIT: _CriticalErrorCode.ValueType # 2
- """
- A software bug was detected on entry to sleep
- """
- NO_RADIO: _CriticalErrorCode.ValueType # 3
- """
- No Lora radio hardware could be found
- """
- UNSPECIFIED: _CriticalErrorCode.ValueType # 4
- """
- Not normally used
- """
- UBLOX_UNIT_FAILED: _CriticalErrorCode.ValueType # 5
- """
- We failed while configuring a UBlox GPS
- """
- NO_AXP192: _CriticalErrorCode.ValueType # 6
- """
- This board was expected to have a power management chip and it is missing or broken
- """
- INVALID_RADIO_SETTING: _CriticalErrorCode.ValueType # 7
- """
- The channel tried to set a radio setting which is not supported by this chipset,
- radio comms settings are now undefined.
- """
- TRANSMIT_FAILED: _CriticalErrorCode.ValueType # 8
- """
- Radio transmit hardware failure. We sent data to the radio chip, but it didn't
- reply with an interrupt.
- """
- BROWNOUT: _CriticalErrorCode.ValueType # 9
- """
- We detected that the main CPU voltage dropped below the minimum acceptable value
- """
- SX1262_FAILURE: _CriticalErrorCode.ValueType # 10
- """Selftest of SX1262 radio chip failed"""
- RADIO_SPI_BUG: _CriticalErrorCode.ValueType # 11
- """
- A (likely software but possibly hardware) failure was detected while trying to send packets.
- If this occurs on your board, please post in the forum so that we can ask you to collect some information to allow fixing this bug
- """
-
-class CriticalErrorCode(_CriticalErrorCode, metaclass=_CriticalErrorCodeEnumTypeWrapper):
- """
- Error codes for critical errors
- The device might report these fault codes on the screen.
- If you encounter a fault code, please post on the meshtastic.discourse.group
- and we'll try to help.
- """
-
-NONE: CriticalErrorCode.ValueType # 0
-"""
-TODO: REPLACE
-"""
-TX_WATCHDOG: CriticalErrorCode.ValueType # 1
-"""
-A software bug was detected while trying to send lora
-"""
-SLEEP_ENTER_WAIT: CriticalErrorCode.ValueType # 2
-"""
-A software bug was detected on entry to sleep
-"""
-NO_RADIO: CriticalErrorCode.ValueType # 3
-"""
-No Lora radio hardware could be found
-"""
-UNSPECIFIED: CriticalErrorCode.ValueType # 4
-"""
-Not normally used
-"""
-UBLOX_UNIT_FAILED: CriticalErrorCode.ValueType # 5
-"""
-We failed while configuring a UBlox GPS
-"""
-NO_AXP192: CriticalErrorCode.ValueType # 6
-"""
-This board was expected to have a power management chip and it is missing or broken
-"""
-INVALID_RADIO_SETTING: CriticalErrorCode.ValueType # 7
-"""
-The channel tried to set a radio setting which is not supported by this chipset,
-radio comms settings are now undefined.
-"""
-TRANSMIT_FAILED: CriticalErrorCode.ValueType # 8
-"""
-Radio transmit hardware failure. We sent data to the radio chip, but it didn't
-reply with an interrupt.
-"""
-BROWNOUT: CriticalErrorCode.ValueType # 9
-"""
-We detected that the main CPU voltage dropped below the minimum acceptable value
-"""
-SX1262_FAILURE: CriticalErrorCode.ValueType # 10
-"""Selftest of SX1262 radio chip failed"""
-RADIO_SPI_BUG: CriticalErrorCode.ValueType # 11
-"""
-A (likely software but possibly hardware) failure was detected while trying to send packets.
-If this occurs on your board, please post in the forum so that we can ask you to collect some information to allow fixing this bug
-"""
-global___CriticalErrorCode = CriticalErrorCode
-
-@typing_extensions.final
-class Position(google.protobuf.message.Message):
- """
- a gps position
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _LocSource:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _LocSourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Position._LocSource.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- LOC_UNSET: Position._LocSource.ValueType # 0
- """
- TODO: REPLACE
- """
- LOC_MANUAL: Position._LocSource.ValueType # 1
- """
- TODO: REPLACE
- """
- LOC_INTERNAL: Position._LocSource.ValueType # 2
- """
- TODO: REPLACE
- """
- LOC_EXTERNAL: Position._LocSource.ValueType # 3
- """
- TODO: REPLACE
- """
-
- class LocSource(_LocSource, metaclass=_LocSourceEnumTypeWrapper):
- """
- How the location was acquired: manual, onboard GPS, external (EUD) GPS
- """
-
- LOC_UNSET: Position.LocSource.ValueType # 0
- """
- TODO: REPLACE
- """
- LOC_MANUAL: Position.LocSource.ValueType # 1
- """
- TODO: REPLACE
- """
- LOC_INTERNAL: Position.LocSource.ValueType # 2
- """
- TODO: REPLACE
- """
- LOC_EXTERNAL: Position.LocSource.ValueType # 3
- """
- TODO: REPLACE
- """
-
- class _AltSource:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _AltSourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Position._AltSource.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- ALT_UNSET: Position._AltSource.ValueType # 0
- """
- TODO: REPLACE
- """
- ALT_MANUAL: Position._AltSource.ValueType # 1
- """
- TODO: REPLACE
- """
- ALT_INTERNAL: Position._AltSource.ValueType # 2
- """
- TODO: REPLACE
- """
- ALT_EXTERNAL: Position._AltSource.ValueType # 3
- """
- TODO: REPLACE
- """
- ALT_BAROMETRIC: Position._AltSource.ValueType # 4
- """
- TODO: REPLACE
- """
-
- class AltSource(_AltSource, metaclass=_AltSourceEnumTypeWrapper):
- """
- How the altitude was acquired: manual, GPS int/ext, etc
- Default: same as location_source if present
- """
-
- ALT_UNSET: Position.AltSource.ValueType # 0
- """
- TODO: REPLACE
- """
- ALT_MANUAL: Position.AltSource.ValueType # 1
- """
- TODO: REPLACE
- """
- ALT_INTERNAL: Position.AltSource.ValueType # 2
- """
- TODO: REPLACE
- """
- ALT_EXTERNAL: Position.AltSource.ValueType # 3
- """
- TODO: REPLACE
- """
- ALT_BAROMETRIC: Position.AltSource.ValueType # 4
- """
- TODO: REPLACE
- """
-
- LATITUDE_I_FIELD_NUMBER: builtins.int
- LONGITUDE_I_FIELD_NUMBER: builtins.int
- ALTITUDE_FIELD_NUMBER: builtins.int
- TIME_FIELD_NUMBER: builtins.int
- LOCATION_SOURCE_FIELD_NUMBER: builtins.int
- ALTITUDE_SOURCE_FIELD_NUMBER: builtins.int
- TIMESTAMP_FIELD_NUMBER: builtins.int
- TIMESTAMP_MILLIS_ADJUST_FIELD_NUMBER: builtins.int
- ALTITUDE_HAE_FIELD_NUMBER: builtins.int
- ALTITUDE_GEOIDAL_SEPARATION_FIELD_NUMBER: builtins.int
- PDOP_FIELD_NUMBER: builtins.int
- HDOP_FIELD_NUMBER: builtins.int
- VDOP_FIELD_NUMBER: builtins.int
- GPS_ACCURACY_FIELD_NUMBER: builtins.int
- GROUND_SPEED_FIELD_NUMBER: builtins.int
- GROUND_TRACK_FIELD_NUMBER: builtins.int
- FIX_QUALITY_FIELD_NUMBER: builtins.int
- FIX_TYPE_FIELD_NUMBER: builtins.int
- SATS_IN_VIEW_FIELD_NUMBER: builtins.int
- SENSOR_ID_FIELD_NUMBER: builtins.int
- NEXT_UPDATE_FIELD_NUMBER: builtins.int
- SEQ_NUMBER_FIELD_NUMBER: builtins.int
- PRECISION_BITS_FIELD_NUMBER: builtins.int
- latitude_i: builtins.int
- """
- The new preferred location encoding, multiply by 1e-7 to get degrees
- in floating point
- """
- longitude_i: builtins.int
- """
- TODO: REPLACE
- """
- altitude: builtins.int
- """
- In meters above MSL (but see issue #359)
- """
- time: builtins.int
- """
- This is usually not sent over the mesh (to save space), but it is sent
- from the phone so that the local device can set its time if it is sent over
- the mesh (because there are devices on the mesh without GPS or RTC).
- seconds since 1970
- """
- location_source: global___Position.LocSource.ValueType
- """
- TODO: REPLACE
- """
- altitude_source: global___Position.AltSource.ValueType
- """
- TODO: REPLACE
- """
- timestamp: builtins.int
- """
- Positional timestamp (actual timestamp of GPS solution) in integer epoch seconds
- """
- timestamp_millis_adjust: builtins.int
- """
- Pos. timestamp milliseconds adjustment (rarely available or required)
- """
- altitude_hae: builtins.int
- """
- HAE altitude in meters - can be used instead of MSL altitude
- """
- altitude_geoidal_separation: builtins.int
- """
- Geoidal separation in meters
- """
- PDOP: builtins.int
- """
- Horizontal, Vertical and Position Dilution of Precision, in 1/100 units
- - PDOP is sufficient for most cases
- - for higher precision scenarios, HDOP and VDOP can be used instead,
- in which case PDOP becomes redundant (PDOP=sqrt(HDOP^2 + VDOP^2))
- TODO: REMOVE/INTEGRATE
- """
- HDOP: builtins.int
- """
- TODO: REPLACE
- """
- VDOP: builtins.int
- """
- TODO: REPLACE
- """
- gps_accuracy: builtins.int
- """
- GPS accuracy (a hardware specific constant) in mm
- multiplied with DOP to calculate positional accuracy
- Default: "'bout three meters-ish" :)
- """
- ground_speed: builtins.int
- """
- Ground speed in m/s and True North TRACK in 1/100 degrees
- Clarification of terms:
- - "track" is the direction of motion (measured in horizontal plane)
- - "heading" is where the fuselage points (measured in horizontal plane)
- - "yaw" indicates a relative rotation about the vertical axis
- TODO: REMOVE/INTEGRATE
- """
- ground_track: builtins.int
- """
- TODO: REPLACE
- """
- fix_quality: builtins.int
- """
- GPS fix quality (from NMEA GxGGA statement or similar)
- """
- fix_type: builtins.int
- """
- GPS fix type 2D/3D (from NMEA GxGSA statement)
- """
- sats_in_view: builtins.int
- """
- GPS "Satellites in View" number
- """
- sensor_id: builtins.int
- """
- Sensor ID - in case multiple positioning sensors are being used
- """
- next_update: builtins.int
- """
- Estimated/expected time (in seconds) until next update:
- - if we update at fixed intervals of X seconds, use X
- - if we update at dynamic intervals (based on relative movement etc),
- but "AT LEAST every Y seconds", use Y
- """
- seq_number: builtins.int
- """
- A sequence number, incremented with each Position message to help
- detect lost updates if needed
- """
- precision_bits: builtins.int
- """
- Indicates the bits of precision set by the sending node
- """
- def __init__(
- self,
- *,
- latitude_i: builtins.int = ...,
- longitude_i: builtins.int = ...,
- altitude: builtins.int = ...,
- time: builtins.int = ...,
- location_source: global___Position.LocSource.ValueType = ...,
- altitude_source: global___Position.AltSource.ValueType = ...,
- timestamp: builtins.int = ...,
- timestamp_millis_adjust: builtins.int = ...,
- altitude_hae: builtins.int = ...,
- altitude_geoidal_separation: builtins.int = ...,
- PDOP: builtins.int = ...,
- HDOP: builtins.int = ...,
- VDOP: builtins.int = ...,
- gps_accuracy: builtins.int = ...,
- ground_speed: builtins.int = ...,
- ground_track: builtins.int = ...,
- fix_quality: builtins.int = ...,
- fix_type: builtins.int = ...,
- sats_in_view: builtins.int = ...,
- sensor_id: builtins.int = ...,
- next_update: builtins.int = ...,
- seq_number: builtins.int = ...,
- precision_bits: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["HDOP", b"HDOP", "PDOP", b"PDOP", "VDOP", b"VDOP", "altitude", b"altitude", "altitude_geoidal_separation", b"altitude_geoidal_separation", "altitude_hae", b"altitude_hae", "altitude_source", b"altitude_source", "fix_quality", b"fix_quality", "fix_type", b"fix_type", "gps_accuracy", b"gps_accuracy", "ground_speed", b"ground_speed", "ground_track", b"ground_track", "latitude_i", b"latitude_i", "location_source", b"location_source", "longitude_i", b"longitude_i", "next_update", b"next_update", "precision_bits", b"precision_bits", "sats_in_view", b"sats_in_view", "sensor_id", b"sensor_id", "seq_number", b"seq_number", "time", b"time", "timestamp", b"timestamp", "timestamp_millis_adjust", b"timestamp_millis_adjust"]) -> None: ...
-
-global___Position = Position
-
-@typing_extensions.final
-class User(google.protobuf.message.Message):
- """
- Broadcast when a newly powered mesh node wants to find a node num it can use
- Sent from the phone over bluetooth to set the user id for the owner of this node.
- Also sent from nodes to each other when a new node signs on (so all clients can have this info)
- The algorithm is as follows:
- when a node starts up, it broadcasts their user and the normal flow is for all
- other nodes to reply with their User as well (so the new node can build its nodedb)
- If a node ever receives a User (not just the first broadcast) message where
- the sender node number equals our node number, that indicates a collision has
- occurred and the following steps should happen:
- If the receiving node (that was already in the mesh)'s macaddr is LOWER than the
- new User who just tried to sign in: it gets to keep its nodenum.
- We send a broadcast message of OUR User (we use a broadcast so that the other node can
- receive our message, considering we have the same id - it also serves to let
- observers correct their nodedb) - this case is rare so it should be okay.
- If any node receives a User where the macaddr is GTE than their local macaddr,
- they have been vetoed and should pick a new random nodenum (filtering against
- whatever it knows about the nodedb) and rebroadcast their User.
- A few nodenums are reserved and will never be requested:
- 0xff - broadcast
- 0 through 3 - for future use
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ID_FIELD_NUMBER: builtins.int
- LONG_NAME_FIELD_NUMBER: builtins.int
- SHORT_NAME_FIELD_NUMBER: builtins.int
- MACADDR_FIELD_NUMBER: builtins.int
- HW_MODEL_FIELD_NUMBER: builtins.int
- IS_LICENSED_FIELD_NUMBER: builtins.int
- ROLE_FIELD_NUMBER: builtins.int
- id: builtins.str
- """
- A globally unique ID string for this user.
- In the case of Signal that would mean +16504442323, for the default macaddr derived id it would be !<8 hexidecimal bytes>.
- Note: app developers are encouraged to also use the following standard
- node IDs "^all" (for broadcast), "^local" (for the locally connected node)
- """
- long_name: builtins.str
- """
- A full name for this user, i.e. "Kevin Hester"
- """
- short_name: builtins.str
- """
- A VERY short name, ideally two characters.
- Suitable for a tiny OLED screen
- """
- macaddr: builtins.bytes
- """
- Deprecated in Meshtastic 2.1.x
- This is the addr of the radio.
- Not populated by the phone, but added by the esp32 when broadcasting
- """
- hw_model: global___HardwareModel.ValueType
- """
- TBEAM, HELTEC, etc...
- Starting in 1.2.11 moved to hw_model enum in the NodeInfo object.
- Apps will still need the string here for older builds
- (so OTA update can find the right image), but if the enum is available it will be used instead.
- """
- is_licensed: builtins.bool
- """
- In some regions Ham radio operators have different bandwidth limitations than others.
- If this user is a licensed operator, set this flag.
- Also, "long_name" should be their licence number.
- """
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType
- """
- Indicates that the user's role in the mesh
- """
- def __init__(
- self,
- *,
- id: builtins.str = ...,
- long_name: builtins.str = ...,
- short_name: builtins.str = ...,
- macaddr: builtins.bytes = ...,
- hw_model: global___HardwareModel.ValueType = ...,
- is_licensed: builtins.bool = ...,
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["hw_model", b"hw_model", "id", b"id", "is_licensed", b"is_licensed", "long_name", b"long_name", "macaddr", b"macaddr", "role", b"role", "short_name", b"short_name"]) -> None: ...
-
-global___User = User
-
-@typing_extensions.final
-class RouteDiscovery(google.protobuf.message.Message):
- """
- A message used in our Dynamic Source Routing protocol (RFC 4728 based)
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ROUTE_FIELD_NUMBER: builtins.int
- @property
- def route(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """
- The list of nodenums this packet has visited so far
- """
- def __init__(
- self,
- *,
- route: collections.abc.Iterable[builtins.int] | None = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["route", b"route"]) -> None: ...
-
-global___RouteDiscovery = RouteDiscovery
-
-@typing_extensions.final
-class Routing(google.protobuf.message.Message):
- """
- A Routing control Data packet handled by the routing module
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Error:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _ErrorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Routing._Error.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- NONE: Routing._Error.ValueType # 0
- """
- This message is not a failure
- """
- NO_ROUTE: Routing._Error.ValueType # 1
- """
- Our node doesn't have a route to the requested destination anymore.
- """
- GOT_NAK: Routing._Error.ValueType # 2
- """
- We received a nak while trying to forward on your behalf
- """
- TIMEOUT: Routing._Error.ValueType # 3
- """
- TODO: REPLACE
- """
- NO_INTERFACE: Routing._Error.ValueType # 4
- """
- No suitable interface could be found for delivering this packet
- """
- MAX_RETRANSMIT: Routing._Error.ValueType # 5
- """
- We reached the max retransmission count (typically for naive flood routing)
- """
- NO_CHANNEL: Routing._Error.ValueType # 6
- """
- No suitable channel was found for sending this packet (i.e. was requested channel index disabled?)
- """
- TOO_LARGE: Routing._Error.ValueType # 7
- """
- The packet was too big for sending (exceeds interface MTU after encoding)
- """
- NO_RESPONSE: Routing._Error.ValueType # 8
- """
- The request had want_response set, the request reached the destination node, but no service on that node wants to send a response
- (possibly due to bad channel permissions)
- """
- DUTY_CYCLE_LIMIT: Routing._Error.ValueType # 9
- """
- Cannot send currently because duty cycle regulations will be violated.
- """
- BAD_REQUEST: Routing._Error.ValueType # 32
- """
- The application layer service on the remote node received your request, but considered your request somehow invalid
- """
- NOT_AUTHORIZED: Routing._Error.ValueType # 33
- """
- The application layer service on the remote node received your request, but considered your request not authorized
- (i.e you did not send the request on the required bound channel)
- """
-
- class Error(_Error, metaclass=_ErrorEnumTypeWrapper):
- """
- A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide
- details on the type of failure).
- """
-
- NONE: Routing.Error.ValueType # 0
- """
- This message is not a failure
- """
- NO_ROUTE: Routing.Error.ValueType # 1
- """
- Our node doesn't have a route to the requested destination anymore.
- """
- GOT_NAK: Routing.Error.ValueType # 2
- """
- We received a nak while trying to forward on your behalf
- """
- TIMEOUT: Routing.Error.ValueType # 3
- """
- TODO: REPLACE
- """
- NO_INTERFACE: Routing.Error.ValueType # 4
- """
- No suitable interface could be found for delivering this packet
- """
- MAX_RETRANSMIT: Routing.Error.ValueType # 5
- """
- We reached the max retransmission count (typically for naive flood routing)
- """
- NO_CHANNEL: Routing.Error.ValueType # 6
- """
- No suitable channel was found for sending this packet (i.e. was requested channel index disabled?)
- """
- TOO_LARGE: Routing.Error.ValueType # 7
- """
- The packet was too big for sending (exceeds interface MTU after encoding)
- """
- NO_RESPONSE: Routing.Error.ValueType # 8
- """
- The request had want_response set, the request reached the destination node, but no service on that node wants to send a response
- (possibly due to bad channel permissions)
- """
- DUTY_CYCLE_LIMIT: Routing.Error.ValueType # 9
- """
- Cannot send currently because duty cycle regulations will be violated.
- """
- BAD_REQUEST: Routing.Error.ValueType # 32
- """
- The application layer service on the remote node received your request, but considered your request somehow invalid
- """
- NOT_AUTHORIZED: Routing.Error.ValueType # 33
- """
- The application layer service on the remote node received your request, but considered your request not authorized
- (i.e you did not send the request on the required bound channel)
- """
-
- ROUTE_REQUEST_FIELD_NUMBER: builtins.int
- ROUTE_REPLY_FIELD_NUMBER: builtins.int
- ERROR_REASON_FIELD_NUMBER: builtins.int
- @property
- def route_request(self) -> global___RouteDiscovery:
- """
- A route request going from the requester
- """
- @property
- def route_reply(self) -> global___RouteDiscovery:
- """
- A route reply
- """
- error_reason: global___Routing.Error.ValueType
- """
- A failure in delivering a message (usually used for routing control messages, but might be provided
- in addition to ack.fail_id to provide details on the type of failure).
- """
- def __init__(
- self,
- *,
- route_request: global___RouteDiscovery | None = ...,
- route_reply: global___RouteDiscovery | None = ...,
- error_reason: global___Routing.Error.ValueType = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["error_reason", b"error_reason", "route_reply", b"route_reply", "route_request", b"route_request", "variant", b"variant"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["error_reason", b"error_reason", "route_reply", b"route_reply", "route_request", b"route_request", "variant", b"variant"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["route_request", "route_reply", "error_reason"] | None: ...
-
-global___Routing = Routing
-
-@typing_extensions.final
-class Data(google.protobuf.message.Message):
- """
- (Formerly called SubPacket)
- The payload portion fo a packet, this is the actual bytes that are sent
- inside a radio packet (because from/to are broken out by the comms library)
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PORTNUM_FIELD_NUMBER: builtins.int
- PAYLOAD_FIELD_NUMBER: builtins.int
- WANT_RESPONSE_FIELD_NUMBER: builtins.int
- DEST_FIELD_NUMBER: builtins.int
- SOURCE_FIELD_NUMBER: builtins.int
- REQUEST_ID_FIELD_NUMBER: builtins.int
- REPLY_ID_FIELD_NUMBER: builtins.int
- EMOJI_FIELD_NUMBER: builtins.int
- portnum: meshtastic.portnums_pb2.PortNum.ValueType
- """
- Formerly named typ and of type Type
- """
- payload: builtins.bytes
- """
- TODO: REPLACE
- """
- want_response: builtins.bool
- """
- Not normally used, but for testing a sender can request that recipient
- responds in kind (i.e. if it received a position, it should unicast back it's position).
- Note: that if you set this on a broadcast you will receive many replies.
- """
- dest: builtins.int
- """
- The address of the destination node.
- This field is is filled in by the mesh radio device software, application
- layer software should never need it.
- RouteDiscovery messages _must_ populate this.
- Other message types might need to if they are doing multihop routing.
- """
- source: builtins.int
- """
- The address of the original sender for this message.
- This field should _only_ be populated for reliable multihop packets (to keep
- packets small).
- """
- request_id: builtins.int
- """
- Only used in routing or response messages.
- Indicates the original message ID that this message is reporting failure on. (formerly called original_id)
- """
- reply_id: builtins.int
- """
- If set, this message is intened to be a reply to a previously sent message with the defined id.
- """
- emoji: builtins.int
- """
- Defaults to false. If true, then what is in the payload should be treated as an emoji like giving
- a message a heart or poop emoji.
- """
- def __init__(
- self,
- *,
- portnum: meshtastic.portnums_pb2.PortNum.ValueType = ...,
- payload: builtins.bytes = ...,
- want_response: builtins.bool = ...,
- dest: builtins.int = ...,
- source: builtins.int = ...,
- request_id: builtins.int = ...,
- reply_id: builtins.int = ...,
- emoji: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["dest", b"dest", "emoji", b"emoji", "payload", b"payload", "portnum", b"portnum", "reply_id", b"reply_id", "request_id", b"request_id", "source", b"source", "want_response", b"want_response"]) -> None: ...
-
-global___Data = Data
-
-@typing_extensions.final
-class Waypoint(google.protobuf.message.Message):
- """
- Waypoint message, used to share arbitrary locations across the mesh
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ID_FIELD_NUMBER: builtins.int
- LATITUDE_I_FIELD_NUMBER: builtins.int
- LONGITUDE_I_FIELD_NUMBER: builtins.int
- EXPIRE_FIELD_NUMBER: builtins.int
- LOCKED_TO_FIELD_NUMBER: builtins.int
- NAME_FIELD_NUMBER: builtins.int
- DESCRIPTION_FIELD_NUMBER: builtins.int
- ICON_FIELD_NUMBER: builtins.int
- id: builtins.int
- """
- Id of the waypoint
- """
- latitude_i: builtins.int
- """
- latitude_i
- """
- longitude_i: builtins.int
- """
- longitude_i
- """
- expire: builtins.int
- """
- Time the waypoint is to expire (epoch)
- """
- locked_to: builtins.int
- """
- If greater than zero, treat the value as a nodenum only allowing them to update the waypoint.
- If zero, the waypoint is open to be edited by any member of the mesh.
- """
- name: builtins.str
- """
- Name of the waypoint - max 30 chars
- """
- description: builtins.str
- """
- Description of the waypoint - max 100 chars
- """
- icon: builtins.int
- """
- Designator icon for the waypoint in the form of a unicode emoji
- """
- def __init__(
- self,
- *,
- id: builtins.int = ...,
- latitude_i: builtins.int = ...,
- longitude_i: builtins.int = ...,
- expire: builtins.int = ...,
- locked_to: builtins.int = ...,
- name: builtins.str = ...,
- description: builtins.str = ...,
- icon: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "expire", b"expire", "icon", b"icon", "id", b"id", "latitude_i", b"latitude_i", "locked_to", b"locked_to", "longitude_i", b"longitude_i", "name", b"name"]) -> None: ...
-
-global___Waypoint = Waypoint
-
-@typing_extensions.final
-class MqttClientProxyMessage(google.protobuf.message.Message):
- """
- This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- TOPIC_FIELD_NUMBER: builtins.int
- DATA_FIELD_NUMBER: builtins.int
- TEXT_FIELD_NUMBER: builtins.int
- RETAINED_FIELD_NUMBER: builtins.int
- topic: builtins.str
- """
- The MQTT topic this message will be sent /received on
- """
- data: builtins.bytes
- """
- Bytes
- """
- text: builtins.str
- """
- Text
- """
- retained: builtins.bool
- """
- Whether the message should be retained (or not)
- """
- def __init__(
- self,
- *,
- topic: builtins.str = ...,
- data: builtins.bytes = ...,
- text: builtins.str = ...,
- retained: builtins.bool = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["data", b"data", "payload_variant", b"payload_variant", "text", b"text"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "payload_variant", b"payload_variant", "retained", b"retained", "text", b"text", "topic", b"topic"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["data", "text"] | None: ...
-
-global___MqttClientProxyMessage = MqttClientProxyMessage
-
-@typing_extensions.final
-class MeshPacket(google.protobuf.message.Message):
- """
- A packet envelope sent/received over the mesh
- only payload_variant is sent in the payload portion of the LORA packet.
- The other fields are either not sent at all, or sent in the special 16 byte LORA header.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Priority:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _PriorityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MeshPacket._Priority.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: MeshPacket._Priority.ValueType # 0
- """
- Treated as Priority.DEFAULT
- """
- MIN: MeshPacket._Priority.ValueType # 1
- """
- TODO: REPLACE
- """
- BACKGROUND: MeshPacket._Priority.ValueType # 10
- """
- Background position updates are sent with very low priority -
- if the link is super congested they might not go out at all
- """
- DEFAULT: MeshPacket._Priority.ValueType # 64
- """
- This priority is used for most messages that don't have a priority set
- """
- RELIABLE: MeshPacket._Priority.ValueType # 70
- """
- If priority is unset but the message is marked as want_ack,
- assume it is important and use a slightly higher priority
- """
- ACK: MeshPacket._Priority.ValueType # 120
- """
- Ack/naks are sent with very high priority to ensure that retransmission
- stops as soon as possible
- """
- MAX: MeshPacket._Priority.ValueType # 127
- """
- TODO: REPLACE
- """
-
- class Priority(_Priority, metaclass=_PriorityEnumTypeWrapper):
- """
- The priority of this message for sending.
- Higher priorities are sent first (when managing the transmit queue).
- This field is never sent over the air, it is only used internally inside of a local device node.
- API clients (either on the local node or connected directly to the node)
- can set this parameter if necessary.
- (values must be <= 127 to keep protobuf field to one byte in size.
- Detailed background on this field:
- I noticed a funny side effect of lora being so slow: Usually when making
- a protocol there isn’t much need to use message priority to change the order
- of transmission (because interfaces are fairly fast).
- But for lora where packets can take a few seconds each, it is very important
- to make sure that critical packets are sent ASAP.
- In the case of meshtastic that means we want to send protocol acks as soon as possible
- (to prevent unneeded retransmissions), we want routing messages to be sent next,
- then messages marked as reliable and finally 'background' packets like periodic position updates.
- So I bit the bullet and implemented a new (internal - not sent over the air)
- field in MeshPacket called 'priority'.
- And the transmission queue in the router object is now a priority queue.
- """
-
- UNSET: MeshPacket.Priority.ValueType # 0
- """
- Treated as Priority.DEFAULT
- """
- MIN: MeshPacket.Priority.ValueType # 1
- """
- TODO: REPLACE
- """
- BACKGROUND: MeshPacket.Priority.ValueType # 10
- """
- Background position updates are sent with very low priority -
- if the link is super congested they might not go out at all
- """
- DEFAULT: MeshPacket.Priority.ValueType # 64
- """
- This priority is used for most messages that don't have a priority set
- """
- RELIABLE: MeshPacket.Priority.ValueType # 70
- """
- If priority is unset but the message is marked as want_ack,
- assume it is important and use a slightly higher priority
- """
- ACK: MeshPacket.Priority.ValueType # 120
- """
- Ack/naks are sent with very high priority to ensure that retransmission
- stops as soon as possible
- """
- MAX: MeshPacket.Priority.ValueType # 127
- """
- TODO: REPLACE
- """
-
- class _Delayed:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _DelayedEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MeshPacket._Delayed.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- NO_DELAY: MeshPacket._Delayed.ValueType # 0
- """
- If unset, the message is being sent in real time.
- """
- DELAYED_BROADCAST: MeshPacket._Delayed.ValueType # 1
- """
- The message is delayed and was originally a broadcast
- """
- DELAYED_DIRECT: MeshPacket._Delayed.ValueType # 2
- """
- The message is delayed and was originally a direct message
- """
-
- class Delayed(_Delayed, metaclass=_DelayedEnumTypeWrapper):
- """
- Identify if this is a delayed packet
- """
-
- NO_DELAY: MeshPacket.Delayed.ValueType # 0
- """
- If unset, the message is being sent in real time.
- """
- DELAYED_BROADCAST: MeshPacket.Delayed.ValueType # 1
- """
- The message is delayed and was originally a broadcast
- """
- DELAYED_DIRECT: MeshPacket.Delayed.ValueType # 2
- """
- The message is delayed and was originally a direct message
- """
-
- FROM_FIELD_NUMBER: builtins.int
- TO_FIELD_NUMBER: builtins.int
- CHANNEL_FIELD_NUMBER: builtins.int
- DECODED_FIELD_NUMBER: builtins.int
- ENCRYPTED_FIELD_NUMBER: builtins.int
- ID_FIELD_NUMBER: builtins.int
- RX_TIME_FIELD_NUMBER: builtins.int
- RX_SNR_FIELD_NUMBER: builtins.int
- HOP_LIMIT_FIELD_NUMBER: builtins.int
- WANT_ACK_FIELD_NUMBER: builtins.int
- PRIORITY_FIELD_NUMBER: builtins.int
- RX_RSSI_FIELD_NUMBER: builtins.int
- DELAYED_FIELD_NUMBER: builtins.int
- VIA_MQTT_FIELD_NUMBER: builtins.int
- HOP_START_FIELD_NUMBER: builtins.int
- to: builtins.int
- """
- The (immediate) destination for this packet
- """
- channel: builtins.int
- """
- (Usually) If set, this indicates the index in the secondary_channels table that this packet was sent/received on.
- If unset, packet was on the primary channel.
- A particular node might know only a subset of channels in use on the mesh.
- Therefore channel_index is inherently a local concept and meaningless to send between nodes.
- Very briefly, while sending and receiving deep inside the device Router code, this field instead
- contains the 'channel hash' instead of the index.
- This 'trick' is only used while the payload_variant is an 'encrypted'.
- """
- @property
- def decoded(self) -> global___Data:
- """
- TODO: REPLACE
- """
- encrypted: builtins.bytes
- """
- TODO: REPLACE
- """
- id: builtins.int
- """
- A unique ID for this packet.
- Always 0 for no-ack packets or non broadcast packets (and therefore take zero bytes of space).
- Otherwise a unique ID for this packet, useful for flooding algorithms.
- ID only needs to be unique on a _per sender_ basis, and it only
- needs to be unique for a few minutes (long enough to last for the length of
- any ACK or the completion of a mesh broadcast flood).
- Note: Our crypto implementation uses this id as well.
- See [crypto](/docs/overview/encryption) for details.
- """
- rx_time: builtins.int
- """
- The time this message was received by the esp32 (secs since 1970).
- Note: this field is _never_ sent on the radio link itself (to save space) Times
- are typically not sent over the mesh, but they will be added to any Packet
- (chain of SubPacket) sent to the phone (so the phone can know exact time of reception)
- """
- rx_snr: builtins.float
- """
- *Never* sent over the radio links.
- Set during reception to indicate the SNR of this packet.
- Used to collect statistics on current link quality.
- """
- hop_limit: builtins.int
- """
- If unset treated as zero (no forwarding, send to adjacent nodes only)
- if 1, allow hopping through one node, etc...
- For our usecase real world topologies probably have a max of about 3.
- This field is normally placed into a few of bits in the header.
- """
- want_ack: builtins.bool
- """
- This packet is being sent as a reliable message, we would prefer it to arrive at the destination.
- We would like to receive a ack packet in response.
- Broadcasts messages treat this flag specially: Since acks for broadcasts would
- rapidly flood the channel, the normal ack behavior is suppressed.
- Instead, the original sender listens to see if at least one node is rebroadcasting this packet (because naive flooding algorithm).
- If it hears that the odds (given typical LoRa topologies) the odds are very high that every node should eventually receive the message.
- So FloodingRouter.cpp generates an implicit ack which is delivered to the original sender.
- If after some time we don't hear anyone rebroadcast our packet, we will timeout and retransmit, using the regular resend logic.
- Note: This flag is normally sent in a flag bit in the header when sent over the wire
- """
- priority: global___MeshPacket.Priority.ValueType
- """
- The priority of this message for sending.
- See MeshPacket.Priority description for more details.
- """
- rx_rssi: builtins.int
- """
- rssi of received packet. Only sent to phone for dispay purposes.
- """
- delayed: global___MeshPacket.Delayed.ValueType
- """
- Describe if this message is delayed
- """
- via_mqtt: builtins.bool
- """
- Describes whether this packet passed via MQTT somewhere along the path it currently took.
- """
- hop_start: builtins.int
- """
- Hop limit with which the original packet started. Sent via LoRa using three bits in the unencrypted header.
- When receiving a packet, the difference between hop_start and hop_limit gives how many hops it traveled.
- """
- def __init__(
- self,
- *,
- to: builtins.int = ...,
- channel: builtins.int = ...,
- decoded: global___Data | None = ...,
- encrypted: builtins.bytes = ...,
- id: builtins.int = ...,
- rx_time: builtins.int = ...,
- rx_snr: builtins.float = ...,
- hop_limit: builtins.int = ...,
- want_ack: builtins.bool = ...,
- priority: global___MeshPacket.Priority.ValueType = ...,
- rx_rssi: builtins.int = ...,
- delayed: global___MeshPacket.Delayed.ValueType = ...,
- via_mqtt: builtins.bool = ...,
- hop_start: builtins.int = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["decoded", b"decoded", "encrypted", b"encrypted", "payload_variant", b"payload_variant"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel", b"channel", "decoded", b"decoded", "delayed", b"delayed", "encrypted", b"encrypted", "from", b"from", "hop_limit", b"hop_limit", "hop_start", b"hop_start", "id", b"id", "payload_variant", b"payload_variant", "priority", b"priority", "rx_rssi", b"rx_rssi", "rx_snr", b"rx_snr", "rx_time", b"rx_time", "to", b"to", "via_mqtt", b"via_mqtt", "want_ack", b"want_ack"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["decoded", "encrypted"] | None: ...
-
-global___MeshPacket = MeshPacket
-
-@typing_extensions.final
-class NodeInfo(google.protobuf.message.Message):
- """
- The bluetooth to device link:
- Old BTLE protocol docs from TODO, merge in above and make real docs...
- use protocol buffers, and NanoPB
- messages from device to phone:
- POSITION_UPDATE (..., time)
- TEXT_RECEIVED(from, text, time)
- OPAQUE_RECEIVED(from, payload, time) (for signal messages or other applications)
- messages from phone to device:
- SET_MYID(id, human readable long, human readable short) (send down the unique ID
- string used for this node, a human readable string shown for that id, and a very
- short human readable string suitable for oled screen) SEND_OPAQUE(dest, payload)
- (for signal messages or other applications) SEND_TEXT(dest, text) Get all
- nodes() (returns list of nodes, with full info, last time seen, loc, battery
- level etc) SET_CONFIG (switches device to a new set of radio params and
- preshared key, drops all existing nodes, force our node to rejoin this new group)
- Full information about a node on the mesh
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NUM_FIELD_NUMBER: builtins.int
- USER_FIELD_NUMBER: builtins.int
- POSITION_FIELD_NUMBER: builtins.int
- SNR_FIELD_NUMBER: builtins.int
- LAST_HEARD_FIELD_NUMBER: builtins.int
- DEVICE_METRICS_FIELD_NUMBER: builtins.int
- CHANNEL_FIELD_NUMBER: builtins.int
- VIA_MQTT_FIELD_NUMBER: builtins.int
- HOPS_AWAY_FIELD_NUMBER: builtins.int
- IS_FAVORITE_FIELD_NUMBER: builtins.int
- num: builtins.int
- """
- The node number
- """
- @property
- def user(self) -> global___User:
- """
- The user info for this node
- """
- @property
- def position(self) -> global___Position:
- """
- This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
- Position.time now indicates the last time we received a POSITION from that node.
- """
- snr: builtins.float
- """
- Returns the Signal-to-noise ratio (SNR) of the last received message,
- as measured by the receiver. Return SNR of the last received message in dB
- """
- last_heard: builtins.int
- """
- TODO: REMOVE/INTEGRATE
- Not currently used (till full DSR deployment?) Our current preferred node node for routing - might be the same as num if
- we are adjacent Or zero if we don't yet know a route to this node.
- fixed32 next_hop = 5;
-
-
- Set to indicate the last time we received a packet from this node
- """
- @property
- def device_metrics(self) -> meshtastic.telemetry_pb2.DeviceMetrics:
- """
- The latest device metrics for the node.
- """
- channel: builtins.int
- """
- local channel index we heard that node on. Only populated if its not the default channel.
- """
- via_mqtt: builtins.bool
- """
- True if we witnessed the node over MQTT instead of LoRA transport
- """
- hops_away: builtins.int
- """
- Number of hops away from us this node is (0 if adjacent)
- """
- is_favorite: builtins.bool
- """
- True if node is in our favorites list
- Persists between NodeDB internal clean ups
- """
- def __init__(
- self,
- *,
- num: builtins.int = ...,
- user: global___User | None = ...,
- position: global___Position | None = ...,
- snr: builtins.float = ...,
- last_heard: builtins.int = ...,
- device_metrics: meshtastic.telemetry_pb2.DeviceMetrics | None = ...,
- channel: builtins.int = ...,
- via_mqtt: builtins.bool = ...,
- hops_away: builtins.int = ...,
- is_favorite: builtins.bool = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["device_metrics", b"device_metrics", "position", b"position", "user", b"user"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel", b"channel", "device_metrics", b"device_metrics", "hops_away", b"hops_away", "is_favorite", b"is_favorite", "last_heard", b"last_heard", "num", b"num", "position", b"position", "snr", b"snr", "user", b"user", "via_mqtt", b"via_mqtt"]) -> None: ...
-
-global___NodeInfo = NodeInfo
-
-@typing_extensions.final
-class MyNodeInfo(google.protobuf.message.Message):
- """
- Unique local debugging info for this node
- Note: we don't include position or the user info, because that will come in the
- Sent to the phone in response to WantNodes.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MY_NODE_NUM_FIELD_NUMBER: builtins.int
- REBOOT_COUNT_FIELD_NUMBER: builtins.int
- MIN_APP_VERSION_FIELD_NUMBER: builtins.int
- my_node_num: builtins.int
- """
- Tells the phone what our node number is, default starting value is
- lowbyte of macaddr, but it will be fixed if that is already in use
- """
- reboot_count: builtins.int
- """
- The total number of reboots this node has ever encountered
- (well - since the last time we discarded preferences)
- """
- min_app_version: builtins.int
- """
- The minimum app version that can talk to this device.
- Phone/PC apps should compare this to their build number and if too low tell the user they must update their app
- """
- def __init__(
- self,
- *,
- my_node_num: builtins.int = ...,
- reboot_count: builtins.int = ...,
- min_app_version: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["min_app_version", b"min_app_version", "my_node_num", b"my_node_num", "reboot_count", b"reboot_count"]) -> None: ...
-
-global___MyNodeInfo = MyNodeInfo
-
-@typing_extensions.final
-class LogRecord(google.protobuf.message.Message):
- """
- Debug output from the device.
- To minimize the size of records inside the device code, if a time/source/level is not set
- on the message it is assumed to be a continuation of the previously sent message.
- This allows the device code to use fixed maxlen 64 byte strings for messages,
- and then extend as needed by emitting multiple records.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Level:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _LevelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[LogRecord._Level.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: LogRecord._Level.ValueType # 0
- """
- Log levels, chosen to match python logging conventions.
- """
- CRITICAL: LogRecord._Level.ValueType # 50
- """
- Log levels, chosen to match python logging conventions.
- """
- ERROR: LogRecord._Level.ValueType # 40
- """
- Log levels, chosen to match python logging conventions.
- """
- WARNING: LogRecord._Level.ValueType # 30
- """
- Log levels, chosen to match python logging conventions.
- """
- INFO: LogRecord._Level.ValueType # 20
- """
- Log levels, chosen to match python logging conventions.
- """
- DEBUG: LogRecord._Level.ValueType # 10
- """
- Log levels, chosen to match python logging conventions.
- """
- TRACE: LogRecord._Level.ValueType # 5
- """
- Log levels, chosen to match python logging conventions.
- """
-
- class Level(_Level, metaclass=_LevelEnumTypeWrapper):
- """
- Log levels, chosen to match python logging conventions.
- """
-
- UNSET: LogRecord.Level.ValueType # 0
- """
- Log levels, chosen to match python logging conventions.
- """
- CRITICAL: LogRecord.Level.ValueType # 50
- """
- Log levels, chosen to match python logging conventions.
- """
- ERROR: LogRecord.Level.ValueType # 40
- """
- Log levels, chosen to match python logging conventions.
- """
- WARNING: LogRecord.Level.ValueType # 30
- """
- Log levels, chosen to match python logging conventions.
- """
- INFO: LogRecord.Level.ValueType # 20
- """
- Log levels, chosen to match python logging conventions.
- """
- DEBUG: LogRecord.Level.ValueType # 10
- """
- Log levels, chosen to match python logging conventions.
- """
- TRACE: LogRecord.Level.ValueType # 5
- """
- Log levels, chosen to match python logging conventions.
- """
-
- MESSAGE_FIELD_NUMBER: builtins.int
- TIME_FIELD_NUMBER: builtins.int
- SOURCE_FIELD_NUMBER: builtins.int
- LEVEL_FIELD_NUMBER: builtins.int
- message: builtins.str
- """
- Log levels, chosen to match python logging conventions.
- """
- time: builtins.int
- """
- Seconds since 1970 - or 0 for unknown/unset
- """
- source: builtins.str
- """
- Usually based on thread name - if known
- """
- level: global___LogRecord.Level.ValueType
- """
- Not yet set
- """
- def __init__(
- self,
- *,
- message: builtins.str = ...,
- time: builtins.int = ...,
- source: builtins.str = ...,
- level: global___LogRecord.Level.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["level", b"level", "message", b"message", "source", b"source", "time", b"time"]) -> None: ...
-
-global___LogRecord = LogRecord
-
-@typing_extensions.final
-class QueueStatus(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- RES_FIELD_NUMBER: builtins.int
- FREE_FIELD_NUMBER: builtins.int
- MAXLEN_FIELD_NUMBER: builtins.int
- MESH_PACKET_ID_FIELD_NUMBER: builtins.int
- res: builtins.int
- """Last attempt to queue status, ErrorCode"""
- free: builtins.int
- """Free entries in the outgoing queue"""
- maxlen: builtins.int
- """Maximum entries in the outgoing queue"""
- mesh_packet_id: builtins.int
- """What was mesh packet id that generated this response?"""
- def __init__(
- self,
- *,
- res: builtins.int = ...,
- free: builtins.int = ...,
- maxlen: builtins.int = ...,
- mesh_packet_id: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["free", b"free", "maxlen", b"maxlen", "mesh_packet_id", b"mesh_packet_id", "res", b"res"]) -> None: ...
-
-global___QueueStatus = QueueStatus
-
-@typing_extensions.final
-class FromRadio(google.protobuf.message.Message):
- """
- Packets from the radio to the phone will appear on the fromRadio characteristic.
- It will support READ and NOTIFY. When a new packet arrives the device will BLE notify?
- It will sit in that descriptor until consumed by the phone,
- at which point the next item in the FIFO will be populated.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ID_FIELD_NUMBER: builtins.int
- PACKET_FIELD_NUMBER: builtins.int
- MY_INFO_FIELD_NUMBER: builtins.int
- NODE_INFO_FIELD_NUMBER: builtins.int
- CONFIG_FIELD_NUMBER: builtins.int
- LOG_RECORD_FIELD_NUMBER: builtins.int
- CONFIG_COMPLETE_ID_FIELD_NUMBER: builtins.int
- REBOOTED_FIELD_NUMBER: builtins.int
- MODULECONFIG_FIELD_NUMBER: builtins.int
- CHANNEL_FIELD_NUMBER: builtins.int
- QUEUESTATUS_FIELD_NUMBER: builtins.int
- XMODEMPACKET_FIELD_NUMBER: builtins.int
- METADATA_FIELD_NUMBER: builtins.int
- MQTTCLIENTPROXYMESSAGE_FIELD_NUMBER: builtins.int
- id: builtins.int
- """
- The packet id, used to allow the phone to request missing read packets from the FIFO,
- see our bluetooth docs
- """
- @property
- def packet(self) -> global___MeshPacket:
- """
- Log levels, chosen to match python logging conventions.
- """
- @property
- def my_info(self) -> global___MyNodeInfo:
- """
- Tells the phone what our node number is, can be -1 if we've not yet joined a mesh.
- NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
- """
- @property
- def node_info(self) -> global___NodeInfo:
- """
- One packet is sent for each node in the on radio DB
- starts over with the first node in our DB
- """
- @property
- def config(self) -> meshtastic.config_pb2.Config:
- """
- Include a part of the config (was: RadioConfig radio)
- """
- @property
- def log_record(self) -> global___LogRecord:
- """
- Set to send debug console output over our protobuf stream
- """
- config_complete_id: builtins.int
- """
- Sent as true once the device has finished sending all of the responses to want_config
- recipient should check if this ID matches our original request nonce, if
- not, it means your config responses haven't started yet.
- NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
- """
- rebooted: builtins.bool
- """
- Sent to tell clients the radio has just rebooted.
- Set to true if present.
- Not used on all transports, currently just used for the serial console.
- NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
- """
- @property
- def moduleConfig(self) -> meshtastic.module_config_pb2.ModuleConfig:
- """
- Include module config
- """
- @property
- def channel(self) -> meshtastic.channel_pb2.Channel:
- """
- One packet is sent for each channel
- """
- @property
- def queueStatus(self) -> global___QueueStatus:
- """
- Queue status info
- """
- @property
- def xmodemPacket(self) -> meshtastic.xmodem_pb2.XModem:
- """
- File Transfer Chunk
- """
- @property
- def metadata(self) -> global___DeviceMetadata:
- """
- Device metadata message
- """
- @property
- def mqttClientProxyMessage(self) -> global___MqttClientProxyMessage:
- """
- MQTT Client Proxy Message (device sending to client / phone for publishing to MQTT)
- """
- def __init__(
- self,
- *,
- id: builtins.int = ...,
- packet: global___MeshPacket | None = ...,
- my_info: global___MyNodeInfo | None = ...,
- node_info: global___NodeInfo | None = ...,
- config: meshtastic.config_pb2.Config | None = ...,
- log_record: global___LogRecord | None = ...,
- config_complete_id: builtins.int = ...,
- rebooted: builtins.bool = ...,
- moduleConfig: meshtastic.module_config_pb2.ModuleConfig | None = ...,
- channel: meshtastic.channel_pb2.Channel | None = ...,
- queueStatus: global___QueueStatus | None = ...,
- xmodemPacket: meshtastic.xmodem_pb2.XModem | None = ...,
- metadata: global___DeviceMetadata | None = ...,
- mqttClientProxyMessage: global___MqttClientProxyMessage | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["channel", b"channel", "config", b"config", "config_complete_id", b"config_complete_id", "log_record", b"log_record", "metadata", b"metadata", "moduleConfig", b"moduleConfig", "mqttClientProxyMessage", b"mqttClientProxyMessage", "my_info", b"my_info", "node_info", b"node_info", "packet", b"packet", "payload_variant", b"payload_variant", "queueStatus", b"queueStatus", "rebooted", b"rebooted", "xmodemPacket", b"xmodemPacket"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel", b"channel", "config", b"config", "config_complete_id", b"config_complete_id", "id", b"id", "log_record", b"log_record", "metadata", b"metadata", "moduleConfig", b"moduleConfig", "mqttClientProxyMessage", b"mqttClientProxyMessage", "my_info", b"my_info", "node_info", b"node_info", "packet", b"packet", "payload_variant", b"payload_variant", "queueStatus", b"queueStatus", "rebooted", b"rebooted", "xmodemPacket", b"xmodemPacket"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["packet", "my_info", "node_info", "config", "log_record", "config_complete_id", "rebooted", "moduleConfig", "channel", "queueStatus", "xmodemPacket", "metadata", "mqttClientProxyMessage"] | None: ...
-
-global___FromRadio = FromRadio
-
-@typing_extensions.final
-class ToRadio(google.protobuf.message.Message):
- """
- Packets/commands to the radio will be written (reliably) to the toRadio characteristic.
- Once the write completes the phone can assume it is handled.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PACKET_FIELD_NUMBER: builtins.int
- WANT_CONFIG_ID_FIELD_NUMBER: builtins.int
- DISCONNECT_FIELD_NUMBER: builtins.int
- XMODEMPACKET_FIELD_NUMBER: builtins.int
- MQTTCLIENTPROXYMESSAGE_FIELD_NUMBER: builtins.int
- HEARTBEAT_FIELD_NUMBER: builtins.int
- @property
- def packet(self) -> global___MeshPacket:
- """
- Send this packet on the mesh
- """
- want_config_id: builtins.int
- """
- Phone wants radio to send full node db to the phone, This is
- typically the first packet sent to the radio when the phone gets a
- bluetooth connection. The radio will respond by sending back a
- MyNodeInfo, a owner, a radio config and a series of
- FromRadio.node_infos, and config_complete
- the integer you write into this field will be reported back in the
- config_complete_id response this allows clients to never be confused by
- a stale old partially sent config.
- """
- disconnect: builtins.bool
- """
- Tell API server we are disconnecting now.
- This is useful for serial links where there is no hardware/protocol based notification that the client has dropped the link.
- (Sending this message is optional for clients)
- """
- @property
- def xmodemPacket(self) -> meshtastic.xmodem_pb2.XModem:
- """
- File Transfer Chunk
- """
- @property
- def mqttClientProxyMessage(self) -> global___MqttClientProxyMessage:
- """
- MQTT Client Proxy Message (for client / phone subscribed to MQTT sending to device)
- """
- @property
- def heartbeat(self) -> global___Heartbeat:
- """
- Heartbeat message (used to keep the device connection awake on serial)
- """
- def __init__(
- self,
- *,
- packet: global___MeshPacket | None = ...,
- want_config_id: builtins.int = ...,
- disconnect: builtins.bool = ...,
- xmodemPacket: meshtastic.xmodem_pb2.XModem | None = ...,
- mqttClientProxyMessage: global___MqttClientProxyMessage | None = ...,
- heartbeat: global___Heartbeat | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["disconnect", b"disconnect", "heartbeat", b"heartbeat", "mqttClientProxyMessage", b"mqttClientProxyMessage", "packet", b"packet", "payload_variant", b"payload_variant", "want_config_id", b"want_config_id", "xmodemPacket", b"xmodemPacket"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["disconnect", b"disconnect", "heartbeat", b"heartbeat", "mqttClientProxyMessage", b"mqttClientProxyMessage", "packet", b"packet", "payload_variant", b"payload_variant", "want_config_id", b"want_config_id", "xmodemPacket", b"xmodemPacket"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["packet", "want_config_id", "disconnect", "xmodemPacket", "mqttClientProxyMessage", "heartbeat"] | None: ...
-
-global___ToRadio = ToRadio
-
-@typing_extensions.final
-class Compressed(google.protobuf.message.Message):
- """
- Compressed message payload
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PORTNUM_FIELD_NUMBER: builtins.int
- DATA_FIELD_NUMBER: builtins.int
- portnum: meshtastic.portnums_pb2.PortNum.ValueType
- """
- PortNum to determine the how to handle the compressed payload.
- """
- data: builtins.bytes
- """
- Compressed data.
- """
- def __init__(
- self,
- *,
- portnum: meshtastic.portnums_pb2.PortNum.ValueType = ...,
- data: builtins.bytes = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "portnum", b"portnum"]) -> None: ...
-
-global___Compressed = Compressed
-
-@typing_extensions.final
-class NeighborInfo(google.protobuf.message.Message):
- """
- Full info on edges for a single node
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NODE_ID_FIELD_NUMBER: builtins.int
- LAST_SENT_BY_ID_FIELD_NUMBER: builtins.int
- NODE_BROADCAST_INTERVAL_SECS_FIELD_NUMBER: builtins.int
- NEIGHBORS_FIELD_NUMBER: builtins.int
- node_id: builtins.int
- """
- The node ID of the node sending info on its neighbors
- """
- last_sent_by_id: builtins.int
- """
- Field to pass neighbor info for the next sending cycle
- """
- node_broadcast_interval_secs: builtins.int
- """
- Broadcast interval of the represented node (in seconds)
- """
- @property
- def neighbors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Neighbor]:
- """
- The list of out edges from this node
- """
- def __init__(
- self,
- *,
- node_id: builtins.int = ...,
- last_sent_by_id: builtins.int = ...,
- node_broadcast_interval_secs: builtins.int = ...,
- neighbors: collections.abc.Iterable[global___Neighbor] | None = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["last_sent_by_id", b"last_sent_by_id", "neighbors", b"neighbors", "node_broadcast_interval_secs", b"node_broadcast_interval_secs", "node_id", b"node_id"]) -> None: ...
-
-global___NeighborInfo = NeighborInfo
-
-@typing_extensions.final
-class Neighbor(google.protobuf.message.Message):
- """
- A single edge in the mesh
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NODE_ID_FIELD_NUMBER: builtins.int
- SNR_FIELD_NUMBER: builtins.int
- LAST_RX_TIME_FIELD_NUMBER: builtins.int
- NODE_BROADCAST_INTERVAL_SECS_FIELD_NUMBER: builtins.int
- node_id: builtins.int
- """
- Node ID of neighbor
- """
- snr: builtins.float
- """
- SNR of last heard message
- """
- last_rx_time: builtins.int
- """
- Reception time (in secs since 1970) of last message that was last sent by this ID.
- Note: this is for local storage only and will not be sent out over the mesh.
- """
- node_broadcast_interval_secs: builtins.int
- """
- Broadcast interval of this neighbor (in seconds).
- Note: this is for local storage only and will not be sent out over the mesh.
- """
- def __init__(
- self,
- *,
- node_id: builtins.int = ...,
- snr: builtins.float = ...,
- last_rx_time: builtins.int = ...,
- node_broadcast_interval_secs: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["last_rx_time", b"last_rx_time", "node_broadcast_interval_secs", b"node_broadcast_interval_secs", "node_id", b"node_id", "snr", b"snr"]) -> None: ...
-
-global___Neighbor = Neighbor
-
-@typing_extensions.final
-class DeviceMetadata(google.protobuf.message.Message):
- """
- Device metadata response
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- FIRMWARE_VERSION_FIELD_NUMBER: builtins.int
- DEVICE_STATE_VERSION_FIELD_NUMBER: builtins.int
- CANSHUTDOWN_FIELD_NUMBER: builtins.int
- HASWIFI_FIELD_NUMBER: builtins.int
- HASBLUETOOTH_FIELD_NUMBER: builtins.int
- HASETHERNET_FIELD_NUMBER: builtins.int
- ROLE_FIELD_NUMBER: builtins.int
- POSITION_FLAGS_FIELD_NUMBER: builtins.int
- HW_MODEL_FIELD_NUMBER: builtins.int
- HASREMOTEHARDWARE_FIELD_NUMBER: builtins.int
- firmware_version: builtins.str
- """
- Device firmware version string
- """
- device_state_version: builtins.int
- """
- Device state version
- """
- canShutdown: builtins.bool
- """
- Indicates whether the device can shutdown CPU natively or via power management chip
- """
- hasWifi: builtins.bool
- """
- Indicates that the device has native wifi capability
- """
- hasBluetooth: builtins.bool
- """
- Indicates that the device has native bluetooth capability
- """
- hasEthernet: builtins.bool
- """
- Indicates that the device has an ethernet peripheral
- """
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType
- """
- Indicates that the device's role in the mesh
- """
- position_flags: builtins.int
- """
- Indicates the device's current enabled position flags
- """
- hw_model: global___HardwareModel.ValueType
- """
- Device hardware model
- """
- hasRemoteHardware: builtins.bool
- """
- Has Remote Hardware enabled
- """
- def __init__(
- self,
- *,
- firmware_version: builtins.str = ...,
- device_state_version: builtins.int = ...,
- canShutdown: builtins.bool = ...,
- hasWifi: builtins.bool = ...,
- hasBluetooth: builtins.bool = ...,
- hasEthernet: builtins.bool = ...,
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType = ...,
- position_flags: builtins.int = ...,
- hw_model: global___HardwareModel.ValueType = ...,
- hasRemoteHardware: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["canShutdown", b"canShutdown", "device_state_version", b"device_state_version", "firmware_version", b"firmware_version", "hasBluetooth", b"hasBluetooth", "hasEthernet", b"hasEthernet", "hasRemoteHardware", b"hasRemoteHardware", "hasWifi", b"hasWifi", "hw_model", b"hw_model", "position_flags", b"position_flags", "role", b"role"]) -> None: ...
-
-global___DeviceMetadata = DeviceMetadata
-
-@typing_extensions.final
-class Heartbeat(google.protobuf.message.Message):
- """
- A heartbeat message is sent to the node from the client to keep the connection alive.
- This is currently only needed to keep serial connections alive, but can be used by any PhoneAPI.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- def __init__(
- self,
- ) -> None: ...
-
-global___Heartbeat = Heartbeat
-
-@typing_extensions.final
-class NodeRemoteHardwarePin(google.protobuf.message.Message):
- """
- RemoteHardwarePins associated with a node
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- NODE_NUM_FIELD_NUMBER: builtins.int
- PIN_FIELD_NUMBER: builtins.int
- node_num: builtins.int
- """
- The node_num exposing the available gpio pin
- """
- @property
- def pin(self) -> meshtastic.module_config_pb2.RemoteHardwarePin:
- """
- The the available gpio pin for usage with RemoteHardware module
- """
- def __init__(
- self,
- *,
- node_num: builtins.int = ...,
- pin: meshtastic.module_config_pb2.RemoteHardwarePin | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["pin", b"pin"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["node_num", b"node_num", "pin", b"pin"]) -> None: ...
-
-global___NodeRemoteHardwarePin = NodeRemoteHardwarePin
-
-@typing_extensions.final
-class ChunkedPayload(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PAYLOAD_ID_FIELD_NUMBER: builtins.int
- CHUNK_COUNT_FIELD_NUMBER: builtins.int
- CHUNK_INDEX_FIELD_NUMBER: builtins.int
- PAYLOAD_CHUNK_FIELD_NUMBER: builtins.int
- payload_id: builtins.int
- """
- The ID of the entire payload
- """
- chunk_count: builtins.int
- """
- The total number of chunks in the payload
- """
- chunk_index: builtins.int
- """
- The current chunk index in the total
- """
- payload_chunk: builtins.bytes
- """
- The binary data of the current chunk
- """
- def __init__(
- self,
- *,
- payload_id: builtins.int = ...,
- chunk_count: builtins.int = ...,
- chunk_index: builtins.int = ...,
- payload_chunk: builtins.bytes = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["chunk_count", b"chunk_count", "chunk_index", b"chunk_index", "payload_chunk", b"payload_chunk", "payload_id", b"payload_id"]) -> None: ...
-
-global___ChunkedPayload = ChunkedPayload
-
-@typing_extensions.final
-class resend_chunks(google.protobuf.message.Message):
- """
- Wrapper message for broken repeated oneof support
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CHUNKS_FIELD_NUMBER: builtins.int
- @property
- def chunks(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
- def __init__(
- self,
- *,
- chunks: collections.abc.Iterable[builtins.int] | None = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["chunks", b"chunks"]) -> None: ...
-
-global___resend_chunks = resend_chunks
-
-@typing_extensions.final
-class ChunkedPayloadResponse(google.protobuf.message.Message):
- """
- Responses to a ChunkedPayload request
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PAYLOAD_ID_FIELD_NUMBER: builtins.int
- REQUEST_TRANSFER_FIELD_NUMBER: builtins.int
- ACCEPT_TRANSFER_FIELD_NUMBER: builtins.int
- RESEND_CHUNKS_FIELD_NUMBER: builtins.int
- payload_id: builtins.int
- """
- The ID of the entire payload
- """
- request_transfer: builtins.bool
- """
- Request to transfer chunked payload
- """
- accept_transfer: builtins.bool
- """
- Accept the transfer chunked payload
- """
- @property
- def resend_chunks(self) -> global___resend_chunks:
- """
- Request missing indexes in the chunked payload
- """
- def __init__(
- self,
- *,
- payload_id: builtins.int = ...,
- request_transfer: builtins.bool = ...,
- accept_transfer: builtins.bool = ...,
- resend_chunks: global___resend_chunks | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["accept_transfer", b"accept_transfer", "payload_variant", b"payload_variant", "request_transfer", b"request_transfer", "resend_chunks", b"resend_chunks"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["accept_transfer", b"accept_transfer", "payload_id", b"payload_id", "payload_variant", b"payload_variant", "request_transfer", b"request_transfer", "resend_chunks", b"resend_chunks"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["request_transfer", "accept_transfer", "resend_chunks"] | None: ...
-
-global___ChunkedPayloadResponse = ChunkedPayloadResponse
diff --git a/meshtastic/module_config_pb2.py b/meshtastic/module_config_pb2.py
deleted file mode 100644
index b1085e6..0000000
--- a/meshtastic/module_config_pb2.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emeshtastic/module_config.proto\x12\nmeshtastic\"\xd3\"\n\x0cModuleConfig\x12\x33\n\x04mqtt\x18\x01 \x01(\x0b\x32#.meshtastic.ModuleConfig.MQTTConfigH\x00\x12\x37\n\x06serial\x18\x02 \x01(\x0b\x32%.meshtastic.ModuleConfig.SerialConfigH\x00\x12T\n\x15\x65xternal_notification\x18\x03 \x01(\x0b\x32\x33.meshtastic.ModuleConfig.ExternalNotificationConfigH\x00\x12\x44\n\rstore_forward\x18\x04 \x01(\x0b\x32+.meshtastic.ModuleConfig.StoreForwardConfigH\x00\x12>\n\nrange_test\x18\x05 \x01(\x0b\x32(.meshtastic.ModuleConfig.RangeTestConfigH\x00\x12=\n\ttelemetry\x18\x06 \x01(\x0b\x32(.meshtastic.ModuleConfig.TelemetryConfigH\x00\x12\x46\n\x0e\x63\x61nned_message\x18\x07 \x01(\x0b\x32,.meshtastic.ModuleConfig.CannedMessageConfigH\x00\x12\x35\n\x05\x61udio\x18\x08 \x01(\x0b\x32$.meshtastic.ModuleConfig.AudioConfigH\x00\x12H\n\x0fremote_hardware\x18\t \x01(\x0b\x32-.meshtastic.ModuleConfig.RemoteHardwareConfigH\x00\x12\x44\n\rneighbor_info\x18\n \x01(\x0b\x32+.meshtastic.ModuleConfig.NeighborInfoConfigH\x00\x12J\n\x10\x61mbient_lighting\x18\x0b \x01(\x0b\x32..meshtastic.ModuleConfig.AmbientLightingConfigH\x00\x12J\n\x10\x64\x65tection_sensor\x18\x0c \x01(\x0b\x32..meshtastic.ModuleConfig.DetectionSensorConfigH\x00\x12?\n\npaxcounter\x18\r \x01(\x0b\x32).meshtastic.ModuleConfig.PaxcounterConfigH\x00\x1a\xb0\x02\n\nMQTTConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x10\n\x08password\x18\x04 \x01(\t\x12\x1a\n\x12\x65ncryption_enabled\x18\x05 \x01(\x08\x12\x14\n\x0cjson_enabled\x18\x06 \x01(\x08\x12\x13\n\x0btls_enabled\x18\x07 \x01(\x08\x12\x0c\n\x04root\x18\x08 \x01(\t\x12\x1f\n\x17proxy_to_client_enabled\x18\t \x01(\x08\x12\x1d\n\x15map_reporting_enabled\x18\n \x01(\x08\x12G\n\x13map_report_settings\x18\x0b \x01(\x0b\x32*.meshtastic.ModuleConfig.MapReportSettings\x1aN\n\x11MapReportSettings\x12\x1d\n\x15publish_interval_secs\x18\x01 \x01(\r\x12\x1a\n\x12position_precision\x18\x02 \x01(\r\x1a\x82\x01\n\x14RemoteHardwareConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\"\n\x1a\x61llow_undefined_pin_access\x18\x02 \x01(\x08\x12\x35\n\x0e\x61vailable_pins\x18\x03 \x03(\x0b\x32\x1d.meshtastic.RemoteHardwarePin\x1a>\n\x12NeighborInfoConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x17\n\x0fupdate_interval\x18\x02 \x01(\r\x1a\xd2\x01\n\x15\x44\x65tectionSensorConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x1e\n\x16minimum_broadcast_secs\x18\x02 \x01(\r\x12\x1c\n\x14state_broadcast_secs\x18\x03 \x01(\r\x12\x11\n\tsend_bell\x18\x04 \x01(\x08\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x13\n\x0bmonitor_pin\x18\x06 \x01(\r\x12 \n\x18\x64\x65tection_triggered_high\x18\x07 \x01(\x08\x12\x12\n\nuse_pullup\x18\x08 \x01(\x08\x1a\xe4\x02\n\x0b\x41udioConfig\x12\x16\n\x0e\x63odec2_enabled\x18\x01 \x01(\x08\x12\x0f\n\x07ptt_pin\x18\x02 \x01(\r\x12@\n\x07\x62itrate\x18\x03 \x01(\x0e\x32/.meshtastic.ModuleConfig.AudioConfig.Audio_Baud\x12\x0e\n\x06i2s_ws\x18\x04 \x01(\r\x12\x0e\n\x06i2s_sd\x18\x05 \x01(\r\x12\x0f\n\x07i2s_din\x18\x06 \x01(\r\x12\x0f\n\x07i2s_sck\x18\x07 \x01(\r\"\xa7\x01\n\nAudio_Baud\x12\x12\n\x0e\x43ODEC2_DEFAULT\x10\x00\x12\x0f\n\x0b\x43ODEC2_3200\x10\x01\x12\x0f\n\x0b\x43ODEC2_2400\x10\x02\x12\x0f\n\x0b\x43ODEC2_1600\x10\x03\x12\x0f\n\x0b\x43ODEC2_1400\x10\x04\x12\x0f\n\x0b\x43ODEC2_1300\x10\x05\x12\x0f\n\x0b\x43ODEC2_1200\x10\x06\x12\x0e\n\nCODEC2_700\x10\x07\x12\x0f\n\x0b\x43ODEC2_700B\x10\x08\x1av\n\x10PaxcounterConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\"\n\x1apaxcounter_update_interval\x18\x02 \x01(\r\x12\x16\n\x0ewifi_threshold\x18\x03 \x01(\x05\x12\x15\n\rble_threshold\x18\x04 \x01(\x05\x1a\xe4\x04\n\x0cSerialConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0c\n\x04\x65\x63ho\x18\x02 \x01(\x08\x12\x0b\n\x03rxd\x18\x03 \x01(\r\x12\x0b\n\x03txd\x18\x04 \x01(\r\x12?\n\x04\x62\x61ud\x18\x05 \x01(\x0e\x32\x31.meshtastic.ModuleConfig.SerialConfig.Serial_Baud\x12\x0f\n\x07timeout\x18\x06 \x01(\r\x12?\n\x04mode\x18\x07 \x01(\x0e\x32\x31.meshtastic.ModuleConfig.SerialConfig.Serial_Mode\x12$\n\x1coverride_console_serial_port\x18\x08 \x01(\x08\"\x8a\x02\n\x0bSerial_Baud\x12\x10\n\x0c\x42\x41UD_DEFAULT\x10\x00\x12\x0c\n\x08\x42\x41UD_110\x10\x01\x12\x0c\n\x08\x42\x41UD_300\x10\x02\x12\x0c\n\x08\x42\x41UD_600\x10\x03\x12\r\n\tBAUD_1200\x10\x04\x12\r\n\tBAUD_2400\x10\x05\x12\r\n\tBAUD_4800\x10\x06\x12\r\n\tBAUD_9600\x10\x07\x12\x0e\n\nBAUD_19200\x10\x08\x12\x0e\n\nBAUD_38400\x10\t\x12\x0e\n\nBAUD_57600\x10\n\x12\x0f\n\x0b\x42\x41UD_115200\x10\x0b\x12\x0f\n\x0b\x42\x41UD_230400\x10\x0c\x12\x0f\n\x0b\x42\x41UD_460800\x10\r\x12\x0f\n\x0b\x42\x41UD_576000\x10\x0e\x12\x0f\n\x0b\x42\x41UD_921600\x10\x0f\"U\n\x0bSerial_Mode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\t\n\x05PROTO\x10\x02\x12\x0b\n\x07TEXTMSG\x10\x03\x12\x08\n\x04NMEA\x10\x04\x12\x0b\n\x07\x43\x41LTOPO\x10\x05\x1a\xe9\x02\n\x1a\x45xternalNotificationConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x11\n\toutput_ms\x18\x02 \x01(\r\x12\x0e\n\x06output\x18\x03 \x01(\r\x12\x14\n\x0coutput_vibra\x18\x08 \x01(\r\x12\x15\n\routput_buzzer\x18\t \x01(\r\x12\x0e\n\x06\x61\x63tive\x18\x04 \x01(\x08\x12\x15\n\ralert_message\x18\x05 \x01(\x08\x12\x1b\n\x13\x61lert_message_vibra\x18\n \x01(\x08\x12\x1c\n\x14\x61lert_message_buzzer\x18\x0b \x01(\x08\x12\x12\n\nalert_bell\x18\x06 \x01(\x08\x12\x18\n\x10\x61lert_bell_vibra\x18\x0c \x01(\x08\x12\x19\n\x11\x61lert_bell_buzzer\x18\r \x01(\x08\x12\x0f\n\x07use_pwm\x18\x07 \x01(\x08\x12\x13\n\x0bnag_timeout\x18\x0e \x01(\r\x12\x19\n\x11use_i2s_as_buzzer\x18\x0f \x01(\x08\x1a\x84\x01\n\x12StoreForwardConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x11\n\theartbeat\x18\x02 \x01(\x08\x12\x0f\n\x07records\x18\x03 \x01(\r\x12\x1a\n\x12history_return_max\x18\x04 \x01(\r\x12\x1d\n\x15history_return_window\x18\x05 \x01(\r\x1a@\n\x0fRangeTestConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0e\n\x06sender\x18\x02 \x01(\r\x12\x0c\n\x04save\x18\x03 \x01(\x08\x1a\xe6\x02\n\x0fTelemetryConfig\x12\x1e\n\x16\x64\x65vice_update_interval\x18\x01 \x01(\r\x12#\n\x1b\x65nvironment_update_interval\x18\x02 \x01(\r\x12\'\n\x1f\x65nvironment_measurement_enabled\x18\x03 \x01(\x08\x12\"\n\x1a\x65nvironment_screen_enabled\x18\x04 \x01(\x08\x12&\n\x1e\x65nvironment_display_fahrenheit\x18\x05 \x01(\x08\x12\x1b\n\x13\x61ir_quality_enabled\x18\x06 \x01(\x08\x12\x1c\n\x14\x61ir_quality_interval\x18\x07 \x01(\r\x12!\n\x19power_measurement_enabled\x18\x08 \x01(\x08\x12\x1d\n\x15power_update_interval\x18\t \x01(\r\x12\x1c\n\x14power_screen_enabled\x18\n \x01(\x08\x1a\xd6\x04\n\x13\x43\x61nnedMessageConfig\x12\x17\n\x0frotary1_enabled\x18\x01 \x01(\x08\x12\x19\n\x11inputbroker_pin_a\x18\x02 \x01(\r\x12\x19\n\x11inputbroker_pin_b\x18\x03 \x01(\r\x12\x1d\n\x15inputbroker_pin_press\x18\x04 \x01(\r\x12Y\n\x14inputbroker_event_cw\x18\x05 \x01(\x0e\x32;.meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar\x12Z\n\x15inputbroker_event_ccw\x18\x06 \x01(\x0e\x32;.meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar\x12\\\n\x17inputbroker_event_press\x18\x07 \x01(\x0e\x32;.meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar\x12\x17\n\x0fupdown1_enabled\x18\x08 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\t \x01(\x08\x12\x1a\n\x12\x61llow_input_source\x18\n \x01(\t\x12\x11\n\tsend_bell\x18\x0b \x01(\x08\"c\n\x0eInputEventChar\x12\x08\n\x04NONE\x10\x00\x12\x06\n\x02UP\x10\x11\x12\x08\n\x04\x44OWN\x10\x12\x12\x08\n\x04LEFT\x10\x13\x12\t\n\x05RIGHT\x10\x14\x12\n\n\x06SELECT\x10\n\x12\x08\n\x04\x42\x41\x43K\x10\x1b\x12\n\n\x06\x43\x41NCEL\x10\x18\x1a\x65\n\x15\x41mbientLightingConfig\x12\x11\n\tled_state\x18\x01 \x01(\x08\x12\x0f\n\x07\x63urrent\x18\x02 \x01(\r\x12\x0b\n\x03red\x18\x03 \x01(\r\x12\r\n\x05green\x18\x04 \x01(\r\x12\x0c\n\x04\x62lue\x18\x05 \x01(\rB\x11\n\x0fpayload_variant\"d\n\x11RemoteHardwarePin\x12\x10\n\x08gpio_pin\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12/\n\x04type\x18\x03 \x01(\x0e\x32!.meshtastic.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\x42g\n\x13\x63om.geeksville.meshB\x12ModuleConfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.module_config_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\022ModuleConfigProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _REMOTEHARDWAREPINTYPE._serialized_start=4586
- _REMOTEHARDWAREPINTYPE._serialized_end=4659
- _MODULECONFIG._serialized_start=47
- _MODULECONFIG._serialized_end=4482
- _MODULECONFIG_MQTTCONFIG._serialized_start=945
- _MODULECONFIG_MQTTCONFIG._serialized_end=1249
- _MODULECONFIG_MAPREPORTSETTINGS._serialized_start=1251
- _MODULECONFIG_MAPREPORTSETTINGS._serialized_end=1329
- _MODULECONFIG_REMOTEHARDWARECONFIG._serialized_start=1332
- _MODULECONFIG_REMOTEHARDWARECONFIG._serialized_end=1462
- _MODULECONFIG_NEIGHBORINFOCONFIG._serialized_start=1464
- _MODULECONFIG_NEIGHBORINFOCONFIG._serialized_end=1526
- _MODULECONFIG_DETECTIONSENSORCONFIG._serialized_start=1529
- _MODULECONFIG_DETECTIONSENSORCONFIG._serialized_end=1739
- _MODULECONFIG_AUDIOCONFIG._serialized_start=1742
- _MODULECONFIG_AUDIOCONFIG._serialized_end=2098
- _MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD._serialized_start=1931
- _MODULECONFIG_AUDIOCONFIG_AUDIO_BAUD._serialized_end=2098
- _MODULECONFIG_PAXCOUNTERCONFIG._serialized_start=2100
- _MODULECONFIG_PAXCOUNTERCONFIG._serialized_end=2218
- _MODULECONFIG_SERIALCONFIG._serialized_start=2221
- _MODULECONFIG_SERIALCONFIG._serialized_end=2833
- _MODULECONFIG_SERIALCONFIG_SERIAL_BAUD._serialized_start=2480
- _MODULECONFIG_SERIALCONFIG_SERIAL_BAUD._serialized_end=2746
- _MODULECONFIG_SERIALCONFIG_SERIAL_MODE._serialized_start=2748
- _MODULECONFIG_SERIALCONFIG_SERIAL_MODE._serialized_end=2833
- _MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_start=2836
- _MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_end=3197
- _MODULECONFIG_STOREFORWARDCONFIG._serialized_start=3200
- _MODULECONFIG_STOREFORWARDCONFIG._serialized_end=3332
- _MODULECONFIG_RANGETESTCONFIG._serialized_start=3334
- _MODULECONFIG_RANGETESTCONFIG._serialized_end=3398
- _MODULECONFIG_TELEMETRYCONFIG._serialized_start=3401
- _MODULECONFIG_TELEMETRYCONFIG._serialized_end=3759
- _MODULECONFIG_CANNEDMESSAGECONFIG._serialized_start=3762
- _MODULECONFIG_CANNEDMESSAGECONFIG._serialized_end=4360
- _MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_start=4261
- _MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_end=4360
- _MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_start=4362
- _MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_end=4463
- _REMOTEHARDWAREPIN._serialized_start=4484
- _REMOTEHARDWAREPIN._serialized_end=4584
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/module_config_pb2.pyi b/meshtastic/module_config_pb2.pyi
deleted file mode 100644
index 67bb608..0000000
--- a/meshtastic/module_config_pb2.pyi
+++ /dev/null
@@ -1,1184 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _RemoteHardwarePinType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _RemoteHardwarePinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_RemoteHardwarePinType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNKNOWN: _RemoteHardwarePinType.ValueType # 0
- """
- Unset/unused
- """
- DIGITAL_READ: _RemoteHardwarePinType.ValueType # 1
- """
- GPIO pin can be read (if it is high / low)
- """
- DIGITAL_WRITE: _RemoteHardwarePinType.ValueType # 2
- """
- GPIO pin can be written to (high / low)
- """
-
-class RemoteHardwarePinType(_RemoteHardwarePinType, metaclass=_RemoteHardwarePinTypeEnumTypeWrapper): ...
-
-UNKNOWN: RemoteHardwarePinType.ValueType # 0
-"""
-Unset/unused
-"""
-DIGITAL_READ: RemoteHardwarePinType.ValueType # 1
-"""
-GPIO pin can be read (if it is high / low)
-"""
-DIGITAL_WRITE: RemoteHardwarePinType.ValueType # 2
-"""
-GPIO pin can be written to (high / low)
-"""
-global___RemoteHardwarePinType = RemoteHardwarePinType
-
-@typing_extensions.final
-class ModuleConfig(google.protobuf.message.Message):
- """
- Module Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- @typing_extensions.final
- class MQTTConfig(google.protobuf.message.Message):
- """
- MQTT Client Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- ADDRESS_FIELD_NUMBER: builtins.int
- USERNAME_FIELD_NUMBER: builtins.int
- PASSWORD_FIELD_NUMBER: builtins.int
- ENCRYPTION_ENABLED_FIELD_NUMBER: builtins.int
- JSON_ENABLED_FIELD_NUMBER: builtins.int
- TLS_ENABLED_FIELD_NUMBER: builtins.int
- ROOT_FIELD_NUMBER: builtins.int
- PROXY_TO_CLIENT_ENABLED_FIELD_NUMBER: builtins.int
- MAP_REPORTING_ENABLED_FIELD_NUMBER: builtins.int
- MAP_REPORT_SETTINGS_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- 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.
- """
- address: builtins.str
- """
- The server to use for our MQTT global message gateway feature.
- If not set, the default server will be used
- """
- username: builtins.str
- """
- 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
- """
- password: builtins.str
- """
- 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
- """
- encryption_enabled: builtins.bool
- """
- 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
- """
- json_enabled: builtins.bool
- """
- Whether to send / consume json packets on MQTT
- """
- tls_enabled: builtins.bool
- """
- If true, we attempt to establish a secure connection using TLS
- """
- root: builtins.str
- """
- 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
- """
- proxy_to_client_enabled: builtins.bool
- """
- If true, we can use the connected phone / client to proxy messages to MQTT instead of a direct connection
- """
- map_reporting_enabled: builtins.bool
- """
- If true, we will periodically report unencrypted information about our node to a map via MQTT
- """
- @property
- def map_report_settings(self) -> global___ModuleConfig.MapReportSettings:
- """
- Settings for reporting information about our node to a map via MQTT
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- address: builtins.str = ...,
- username: builtins.str = ...,
- password: builtins.str = ...,
- encryption_enabled: builtins.bool = ...,
- json_enabled: builtins.bool = ...,
- tls_enabled: builtins.bool = ...,
- root: builtins.str = ...,
- proxy_to_client_enabled: builtins.bool = ...,
- map_reporting_enabled: builtins.bool = ...,
- map_report_settings: global___ModuleConfig.MapReportSettings | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["map_report_settings", b"map_report_settings"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "enabled", b"enabled", "encryption_enabled", b"encryption_enabled", "json_enabled", b"json_enabled", "map_report_settings", b"map_report_settings", "map_reporting_enabled", b"map_reporting_enabled", "password", b"password", "proxy_to_client_enabled", b"proxy_to_client_enabled", "root", b"root", "tls_enabled", b"tls_enabled", "username", b"username"]) -> None: ...
-
- @typing_extensions.final
- class MapReportSettings(google.protobuf.message.Message):
- """
- Settings for reporting unencrypted information about our node to a map via MQTT
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PUBLISH_INTERVAL_SECS_FIELD_NUMBER: builtins.int
- POSITION_PRECISION_FIELD_NUMBER: builtins.int
- publish_interval_secs: builtins.int
- """
- How often we should report our info to the map (in seconds)
- """
- position_precision: builtins.int
- """
- Bits of precision for the location sent (default of 32 is full precision).
- """
- def __init__(
- self,
- *,
- publish_interval_secs: builtins.int = ...,
- position_precision: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["position_precision", b"position_precision", "publish_interval_secs", b"publish_interval_secs"]) -> None: ...
-
- @typing_extensions.final
- class RemoteHardwareConfig(google.protobuf.message.Message):
- """
- RemoteHardwareModule Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- ALLOW_UNDEFINED_PIN_ACCESS_FIELD_NUMBER: builtins.int
- AVAILABLE_PINS_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Whether the Module is enabled
- """
- allow_undefined_pin_access: builtins.bool
- """
- Whether the Module allows consumers to read / write to pins not defined in available_pins
- """
- @property
- def available_pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RemoteHardwarePin]:
- """
- Exposes the available pins to the mesh for reading and writing
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- allow_undefined_pin_access: builtins.bool = ...,
- available_pins: collections.abc.Iterable[global___RemoteHardwarePin] | None = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["allow_undefined_pin_access", b"allow_undefined_pin_access", "available_pins", b"available_pins", "enabled", b"enabled"]) -> None: ...
-
- @typing_extensions.final
- class NeighborInfoConfig(google.protobuf.message.Message):
- """
- NeighborInfoModule Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Whether the Module is enabled
- """
- update_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- Neighbor Info to the mesh
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- update_interval: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["enabled", b"enabled", "update_interval", b"update_interval"]) -> None: ...
-
- @typing_extensions.final
- class DetectionSensorConfig(google.protobuf.message.Message):
- """
- Detection Sensor Module Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- MINIMUM_BROADCAST_SECS_FIELD_NUMBER: builtins.int
- STATE_BROADCAST_SECS_FIELD_NUMBER: builtins.int
- SEND_BELL_FIELD_NUMBER: builtins.int
- NAME_FIELD_NUMBER: builtins.int
- MONITOR_PIN_FIELD_NUMBER: builtins.int
- DETECTION_TRIGGERED_HIGH_FIELD_NUMBER: builtins.int
- USE_PULLUP_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Whether the Module is enabled
- """
- minimum_broadcast_secs: builtins.int
- """
- Interval in seconds of how often we can send a message to the mesh when a state change is detected
- """
- state_broadcast_secs: builtins.int
- """
- Interval in seconds of how often we should send a message to the mesh with the current state regardless of changes
- When set to 0, only state changes will be broadcasted
- Works as a sort of status heartbeat for peace of mind
- """
- send_bell: builtins.bool
- """
- Send ASCII bell with alert message
- Useful for triggering ext. notification on bell
- """
- name: builtins.str
- """
- 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
- """
- monitor_pin: builtins.int
- """
- GPIO pin to monitor for state changes
- """
- detection_triggered_high: builtins.bool
- """
- Whether or not the GPIO pin state detection is triggered on HIGH (1)
- Otherwise LOW (0)
- """
- use_pullup: builtins.bool
- """
- Whether or not use INPUT_PULLUP mode for GPIO pin
- Only applicable if the board uses pull-up resistors on the pin
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- minimum_broadcast_secs: builtins.int = ...,
- state_broadcast_secs: builtins.int = ...,
- send_bell: builtins.bool = ...,
- name: builtins.str = ...,
- monitor_pin: builtins.int = ...,
- detection_triggered_high: builtins.bool = ...,
- use_pullup: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["detection_triggered_high", b"detection_triggered_high", "enabled", b"enabled", "minimum_broadcast_secs", b"minimum_broadcast_secs", "monitor_pin", b"monitor_pin", "name", b"name", "send_bell", b"send_bell", "state_broadcast_secs", b"state_broadcast_secs", "use_pullup", b"use_pullup"]) -> None: ...
-
- @typing_extensions.final
- class AudioConfig(google.protobuf.message.Message):
- """
- Audio Config for codec2 voice
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Audio_Baud:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _Audio_BaudEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ModuleConfig.AudioConfig._Audio_Baud.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- CODEC2_DEFAULT: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 0
- CODEC2_3200: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 1
- CODEC2_2400: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 2
- CODEC2_1600: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 3
- CODEC2_1400: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 4
- CODEC2_1300: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 5
- CODEC2_1200: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 6
- CODEC2_700: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 7
- CODEC2_700B: ModuleConfig.AudioConfig._Audio_Baud.ValueType # 8
-
- class Audio_Baud(_Audio_Baud, metaclass=_Audio_BaudEnumTypeWrapper):
- """
- Baudrate for codec2 voice
- """
-
- CODEC2_DEFAULT: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 0
- CODEC2_3200: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 1
- CODEC2_2400: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 2
- CODEC2_1600: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 3
- CODEC2_1400: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 4
- CODEC2_1300: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 5
- CODEC2_1200: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 6
- CODEC2_700: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 7
- CODEC2_700B: ModuleConfig.AudioConfig.Audio_Baud.ValueType # 8
-
- CODEC2_ENABLED_FIELD_NUMBER: builtins.int
- PTT_PIN_FIELD_NUMBER: builtins.int
- BITRATE_FIELD_NUMBER: builtins.int
- I2S_WS_FIELD_NUMBER: builtins.int
- I2S_SD_FIELD_NUMBER: builtins.int
- I2S_DIN_FIELD_NUMBER: builtins.int
- I2S_SCK_FIELD_NUMBER: builtins.int
- codec2_enabled: builtins.bool
- """
- Whether Audio is enabled
- """
- ptt_pin: builtins.int
- """
- PTT Pin
- """
- bitrate: global___ModuleConfig.AudioConfig.Audio_Baud.ValueType
- """
- The audio sample rate to use for codec2
- """
- i2s_ws: builtins.int
- """
- I2S Word Select
- """
- i2s_sd: builtins.int
- """
- I2S Data IN
- """
- i2s_din: builtins.int
- """
- I2S Data OUT
- """
- i2s_sck: builtins.int
- """
- I2S Clock
- """
- def __init__(
- self,
- *,
- codec2_enabled: builtins.bool = ...,
- ptt_pin: builtins.int = ...,
- bitrate: global___ModuleConfig.AudioConfig.Audio_Baud.ValueType = ...,
- i2s_ws: builtins.int = ...,
- i2s_sd: builtins.int = ...,
- i2s_din: builtins.int = ...,
- i2s_sck: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["bitrate", b"bitrate", "codec2_enabled", b"codec2_enabled", "i2s_din", b"i2s_din", "i2s_sck", b"i2s_sck", "i2s_sd", b"i2s_sd", "i2s_ws", b"i2s_ws", "ptt_pin", b"ptt_pin"]) -> None: ...
-
- @typing_extensions.final
- class PaxcounterConfig(google.protobuf.message.Message):
- """
- Config for the Paxcounter Module
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- PAXCOUNTER_UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- WIFI_THRESHOLD_FIELD_NUMBER: builtins.int
- BLE_THRESHOLD_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Enable the Paxcounter Module
- """
- paxcounter_update_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- metrics to the mesh
- """
- wifi_threshold: builtins.int
- """
- WiFi RSSI threshold. Defaults to -80
- """
- ble_threshold: builtins.int
- """
- BLE RSSI threshold. Defaults to -80
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- paxcounter_update_interval: builtins.int = ...,
- wifi_threshold: builtins.int = ...,
- ble_threshold: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["ble_threshold", b"ble_threshold", "enabled", b"enabled", "paxcounter_update_interval", b"paxcounter_update_interval", "wifi_threshold", b"wifi_threshold"]) -> None: ...
-
- @typing_extensions.final
- class SerialConfig(google.protobuf.message.Message):
- """
- Serial Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Serial_Baud:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _Serial_BaudEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ModuleConfig.SerialConfig._Serial_Baud.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- BAUD_DEFAULT: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 0
- BAUD_110: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 1
- BAUD_300: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 2
- BAUD_600: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 3
- BAUD_1200: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 4
- BAUD_2400: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 5
- BAUD_4800: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 6
- BAUD_9600: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 7
- BAUD_19200: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 8
- BAUD_38400: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 9
- BAUD_57600: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 10
- BAUD_115200: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 11
- BAUD_230400: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 12
- BAUD_460800: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 13
- BAUD_576000: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 14
- BAUD_921600: ModuleConfig.SerialConfig._Serial_Baud.ValueType # 15
-
- class Serial_Baud(_Serial_Baud, metaclass=_Serial_BaudEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- BAUD_DEFAULT: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 0
- BAUD_110: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 1
- BAUD_300: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 2
- BAUD_600: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 3
- BAUD_1200: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 4
- BAUD_2400: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 5
- BAUD_4800: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 6
- BAUD_9600: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 7
- BAUD_19200: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 8
- BAUD_38400: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 9
- BAUD_57600: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 10
- BAUD_115200: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 11
- BAUD_230400: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 12
- BAUD_460800: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 13
- BAUD_576000: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 14
- BAUD_921600: ModuleConfig.SerialConfig.Serial_Baud.ValueType # 15
-
- class _Serial_Mode:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _Serial_ModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ModuleConfig.SerialConfig._Serial_Mode.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DEFAULT: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 0
- SIMPLE: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 1
- PROTO: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 2
- TEXTMSG: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 3
- NMEA: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 4
- CALTOPO: ModuleConfig.SerialConfig._Serial_Mode.ValueType # 5
- """NMEA messages specifically tailored for CalTopo"""
-
- class Serial_Mode(_Serial_Mode, metaclass=_Serial_ModeEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- DEFAULT: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 0
- SIMPLE: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 1
- PROTO: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 2
- TEXTMSG: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 3
- NMEA: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 4
- CALTOPO: ModuleConfig.SerialConfig.Serial_Mode.ValueType # 5
- """NMEA messages specifically tailored for CalTopo"""
-
- ENABLED_FIELD_NUMBER: builtins.int
- ECHO_FIELD_NUMBER: builtins.int
- RXD_FIELD_NUMBER: builtins.int
- TXD_FIELD_NUMBER: builtins.int
- BAUD_FIELD_NUMBER: builtins.int
- TIMEOUT_FIELD_NUMBER: builtins.int
- MODE_FIELD_NUMBER: builtins.int
- OVERRIDE_CONSOLE_SERIAL_PORT_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Preferences for the SerialModule
- """
- echo: builtins.bool
- """
- TODO: REPLACE
- """
- rxd: builtins.int
- """
- RX pin (should match Arduino gpio pin number)
- """
- txd: builtins.int
- """
- TX pin (should match Arduino gpio pin number)
- """
- baud: global___ModuleConfig.SerialConfig.Serial_Baud.ValueType
- """
- Serial baud rate
- """
- timeout: builtins.int
- """
- TODO: REPLACE
- """
- mode: global___ModuleConfig.SerialConfig.Serial_Mode.ValueType
- """
- Mode for serial module operation
- """
- override_console_serial_port: builtins.bool
- """
- 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
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- echo: builtins.bool = ...,
- rxd: builtins.int = ...,
- txd: builtins.int = ...,
- baud: global___ModuleConfig.SerialConfig.Serial_Baud.ValueType = ...,
- timeout: builtins.int = ...,
- mode: global___ModuleConfig.SerialConfig.Serial_Mode.ValueType = ...,
- override_console_serial_port: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["baud", b"baud", "echo", b"echo", "enabled", b"enabled", "mode", b"mode", "override_console_serial_port", b"override_console_serial_port", "rxd", b"rxd", "timeout", b"timeout", "txd", b"txd"]) -> None: ...
-
- @typing_extensions.final
- class ExternalNotificationConfig(google.protobuf.message.Message):
- """
- External Notifications Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- OUTPUT_MS_FIELD_NUMBER: builtins.int
- OUTPUT_FIELD_NUMBER: builtins.int
- OUTPUT_VIBRA_FIELD_NUMBER: builtins.int
- OUTPUT_BUZZER_FIELD_NUMBER: builtins.int
- ACTIVE_FIELD_NUMBER: builtins.int
- ALERT_MESSAGE_FIELD_NUMBER: builtins.int
- ALERT_MESSAGE_VIBRA_FIELD_NUMBER: builtins.int
- ALERT_MESSAGE_BUZZER_FIELD_NUMBER: builtins.int
- ALERT_BELL_FIELD_NUMBER: builtins.int
- ALERT_BELL_VIBRA_FIELD_NUMBER: builtins.int
- ALERT_BELL_BUZZER_FIELD_NUMBER: builtins.int
- USE_PWM_FIELD_NUMBER: builtins.int
- NAG_TIMEOUT_FIELD_NUMBER: builtins.int
- USE_I2S_AS_BUZZER_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Enable the ExternalNotificationModule
- """
- output_ms: builtins.int
- """
- When using in On/Off mode, keep the output on for this many
- milliseconds. Default 1000ms (1 second).
- """
- output: builtins.int
- """
- 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_vibra: builtins.int
- """
- Optional: Define a secondary output pin for a vibra motor
- This is used in standalone devices to match the UI.
- """
- output_buzzer: builtins.int
- """
- Optional: Define a tertiary output pin for an active buzzer
- This is used in standalone devices to to match the UI.
- """
- active: builtins.bool
- """
- IF this is true, the 'output' Pin will be pulled active high, false
- means active low.
- """
- alert_message: builtins.bool
- """
- True: Alert when a text message arrives (output)
- """
- alert_message_vibra: builtins.bool
- """
- True: Alert when a text message arrives (output_vibra)
- """
- alert_message_buzzer: builtins.bool
- """
- True: Alert when a text message arrives (output_buzzer)
- """
- alert_bell: builtins.bool
- """
- True: Alert when the bell character is received (output)
- """
- alert_bell_vibra: builtins.bool
- """
- True: Alert when the bell character is received (output_vibra)
- """
- alert_bell_buzzer: builtins.bool
- """
- True: Alert when the bell character is received (output_buzzer)
- """
- use_pwm: builtins.bool
- """
- 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.
- """
- nag_timeout: builtins.int
- """
- 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
- """
- use_i2s_as_buzzer: builtins.bool
- """
- 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
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- output_ms: builtins.int = ...,
- output: builtins.int = ...,
- output_vibra: builtins.int = ...,
- output_buzzer: builtins.int = ...,
- active: builtins.bool = ...,
- alert_message: builtins.bool = ...,
- alert_message_vibra: builtins.bool = ...,
- alert_message_buzzer: builtins.bool = ...,
- alert_bell: builtins.bool = ...,
- alert_bell_vibra: builtins.bool = ...,
- alert_bell_buzzer: builtins.bool = ...,
- use_pwm: builtins.bool = ...,
- nag_timeout: builtins.int = ...,
- use_i2s_as_buzzer: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["active", b"active", "alert_bell", b"alert_bell", "alert_bell_buzzer", b"alert_bell_buzzer", "alert_bell_vibra", b"alert_bell_vibra", "alert_message", b"alert_message", "alert_message_buzzer", b"alert_message_buzzer", "alert_message_vibra", b"alert_message_vibra", "enabled", b"enabled", "nag_timeout", b"nag_timeout", "output", b"output", "output_buzzer", b"output_buzzer", "output_ms", b"output_ms", "output_vibra", b"output_vibra", "use_i2s_as_buzzer", b"use_i2s_as_buzzer", "use_pwm", b"use_pwm"]) -> None: ...
-
- @typing_extensions.final
- class StoreForwardConfig(google.protobuf.message.Message):
- """
- Store and Forward Module Config
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- HEARTBEAT_FIELD_NUMBER: builtins.int
- RECORDS_FIELD_NUMBER: builtins.int
- HISTORY_RETURN_MAX_FIELD_NUMBER: builtins.int
- HISTORY_RETURN_WINDOW_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Enable the Store and Forward Module
- """
- heartbeat: builtins.bool
- """
- TODO: REPLACE
- """
- records: builtins.int
- """
- TODO: REPLACE
- """
- history_return_max: builtins.int
- """
- TODO: REPLACE
- """
- history_return_window: builtins.int
- """
- TODO: REPLACE
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- heartbeat: builtins.bool = ...,
- records: builtins.int = ...,
- history_return_max: builtins.int = ...,
- history_return_window: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["enabled", b"enabled", "heartbeat", b"heartbeat", "history_return_max", b"history_return_max", "history_return_window", b"history_return_window", "records", b"records"]) -> None: ...
-
- @typing_extensions.final
- class RangeTestConfig(google.protobuf.message.Message):
- """
- Preferences for the RangeTestModule
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ENABLED_FIELD_NUMBER: builtins.int
- SENDER_FIELD_NUMBER: builtins.int
- SAVE_FIELD_NUMBER: builtins.int
- enabled: builtins.bool
- """
- Enable the Range Test Module
- """
- sender: builtins.int
- """
- Send out range test messages from this node
- """
- save: builtins.bool
- """
- Bool value indicating that this node should save a RangeTest.csv file.
- ESP32 Only
- """
- def __init__(
- self,
- *,
- enabled: builtins.bool = ...,
- sender: builtins.int = ...,
- save: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["enabled", b"enabled", "save", b"save", "sender", b"sender"]) -> None: ...
-
- @typing_extensions.final
- class TelemetryConfig(google.protobuf.message.Message):
- """
- Configuration for both device and environment metrics
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- DEVICE_UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- ENVIRONMENT_UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- ENVIRONMENT_MEASUREMENT_ENABLED_FIELD_NUMBER: builtins.int
- ENVIRONMENT_SCREEN_ENABLED_FIELD_NUMBER: builtins.int
- ENVIRONMENT_DISPLAY_FAHRENHEIT_FIELD_NUMBER: builtins.int
- AIR_QUALITY_ENABLED_FIELD_NUMBER: builtins.int
- AIR_QUALITY_INTERVAL_FIELD_NUMBER: builtins.int
- POWER_MEASUREMENT_ENABLED_FIELD_NUMBER: builtins.int
- POWER_UPDATE_INTERVAL_FIELD_NUMBER: builtins.int
- POWER_SCREEN_ENABLED_FIELD_NUMBER: builtins.int
- device_update_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- device metrics to the mesh
- """
- environment_update_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- environment measurements to the mesh
- """
- environment_measurement_enabled: builtins.bool
- """
- Preferences for the Telemetry Module (Environment)
- Enable/Disable the telemetry measurement module measurement collection
- """
- environment_screen_enabled: builtins.bool
- """
- Enable/Disable the telemetry measurement module on-device display
- """
- environment_display_fahrenheit: builtins.bool
- """
- We'll always read the sensor in Celsius, but sometimes we might want to
- display the results in Fahrenheit as a "user preference".
- """
- air_quality_enabled: builtins.bool
- """
- Enable/Disable the air quality metrics
- """
- air_quality_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- air quality metrics to the mesh
- """
- power_measurement_enabled: builtins.bool
- """
- Interval in seconds of how often we should try to send our
- air quality metrics to the mesh
- """
- power_update_interval: builtins.int
- """
- Interval in seconds of how often we should try to send our
- air quality metrics to the mesh
- """
- power_screen_enabled: builtins.bool
- """
- Interval in seconds of how often we should try to send our
- air quality metrics to the mesh
- """
- def __init__(
- self,
- *,
- device_update_interval: builtins.int = ...,
- environment_update_interval: builtins.int = ...,
- environment_measurement_enabled: builtins.bool = ...,
- environment_screen_enabled: builtins.bool = ...,
- environment_display_fahrenheit: builtins.bool = ...,
- air_quality_enabled: builtins.bool = ...,
- air_quality_interval: builtins.int = ...,
- power_measurement_enabled: builtins.bool = ...,
- power_update_interval: builtins.int = ...,
- power_screen_enabled: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["air_quality_enabled", b"air_quality_enabled", "air_quality_interval", b"air_quality_interval", "device_update_interval", b"device_update_interval", "environment_display_fahrenheit", b"environment_display_fahrenheit", "environment_measurement_enabled", b"environment_measurement_enabled", "environment_screen_enabled", b"environment_screen_enabled", "environment_update_interval", b"environment_update_interval", "power_measurement_enabled", b"power_measurement_enabled", "power_screen_enabled", b"power_screen_enabled", "power_update_interval", b"power_update_interval"]) -> None: ...
-
- @typing_extensions.final
- class CannedMessageConfig(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _InputEventChar:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _InputEventCharEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ModuleConfig.CannedMessageConfig._InputEventChar.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- NONE: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 0
- """
- TODO: REPLACE
- """
- UP: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 17
- """
- TODO: REPLACE
- """
- DOWN: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 18
- """
- TODO: REPLACE
- """
- LEFT: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 19
- """
- TODO: REPLACE
- """
- RIGHT: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 20
- """
- TODO: REPLACE
- """
- SELECT: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 10
- """
- '\\n'
- """
- BACK: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 27
- """
- TODO: REPLACE
- """
- CANCEL: ModuleConfig.CannedMessageConfig._InputEventChar.ValueType # 24
- """
- TODO: REPLACE
- """
-
- class InputEventChar(_InputEventChar, metaclass=_InputEventCharEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- NONE: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 0
- """
- TODO: REPLACE
- """
- UP: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 17
- """
- TODO: REPLACE
- """
- DOWN: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 18
- """
- TODO: REPLACE
- """
- LEFT: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 19
- """
- TODO: REPLACE
- """
- RIGHT: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 20
- """
- TODO: REPLACE
- """
- SELECT: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 10
- """
- '\\n'
- """
- BACK: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 27
- """
- TODO: REPLACE
- """
- CANCEL: ModuleConfig.CannedMessageConfig.InputEventChar.ValueType # 24
- """
- TODO: REPLACE
- """
-
- ROTARY1_ENABLED_FIELD_NUMBER: builtins.int
- INPUTBROKER_PIN_A_FIELD_NUMBER: builtins.int
- INPUTBROKER_PIN_B_FIELD_NUMBER: builtins.int
- INPUTBROKER_PIN_PRESS_FIELD_NUMBER: builtins.int
- INPUTBROKER_EVENT_CW_FIELD_NUMBER: builtins.int
- INPUTBROKER_EVENT_CCW_FIELD_NUMBER: builtins.int
- INPUTBROKER_EVENT_PRESS_FIELD_NUMBER: builtins.int
- UPDOWN1_ENABLED_FIELD_NUMBER: builtins.int
- ENABLED_FIELD_NUMBER: builtins.int
- ALLOW_INPUT_SOURCE_FIELD_NUMBER: builtins.int
- SEND_BELL_FIELD_NUMBER: builtins.int
- rotary1_enabled: builtins.bool
- """
- Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating.
- """
- inputbroker_pin_a: builtins.int
- """
- GPIO pin for rotary encoder A port.
- """
- inputbroker_pin_b: builtins.int
- """
- GPIO pin for rotary encoder B port.
- """
- inputbroker_pin_press: builtins.int
- """
- GPIO pin for rotary encoder Press port.
- """
- inputbroker_event_cw: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType
- """
- Generate input event on CW of this kind.
- """
- inputbroker_event_ccw: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType
- """
- Generate input event on CCW of this kind.
- """
- inputbroker_event_press: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType
- """
- Generate input event on Press of this kind.
- """
- updown1_enabled: builtins.bool
- """
- Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker.
- """
- enabled: builtins.bool
- """
- Enable/disable CannedMessageModule.
- """
- allow_input_source: builtins.str
- """
- Input event origin accepted by the canned message module.
- Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any"
- """
- send_bell: builtins.bool
- """
- CannedMessageModule also sends a bell character with the messages.
- ExternalNotificationModule can benefit from this feature.
- """
- def __init__(
- self,
- *,
- rotary1_enabled: builtins.bool = ...,
- inputbroker_pin_a: builtins.int = ...,
- inputbroker_pin_b: builtins.int = ...,
- inputbroker_pin_press: builtins.int = ...,
- inputbroker_event_cw: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType = ...,
- inputbroker_event_ccw: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType = ...,
- inputbroker_event_press: global___ModuleConfig.CannedMessageConfig.InputEventChar.ValueType = ...,
- updown1_enabled: builtins.bool = ...,
- enabled: builtins.bool = ...,
- allow_input_source: builtins.str = ...,
- send_bell: builtins.bool = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["allow_input_source", b"allow_input_source", "enabled", b"enabled", "inputbroker_event_ccw", b"inputbroker_event_ccw", "inputbroker_event_cw", b"inputbroker_event_cw", "inputbroker_event_press", b"inputbroker_event_press", "inputbroker_pin_a", b"inputbroker_pin_a", "inputbroker_pin_b", b"inputbroker_pin_b", "inputbroker_pin_press", b"inputbroker_pin_press", "rotary1_enabled", b"rotary1_enabled", "send_bell", b"send_bell", "updown1_enabled", b"updown1_enabled"]) -> None: ...
-
- @typing_extensions.final
- class AmbientLightingConfig(google.protobuf.message.Message):
- """
- 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.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- LED_STATE_FIELD_NUMBER: builtins.int
- CURRENT_FIELD_NUMBER: builtins.int
- RED_FIELD_NUMBER: builtins.int
- GREEN_FIELD_NUMBER: builtins.int
- BLUE_FIELD_NUMBER: builtins.int
- led_state: builtins.bool
- """
- Sets LED to on or off.
- """
- current: builtins.int
- """
- Sets the current for the LED output. Default is 10.
- """
- red: builtins.int
- """
- Sets the red LED level. Values are 0-255.
- """
- green: builtins.int
- """
- Sets the green LED level. Values are 0-255.
- """
- blue: builtins.int
- """
- Sets the blue LED level. Values are 0-255.
- """
- def __init__(
- self,
- *,
- led_state: builtins.bool = ...,
- current: builtins.int = ...,
- red: builtins.int = ...,
- green: builtins.int = ...,
- blue: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["blue", b"blue", "current", b"current", "green", b"green", "led_state", b"led_state", "red", b"red"]) -> None: ...
-
- MQTT_FIELD_NUMBER: builtins.int
- SERIAL_FIELD_NUMBER: builtins.int
- EXTERNAL_NOTIFICATION_FIELD_NUMBER: builtins.int
- STORE_FORWARD_FIELD_NUMBER: builtins.int
- RANGE_TEST_FIELD_NUMBER: builtins.int
- TELEMETRY_FIELD_NUMBER: builtins.int
- CANNED_MESSAGE_FIELD_NUMBER: builtins.int
- AUDIO_FIELD_NUMBER: builtins.int
- REMOTE_HARDWARE_FIELD_NUMBER: builtins.int
- NEIGHBOR_INFO_FIELD_NUMBER: builtins.int
- AMBIENT_LIGHTING_FIELD_NUMBER: builtins.int
- DETECTION_SENSOR_FIELD_NUMBER: builtins.int
- PAXCOUNTER_FIELD_NUMBER: builtins.int
- @property
- def mqtt(self) -> global___ModuleConfig.MQTTConfig:
- """
- TODO: REPLACE
- """
- @property
- def serial(self) -> global___ModuleConfig.SerialConfig:
- """
- TODO: REPLACE
- """
- @property
- def external_notification(self) -> global___ModuleConfig.ExternalNotificationConfig:
- """
- TODO: REPLACE
- """
- @property
- def store_forward(self) -> global___ModuleConfig.StoreForwardConfig:
- """
- TODO: REPLACE
- """
- @property
- def range_test(self) -> global___ModuleConfig.RangeTestConfig:
- """
- TODO: REPLACE
- """
- @property
- def telemetry(self) -> global___ModuleConfig.TelemetryConfig:
- """
- TODO: REPLACE
- """
- @property
- def canned_message(self) -> global___ModuleConfig.CannedMessageConfig:
- """
- TODO: REPLACE
- """
- @property
- def audio(self) -> global___ModuleConfig.AudioConfig:
- """
- TODO: REPLACE
- """
- @property
- def remote_hardware(self) -> global___ModuleConfig.RemoteHardwareConfig:
- """
- TODO: REPLACE
- """
- @property
- def neighbor_info(self) -> global___ModuleConfig.NeighborInfoConfig:
- """
- TODO: REPLACE
- """
- @property
- def ambient_lighting(self) -> global___ModuleConfig.AmbientLightingConfig:
- """
- TODO: REPLACE
- """
- @property
- def detection_sensor(self) -> global___ModuleConfig.DetectionSensorConfig:
- """
- TODO: REPLACE
- """
- @property
- def paxcounter(self) -> global___ModuleConfig.PaxcounterConfig:
- """
- TODO: REPLACE
- """
- def __init__(
- self,
- *,
- mqtt: global___ModuleConfig.MQTTConfig | None = ...,
- serial: global___ModuleConfig.SerialConfig | None = ...,
- external_notification: global___ModuleConfig.ExternalNotificationConfig | None = ...,
- store_forward: global___ModuleConfig.StoreForwardConfig | None = ...,
- range_test: global___ModuleConfig.RangeTestConfig | None = ...,
- telemetry: global___ModuleConfig.TelemetryConfig | None = ...,
- canned_message: global___ModuleConfig.CannedMessageConfig | None = ...,
- audio: global___ModuleConfig.AudioConfig | None = ...,
- remote_hardware: global___ModuleConfig.RemoteHardwareConfig | None = ...,
- neighbor_info: global___ModuleConfig.NeighborInfoConfig | None = ...,
- ambient_lighting: global___ModuleConfig.AmbientLightingConfig | None = ...,
- detection_sensor: global___ModuleConfig.DetectionSensorConfig | None = ...,
- paxcounter: global___ModuleConfig.PaxcounterConfig | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "payload_variant", b"payload_variant", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "store_forward", b"store_forward", "telemetry", b"telemetry"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "payload_variant", b"payload_variant", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "store_forward", b"store_forward", "telemetry", b"telemetry"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["payload_variant", b"payload_variant"]) -> typing_extensions.Literal["mqtt", "serial", "external_notification", "store_forward", "range_test", "telemetry", "canned_message", "audio", "remote_hardware", "neighbor_info", "ambient_lighting", "detection_sensor", "paxcounter"] | None: ...
-
-global___ModuleConfig = ModuleConfig
-
-@typing_extensions.final
-class RemoteHardwarePin(google.protobuf.message.Message):
- """
- A GPIO pin definition for remote hardware module
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- GPIO_PIN_FIELD_NUMBER: builtins.int
- NAME_FIELD_NUMBER: builtins.int
- TYPE_FIELD_NUMBER: builtins.int
- gpio_pin: builtins.int
- """
- GPIO Pin number (must match Arduino)
- """
- name: builtins.str
- """
- Name for the GPIO pin (i.e. Front gate, mailbox, etc)
- """
- type: global___RemoteHardwarePinType.ValueType
- """
- Type of GPIO access available to consumers on the mesh
- """
- def __init__(
- self,
- *,
- gpio_pin: builtins.int = ...,
- name: builtins.str = ...,
- type: global___RemoteHardwarePinType.ValueType = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["gpio_pin", b"gpio_pin", "name", b"name", "type", b"type"]) -> None: ...
-
-global___RemoteHardwarePin = RemoteHardwarePin
diff --git a/meshtastic/mqtt_pb2.py b/meshtastic/mqtt_pb2.py
deleted file mode 100644
index e4ba9e7..0000000
--- a/meshtastic/mqtt_pb2.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/mqtt.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 import config_pb2 as meshtastic_dot_config__pb2
-from meshtastic import mesh_pb2 as meshtastic_dot_mesh__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15meshtastic/mqtt.proto\x12\nmeshtastic\x1a\x17meshtastic/config.proto\x1a\x15meshtastic/mesh.proto\"a\n\x0fServiceEnvelope\x12&\n\x06packet\x18\x01 \x01(\x0b\x32\x16.meshtastic.MeshPacket\x12\x12\n\nchannel_id\x18\x02 \x01(\t\x12\x12\n\ngateway_id\x18\x03 \x01(\t\"\xbc\x03\n\tMapReport\x12\x11\n\tlong_name\x18\x01 \x01(\t\x12\x12\n\nshort_name\x18\x02 \x01(\t\x12\x32\n\x04role\x18\x03 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\x12+\n\x08hw_model\x18\x04 \x01(\x0e\x32\x19.meshtastic.HardwareModel\x12\x18\n\x10\x66irmware_version\x18\x05 \x01(\t\x12\x38\n\x06region\x18\x06 \x01(\x0e\x32(.meshtastic.Config.LoRaConfig.RegionCode\x12?\n\x0cmodem_preset\x18\x07 \x01(\x0e\x32).meshtastic.Config.LoRaConfig.ModemPreset\x12\x1b\n\x13has_default_channel\x18\x08 \x01(\x08\x12\x12\n\nlatitude_i\x18\t \x01(\x0f\x12\x13\n\x0blongitude_i\x18\n \x01(\x0f\x12\x10\n\x08\x61ltitude\x18\x0b \x01(\x05\x12\x1a\n\x12position_precision\x18\x0c \x01(\r\x12\x1e\n\x16num_online_local_nodes\x18\r \x01(\rB_\n\x13\x63om.geeksville.meshB\nMQTTProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.mqtt_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\nMQTTProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _SERVICEENVELOPE._serialized_start=85
- _SERVICEENVELOPE._serialized_end=182
- _MAPREPORT._serialized_start=185
- _MAPREPORT._serialized_end=629
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/mqtt_pb2.pyi b/meshtastic/mqtt_pb2.pyi
deleted file mode 100644
index ed2b834..0000000
--- a/meshtastic/mqtt_pb2.pyi
+++ /dev/null
@@ -1,151 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import meshtastic.config_pb2
-import meshtastic.mesh_pb2
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class ServiceEnvelope(google.protobuf.message.Message):
- """
- This message wraps a MeshPacket with extra metadata about the sender and how it arrived.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PACKET_FIELD_NUMBER: builtins.int
- CHANNEL_ID_FIELD_NUMBER: builtins.int
- GATEWAY_ID_FIELD_NUMBER: builtins.int
- @property
- def packet(self) -> meshtastic.mesh_pb2.MeshPacket:
- """
- The (probably encrypted) packet
- """
- channel_id: builtins.str
- """
- The global channel ID it was sent on
- """
- gateway_id: builtins.str
- """
- The sending gateway node ID. Can we use this to authenticate/prevent fake
- nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as
- the globally trusted nodenum
- """
- def __init__(
- self,
- *,
- packet: meshtastic.mesh_pb2.MeshPacket | None = ...,
- channel_id: builtins.str = ...,
- gateway_id: builtins.str = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["packet", b"packet"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["channel_id", b"channel_id", "gateway_id", b"gateway_id", "packet", b"packet"]) -> None: ...
-
-global___ServiceEnvelope = ServiceEnvelope
-
-@typing_extensions.final
-class MapReport(google.protobuf.message.Message):
- """
- Information about a node intended to be reported unencrypted to a map using MQTT.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- LONG_NAME_FIELD_NUMBER: builtins.int
- SHORT_NAME_FIELD_NUMBER: builtins.int
- ROLE_FIELD_NUMBER: builtins.int
- HW_MODEL_FIELD_NUMBER: builtins.int
- FIRMWARE_VERSION_FIELD_NUMBER: builtins.int
- REGION_FIELD_NUMBER: builtins.int
- MODEM_PRESET_FIELD_NUMBER: builtins.int
- HAS_DEFAULT_CHANNEL_FIELD_NUMBER: builtins.int
- LATITUDE_I_FIELD_NUMBER: builtins.int
- LONGITUDE_I_FIELD_NUMBER: builtins.int
- ALTITUDE_FIELD_NUMBER: builtins.int
- POSITION_PRECISION_FIELD_NUMBER: builtins.int
- NUM_ONLINE_LOCAL_NODES_FIELD_NUMBER: builtins.int
- long_name: builtins.str
- """
- A full name for this user, i.e. "Kevin Hester"
- """
- short_name: builtins.str
- """
- A VERY short name, ideally two characters.
- Suitable for a tiny OLED screen
- """
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType
- """
- Role of the node that applies specific settings for a particular use-case
- """
- hw_model: meshtastic.mesh_pb2.HardwareModel.ValueType
- """
- Hardware model of the node, i.e. T-Beam, Heltec V3, etc...
- """
- firmware_version: builtins.str
- """
- Device firmware version string
- """
- region: meshtastic.config_pb2.Config.LoRaConfig.RegionCode.ValueType
- """
- The region code for the radio (US, CN, EU433, etc...)
- """
- modem_preset: meshtastic.config_pb2.Config.LoRaConfig.ModemPreset.ValueType
- """
- Modem preset used by the radio (LongFast, MediumSlow, etc...)
- """
- has_default_channel: builtins.bool
- """
- Whether the node has a channel with default PSK and name (LongFast, MediumSlow, etc...)
- and it uses the default frequency slot given the region and modem preset.
- """
- latitude_i: builtins.int
- """
- Latitude: multiply by 1e-7 to get degrees in floating point
- """
- longitude_i: builtins.int
- """
- Longitude: multiply by 1e-7 to get degrees in floating point
- """
- altitude: builtins.int
- """
- Altitude in meters above MSL
- """
- position_precision: builtins.int
- """
- Indicates the bits of precision for latitude and longitude set by the sending node
- """
- num_online_local_nodes: builtins.int
- """
- Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT)
- """
- def __init__(
- self,
- *,
- long_name: builtins.str = ...,
- short_name: builtins.str = ...,
- role: meshtastic.config_pb2.Config.DeviceConfig.Role.ValueType = ...,
- hw_model: meshtastic.mesh_pb2.HardwareModel.ValueType = ...,
- firmware_version: builtins.str = ...,
- region: meshtastic.config_pb2.Config.LoRaConfig.RegionCode.ValueType = ...,
- modem_preset: meshtastic.config_pb2.Config.LoRaConfig.ModemPreset.ValueType = ...,
- has_default_channel: builtins.bool = ...,
- latitude_i: builtins.int = ...,
- longitude_i: builtins.int = ...,
- altitude: builtins.int = ...,
- position_precision: builtins.int = ...,
- num_online_local_nodes: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["altitude", b"altitude", "firmware_version", b"firmware_version", "has_default_channel", b"has_default_channel", "hw_model", b"hw_model", "latitude_i", b"latitude_i", "long_name", b"long_name", "longitude_i", b"longitude_i", "modem_preset", b"modem_preset", "num_online_local_nodes", b"num_online_local_nodes", "position_precision", b"position_precision", "region", b"region", "role", b"role", "short_name", b"short_name"]) -> None: ...
-
-global___MapReport = MapReport
diff --git a/meshtastic/nanopb_pb2.py b/meshtastic/nanopb_pb2.py
deleted file mode 100644
index eea6b3e..0000000
--- a/meshtastic/nanopb_pb2.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: nanopb.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 google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnanopb.proto\x1a google/protobuf/descriptor.proto\"\xa4\x07\n\rNanoPBOptions\x12\x10\n\x08max_size\x18\x01 \x01(\x05\x12\x12\n\nmax_length\x18\x0e \x01(\x05\x12\x11\n\tmax_count\x18\x02 \x01(\x05\x12&\n\x08int_size\x18\x07 \x01(\x0e\x32\x08.IntSize:\nIS_DEFAULT\x12$\n\x04type\x18\x03 \x01(\x0e\x32\n.FieldType:\nFT_DEFAULT\x12\x18\n\nlong_names\x18\x04 \x01(\x08:\x04true\x12\x1c\n\rpacked_struct\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0bpacked_enum\x18\n \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0cskip_message\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x18\n\tno_unions\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\r\n\x05msgid\x18\t \x01(\r\x12\x1e\n\x0f\x61nonymous_oneof\x18\x0b \x01(\x08:\x05\x66\x61lse\x12\x15\n\x06proto3\x18\x0c \x01(\x08:\x05\x66\x61lse\x12#\n\x14proto3_singular_msgs\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x65num_to_string\x18\r \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0c\x66ixed_length\x18\x0f \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0b\x66ixed_count\x18\x10 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x0fsubmsg_callback\x18\x16 \x01(\x08:\x05\x66\x61lse\x12/\n\x0cmangle_names\x18\x11 \x01(\x0e\x32\x11.TypenameMangling:\x06M_NONE\x12(\n\x11\x63\x61llback_datatype\x18\x12 \x01(\t:\rpb_callback_t\x12\x34\n\x11\x63\x61llback_function\x18\x13 \x01(\t:\x19pb_default_field_callback\x12\x30\n\x0e\x64\x65scriptorsize\x18\x14 \x01(\x0e\x32\x0f.DescriptorSize:\x07\x44S_AUTO\x12\x1a\n\x0b\x64\x65\x66\x61ult_has\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x0f\n\x07include\x18\x18 \x03(\t\x12\x0f\n\x07\x65xclude\x18\x1a \x03(\t\x12\x0f\n\x07package\x18\x19 \x01(\t\x12\x41\n\rtype_override\x18\x1b \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.Type\x12\x19\n\x0bsort_by_tag\x18\x1c \x01(\x08:\x04true\x12.\n\rfallback_type\x18\x1d \x01(\x0e\x32\n.FieldType:\x0b\x46T_CALLBACK*i\n\tFieldType\x12\x0e\n\nFT_DEFAULT\x10\x00\x12\x0f\n\x0b\x46T_CALLBACK\x10\x01\x12\x0e\n\nFT_POINTER\x10\x04\x12\r\n\tFT_STATIC\x10\x02\x12\r\n\tFT_IGNORE\x10\x03\x12\r\n\tFT_INLINE\x10\x05*D\n\x07IntSize\x12\x0e\n\nIS_DEFAULT\x10\x00\x12\x08\n\x04IS_8\x10\x08\x12\t\n\x05IS_16\x10\x10\x12\t\n\x05IS_32\x10 \x12\t\n\x05IS_64\x10@*Z\n\x10TypenameMangling\x12\n\n\x06M_NONE\x10\x00\x12\x13\n\x0fM_STRIP_PACKAGE\x10\x01\x12\r\n\tM_FLATTEN\x10\x02\x12\x16\n\x12M_PACKAGE_INITIALS\x10\x03*E\n\x0e\x44\x65scriptorSize\x12\x0b\n\x07\x44S_AUTO\x10\x00\x12\x08\n\x04\x44S_1\x10\x01\x12\x08\n\x04\x44S_2\x10\x02\x12\x08\n\x04\x44S_4\x10\x04\x12\x08\n\x04\x44S_8\x10\x08:E\n\x0enanopb_fileopt\x12\x1c.google.protobuf.FileOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:G\n\rnanopb_msgopt\x12\x1f.google.protobuf.MessageOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:E\n\x0enanopb_enumopt\x12\x1c.google.protobuf.EnumOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:>\n\x06nanopb\x12\x1d.google.protobuf.FieldOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptionsB\x1a\n\x18\x66i.kapsi.koti.jpa.nanopb')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nanopb_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
- google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(nanopb_fileopt)
- google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(nanopb_msgopt)
- google_dot_protobuf_dot_descriptor__pb2.EnumOptions.RegisterExtension(nanopb_enumopt)
- google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(nanopb)
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\030fi.kapsi.koti.jpa.nanopb'
- _FIELDTYPE._serialized_start=985
- _FIELDTYPE._serialized_end=1090
- _INTSIZE._serialized_start=1092
- _INTSIZE._serialized_end=1160
- _TYPENAMEMANGLING._serialized_start=1162
- _TYPENAMEMANGLING._serialized_end=1252
- _DESCRIPTORSIZE._serialized_start=1254
- _DESCRIPTORSIZE._serialized_end=1323
- _NANOPBOPTIONS._serialized_start=51
- _NANOPBOPTIONS._serialized_end=983
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/nanopb_pb2.pyi b/meshtastic/nanopb_pb2.pyi
deleted file mode 100644
index 840d1e6..0000000
--- a/meshtastic/nanopb_pb2.pyi
+++ /dev/null
@@ -1,321 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-Custom options for defining:
-- Maximum size of string/bytes
-- Maximum number of elements in array
-
-These are used by nanopb to generate statically allocable structures
-for memory-limited environments.
-"""
-import builtins
-import collections.abc
-import google.protobuf.descriptor
-import google.protobuf.descriptor_pb2
-import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.internal.extension_dict
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _FieldType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _FieldTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FieldType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- FT_DEFAULT: _FieldType.ValueType # 0
- """Automatically decide field type, generate static field if possible."""
- FT_CALLBACK: _FieldType.ValueType # 1
- """Always generate a callback field."""
- FT_POINTER: _FieldType.ValueType # 4
- """Always generate a dynamically allocated field."""
- FT_STATIC: _FieldType.ValueType # 2
- """Generate a static field or raise an exception if not possible."""
- FT_IGNORE: _FieldType.ValueType # 3
- """Ignore the field completely."""
- FT_INLINE: _FieldType.ValueType # 5
- """Legacy option, use the separate 'fixed_length' option instead"""
-
-class FieldType(_FieldType, metaclass=_FieldTypeEnumTypeWrapper): ...
-
-FT_DEFAULT: FieldType.ValueType # 0
-"""Automatically decide field type, generate static field if possible."""
-FT_CALLBACK: FieldType.ValueType # 1
-"""Always generate a callback field."""
-FT_POINTER: FieldType.ValueType # 4
-"""Always generate a dynamically allocated field."""
-FT_STATIC: FieldType.ValueType # 2
-"""Generate a static field or raise an exception if not possible."""
-FT_IGNORE: FieldType.ValueType # 3
-"""Ignore the field completely."""
-FT_INLINE: FieldType.ValueType # 5
-"""Legacy option, use the separate 'fixed_length' option instead"""
-global___FieldType = FieldType
-
-class _IntSize:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _IntSizeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_IntSize.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- IS_DEFAULT: _IntSize.ValueType # 0
- """Default, 32/64bit based on type in .proto"""
- IS_8: _IntSize.ValueType # 8
- IS_16: _IntSize.ValueType # 16
- IS_32: _IntSize.ValueType # 32
- IS_64: _IntSize.ValueType # 64
-
-class IntSize(_IntSize, metaclass=_IntSizeEnumTypeWrapper): ...
-
-IS_DEFAULT: IntSize.ValueType # 0
-"""Default, 32/64bit based on type in .proto"""
-IS_8: IntSize.ValueType # 8
-IS_16: IntSize.ValueType # 16
-IS_32: IntSize.ValueType # 32
-IS_64: IntSize.ValueType # 64
-global___IntSize = IntSize
-
-class _TypenameMangling:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _TypenameManglingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TypenameMangling.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- M_NONE: _TypenameMangling.ValueType # 0
- """Default, no typename mangling"""
- M_STRIP_PACKAGE: _TypenameMangling.ValueType # 1
- """Strip current package name"""
- M_FLATTEN: _TypenameMangling.ValueType # 2
- """Only use last path component"""
- M_PACKAGE_INITIALS: _TypenameMangling.ValueType # 3
- """Replace the package name by the initials"""
-
-class TypenameMangling(_TypenameMangling, metaclass=_TypenameManglingEnumTypeWrapper): ...
-
-M_NONE: TypenameMangling.ValueType # 0
-"""Default, no typename mangling"""
-M_STRIP_PACKAGE: TypenameMangling.ValueType # 1
-"""Strip current package name"""
-M_FLATTEN: TypenameMangling.ValueType # 2
-"""Only use last path component"""
-M_PACKAGE_INITIALS: TypenameMangling.ValueType # 3
-"""Replace the package name by the initials"""
-global___TypenameMangling = TypenameMangling
-
-class _DescriptorSize:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _DescriptorSizeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DescriptorSize.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- DS_AUTO: _DescriptorSize.ValueType # 0
- """Select minimal size based on field type"""
- DS_1: _DescriptorSize.ValueType # 1
- """1 word; up to 15 byte fields, no arrays"""
- DS_2: _DescriptorSize.ValueType # 2
- """2 words; up to 4095 byte fields, 4095 entry arrays"""
- DS_4: _DescriptorSize.ValueType # 4
- """4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays"""
- DS_8: _DescriptorSize.ValueType # 8
- """8 words; up to 2^32-1 entry arrays"""
-
-class DescriptorSize(_DescriptorSize, metaclass=_DescriptorSizeEnumTypeWrapper): ...
-
-DS_AUTO: DescriptorSize.ValueType # 0
-"""Select minimal size based on field type"""
-DS_1: DescriptorSize.ValueType # 1
-"""1 word; up to 15 byte fields, no arrays"""
-DS_2: DescriptorSize.ValueType # 2
-"""2 words; up to 4095 byte fields, 4095 entry arrays"""
-DS_4: DescriptorSize.ValueType # 4
-"""4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays"""
-DS_8: DescriptorSize.ValueType # 8
-"""8 words; up to 2^32-1 entry arrays"""
-global___DescriptorSize = DescriptorSize
-
-@typing_extensions.final
-class NanoPBOptions(google.protobuf.message.Message):
- """This is the inner options message, which basically defines options for
- a field. When it is used in message or file scope, it applies to all
- fields.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MAX_SIZE_FIELD_NUMBER: builtins.int
- MAX_LENGTH_FIELD_NUMBER: builtins.int
- MAX_COUNT_FIELD_NUMBER: builtins.int
- INT_SIZE_FIELD_NUMBER: builtins.int
- TYPE_FIELD_NUMBER: builtins.int
- LONG_NAMES_FIELD_NUMBER: builtins.int
- PACKED_STRUCT_FIELD_NUMBER: builtins.int
- PACKED_ENUM_FIELD_NUMBER: builtins.int
- SKIP_MESSAGE_FIELD_NUMBER: builtins.int
- NO_UNIONS_FIELD_NUMBER: builtins.int
- MSGID_FIELD_NUMBER: builtins.int
- ANONYMOUS_ONEOF_FIELD_NUMBER: builtins.int
- PROTO3_FIELD_NUMBER: builtins.int
- PROTO3_SINGULAR_MSGS_FIELD_NUMBER: builtins.int
- ENUM_TO_STRING_FIELD_NUMBER: builtins.int
- FIXED_LENGTH_FIELD_NUMBER: builtins.int
- FIXED_COUNT_FIELD_NUMBER: builtins.int
- SUBMSG_CALLBACK_FIELD_NUMBER: builtins.int
- MANGLE_NAMES_FIELD_NUMBER: builtins.int
- CALLBACK_DATATYPE_FIELD_NUMBER: builtins.int
- CALLBACK_FUNCTION_FIELD_NUMBER: builtins.int
- DESCRIPTORSIZE_FIELD_NUMBER: builtins.int
- DEFAULT_HAS_FIELD_NUMBER: builtins.int
- INCLUDE_FIELD_NUMBER: builtins.int
- EXCLUDE_FIELD_NUMBER: builtins.int
- PACKAGE_FIELD_NUMBER: builtins.int
- TYPE_OVERRIDE_FIELD_NUMBER: builtins.int
- SORT_BY_TAG_FIELD_NUMBER: builtins.int
- FALLBACK_TYPE_FIELD_NUMBER: builtins.int
- max_size: builtins.int
- """Allocated size for 'bytes' and 'string' fields.
- For string fields, this should include the space for null terminator.
- """
- max_length: builtins.int
- """Maximum length for 'string' fields. Setting this is equivalent
- to setting max_size to a value of length+1.
- """
- max_count: builtins.int
- """Allocated number of entries in arrays ('repeated' fields)"""
- int_size: global___IntSize.ValueType
- """Size of integer fields. Can save some memory if you don't need
- full 32 bits for the value.
- """
- type: global___FieldType.ValueType
- """Force type of field (callback or static allocation)"""
- long_names: builtins.bool
- """Use long names for enums, i.e. EnumName_EnumValue."""
- packed_struct: builtins.bool
- """Add 'packed' attribute to generated structs.
- Note: this cannot be used on CPUs that break on unaligned
- accesses to variables.
- """
- packed_enum: builtins.bool
- """Add 'packed' attribute to generated enums."""
- skip_message: builtins.bool
- """Skip this message"""
- no_unions: builtins.bool
- """Generate oneof fields as normal optional fields instead of union."""
- msgid: builtins.int
- """integer type tag for a message"""
- anonymous_oneof: builtins.bool
- """decode oneof as anonymous union"""
- proto3: builtins.bool
- """Proto3 singular field does not generate a "has_" flag"""
- proto3_singular_msgs: builtins.bool
- """Force proto3 messages to have no "has_" flag.
- This was default behavior until nanopb-0.4.0.
- """
- enum_to_string: builtins.bool
- """Generate an enum->string mapping function (can take up lots of space)."""
- fixed_length: builtins.bool
- """Generate bytes arrays with fixed length"""
- fixed_count: builtins.bool
- """Generate repeated field with fixed count"""
- submsg_callback: builtins.bool
- """Generate message-level callback that is called before decoding submessages.
- This can be used to set callback fields for submsgs inside oneofs.
- """
- mangle_names: global___TypenameMangling.ValueType
- """Shorten or remove package names from type names.
- This option applies only on the file level.
- """
- callback_datatype: builtins.str
- """Data type for storage associated with callback fields."""
- callback_function: builtins.str
- """Callback function used for encoding and decoding.
- Prior to nanopb-0.4.0, the callback was specified in per-field pb_callback_t
- structure. This is still supported, but does not work inside e.g. oneof or pointer
- fields. Instead, a new method allows specifying a per-message callback that
- will be called for all callback fields in a message type.
- """
- descriptorsize: global___DescriptorSize.ValueType
- """Select the size of field descriptors. This option has to be defined
- for the whole message, not per-field. Usually automatic selection is
- ok, but if it results in compilation errors you can increase the field
- size here.
- """
- default_has: builtins.bool
- """Set default value for has_ fields."""
- @property
- def include(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
- """Extra files to include in generated `.pb.h`"""
- @property
- def exclude(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
- """Automatic includes to exclude from generated `.pb.h`
- Same as nanopb_generator.py command line flag -x.
- """
- package: builtins.str
- """Package name that applies only for nanopb."""
- type_override: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType
- """Override type of the field in generated C code. Only to be used with related field types"""
- sort_by_tag: builtins.bool
- """Due to historical reasons, nanopb orders fields in structs by their tag number
- instead of the order in .proto. Set this to false to keep the .proto order.
- The default value will probably change to false in nanopb-0.5.0.
- """
- fallback_type: global___FieldType.ValueType
- """Set the FT_DEFAULT field conversion strategy.
- A field that can become a static member of a c struct (e.g. int, bool, etc)
- will be a a static field.
- Fields with dynamic length are converted to either a pointer or a callback.
- """
- def __init__(
- self,
- *,
- max_size: builtins.int | None = ...,
- max_length: builtins.int | None = ...,
- max_count: builtins.int | None = ...,
- int_size: global___IntSize.ValueType | None = ...,
- type: global___FieldType.ValueType | None = ...,
- long_names: builtins.bool | None = ...,
- packed_struct: builtins.bool | None = ...,
- packed_enum: builtins.bool | None = ...,
- skip_message: builtins.bool | None = ...,
- no_unions: builtins.bool | None = ...,
- msgid: builtins.int | None = ...,
- anonymous_oneof: builtins.bool | None = ...,
- proto3: builtins.bool | None = ...,
- proto3_singular_msgs: builtins.bool | None = ...,
- enum_to_string: builtins.bool | None = ...,
- fixed_length: builtins.bool | None = ...,
- fixed_count: builtins.bool | None = ...,
- submsg_callback: builtins.bool | None = ...,
- mangle_names: global___TypenameMangling.ValueType | None = ...,
- callback_datatype: builtins.str | None = ...,
- callback_function: builtins.str | None = ...,
- descriptorsize: global___DescriptorSize.ValueType | None = ...,
- default_has: builtins.bool | None = ...,
- include: collections.abc.Iterable[builtins.str] | None = ...,
- exclude: collections.abc.Iterable[builtins.str] | None = ...,
- package: builtins.str | None = ...,
- type_override: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ...,
- sort_by_tag: builtins.bool | None = ...,
- fallback_type: global___FieldType.ValueType | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["anonymous_oneof", b"anonymous_oneof", "callback_datatype", b"callback_datatype", "callback_function", b"callback_function", "default_has", b"default_has", "descriptorsize", b"descriptorsize", "enum_to_string", b"enum_to_string", "fallback_type", b"fallback_type", "fixed_count", b"fixed_count", "fixed_length", b"fixed_length", "int_size", b"int_size", "long_names", b"long_names", "mangle_names", b"mangle_names", "max_count", b"max_count", "max_length", b"max_length", "max_size", b"max_size", "msgid", b"msgid", "no_unions", b"no_unions", "package", b"package", "packed_enum", b"packed_enum", "packed_struct", b"packed_struct", "proto3", b"proto3", "proto3_singular_msgs", b"proto3_singular_msgs", "skip_message", b"skip_message", "sort_by_tag", b"sort_by_tag", "submsg_callback", b"submsg_callback", "type", b"type", "type_override", b"type_override"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["anonymous_oneof", b"anonymous_oneof", "callback_datatype", b"callback_datatype", "callback_function", b"callback_function", "default_has", b"default_has", "descriptorsize", b"descriptorsize", "enum_to_string", b"enum_to_string", "exclude", b"exclude", "fallback_type", b"fallback_type", "fixed_count", b"fixed_count", "fixed_length", b"fixed_length", "include", b"include", "int_size", b"int_size", "long_names", b"long_names", "mangle_names", b"mangle_names", "max_count", b"max_count", "max_length", b"max_length", "max_size", b"max_size", "msgid", b"msgid", "no_unions", b"no_unions", "package", b"package", "packed_enum", b"packed_enum", "packed_struct", b"packed_struct", "proto3", b"proto3", "proto3_singular_msgs", b"proto3_singular_msgs", "skip_message", b"skip_message", "sort_by_tag", b"sort_by_tag", "submsg_callback", b"submsg_callback", "type", b"type", "type_override", b"type_override"]) -> None: ...
-
-global___NanoPBOptions = NanoPBOptions
-
-NANOPB_FILEOPT_FIELD_NUMBER: builtins.int
-NANOPB_MSGOPT_FIELD_NUMBER: builtins.int
-NANOPB_ENUMOPT_FIELD_NUMBER: builtins.int
-NANOPB_FIELD_NUMBER: builtins.int
-nanopb_fileopt: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FileOptions, global___NanoPBOptions]
-nanopb_msgopt: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, global___NanoPBOptions]
-nanopb_enumopt: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.EnumOptions, global___NanoPBOptions]
-nanopb: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___NanoPBOptions]
diff --git a/meshtastic/paxcount_pb2.py b/meshtastic/paxcount_pb2.py
deleted file mode 100644
index 890258f..0000000
--- a/meshtastic/paxcount_pb2.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/paxcount.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19meshtastic/paxcount.proto\x12\nmeshtastic\"5\n\x08Paxcount\x12\x0c\n\x04wifi\x18\x01 \x01(\r\x12\x0b\n\x03\x62le\x18\x02 \x01(\r\x12\x0e\n\x06uptime\x18\x03 \x01(\rBc\n\x13\x63om.geeksville.meshB\x0ePaxcountProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.paxcount_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\016PaxcountProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _PAXCOUNT._serialized_start=41
- _PAXCOUNT._serialized_end=94
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/paxcount_pb2.pyi b/meshtastic/paxcount_pb2.pyi
deleted file mode 100644
index f4377a1..0000000
--- a/meshtastic/paxcount_pb2.pyi
+++ /dev/null
@@ -1,49 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class Paxcount(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- WIFI_FIELD_NUMBER: builtins.int
- BLE_FIELD_NUMBER: builtins.int
- UPTIME_FIELD_NUMBER: builtins.int
- wifi: builtins.int
- """
- seen Wifi devices
- """
- ble: builtins.int
- """
- Seen BLE devices
- """
- uptime: builtins.int
- """
- Uptime in seconds
- """
- def __init__(
- self,
- *,
- wifi: builtins.int = ...,
- ble: builtins.int = ...,
- uptime: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["ble", b"ble", "uptime", b"uptime", "wifi", b"wifi"]) -> None: ...
-
-global___Paxcount = Paxcount
diff --git a/meshtastic/portnums_pb2.py b/meshtastic/portnums_pb2.py
deleted file mode 100644
index 77b164a..0000000
--- a/meshtastic/portnums_pb2.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/portnums.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19meshtastic/portnums.proto\x12\nmeshtastic*\x8d\x04\n\x07PortNum\x12\x0f\n\x0bUNKNOWN_APP\x10\x00\x12\x14\n\x10TEXT_MESSAGE_APP\x10\x01\x12\x17\n\x13REMOTE_HARDWARE_APP\x10\x02\x12\x10\n\x0cPOSITION_APP\x10\x03\x12\x10\n\x0cNODEINFO_APP\x10\x04\x12\x0f\n\x0bROUTING_APP\x10\x05\x12\r\n\tADMIN_APP\x10\x06\x12\x1f\n\x1bTEXT_MESSAGE_COMPRESSED_APP\x10\x07\x12\x10\n\x0cWAYPOINT_APP\x10\x08\x12\r\n\tAUDIO_APP\x10\t\x12\x18\n\x14\x44\x45TECTION_SENSOR_APP\x10\n\x12\r\n\tREPLY_APP\x10 \x12\x11\n\rIP_TUNNEL_APP\x10!\x12\x12\n\x0ePAXCOUNTER_APP\x10\"\x12\x0e\n\nSERIAL_APP\x10@\x12\x15\n\x11STORE_FORWARD_APP\x10\x41\x12\x12\n\x0eRANGE_TEST_APP\x10\x42\x12\x11\n\rTELEMETRY_APP\x10\x43\x12\x0b\n\x07ZPS_APP\x10\x44\x12\x11\n\rSIMULATOR_APP\x10\x45\x12\x12\n\x0eTRACEROUTE_APP\x10\x46\x12\x14\n\x10NEIGHBORINFO_APP\x10G\x12\x0f\n\x0b\x41TAK_PLUGIN\x10H\x12\x12\n\x0eMAP_REPORT_APP\x10I\x12\x10\n\x0bPRIVATE_APP\x10\x80\x02\x12\x13\n\x0e\x41TAK_FORWARDER\x10\x81\x02\x12\x08\n\x03MAX\x10\xff\x03\x42]\n\x13\x63om.geeksville.meshB\x08PortnumsZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.portnums_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\010PortnumsZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _PORTNUM._serialized_start=42
- _PORTNUM._serialized_end=567
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/portnums_pb2.pyi b/meshtastic/portnums_pb2.pyi
deleted file mode 100644
index a546cfa..0000000
--- a/meshtastic/portnums_pb2.pyi
+++ /dev/null
@@ -1,369 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _PortNum:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _PortNumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PortNum.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNKNOWN_APP: _PortNum.ValueType # 0
- """
- Deprecated: do not use in new code (formerly called OPAQUE)
- A message sent from a device outside of the mesh, in a form the mesh does not understand
- NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
- ENCODING: binary undefined
- """
- TEXT_MESSAGE_APP: _PortNum.ValueType # 1
- """
- A simple UTF-8 text message, which even the little micros in the mesh
- can understand and show on their screen eventually in some circumstances
- even signal might send messages in this form (see below)
- ENCODING: UTF-8 Plaintext (?)
- """
- REMOTE_HARDWARE_APP: _PortNum.ValueType # 2
- """
- Reserved for built-in GPIO/example app.
- See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
- ENCODING: Protobuf
- """
- POSITION_APP: _PortNum.ValueType # 3
- """
- The built-in position messaging app.
- Payload is a Position message.
- ENCODING: Protobuf
- """
- NODEINFO_APP: _PortNum.ValueType # 4
- """
- The built-in user info app.
- Payload is a User message.
- ENCODING: Protobuf
- """
- ROUTING_APP: _PortNum.ValueType # 5
- """
- Protocol control packets for mesh protocol use.
- Payload is a Routing message.
- ENCODING: Protobuf
- """
- ADMIN_APP: _PortNum.ValueType # 6
- """
- Admin control packets.
- Payload is a AdminMessage message.
- ENCODING: Protobuf
- """
- TEXT_MESSAGE_COMPRESSED_APP: _PortNum.ValueType # 7
- """
- Compressed TEXT_MESSAGE payloads.
- ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
- NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
- payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
- any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
- """
- WAYPOINT_APP: _PortNum.ValueType # 8
- """
- Waypoint payloads.
- Payload is a Waypoint message.
- ENCODING: Protobuf
- """
- AUDIO_APP: _PortNum.ValueType # 9
- """
- Audio Payloads.
- Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
- ENCODING: codec2 audio frames
- NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
- This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
- """
- DETECTION_SENSOR_APP: _PortNum.ValueType # 10
- """
- Same as Text Message but originating from Detection Sensor Module.
- NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
- """
- REPLY_APP: _PortNum.ValueType # 32
- """
- Provides a 'ping' service that replies to any packet it receives.
- Also serves as a small example module.
- ENCODING: ASCII Plaintext
- """
- IP_TUNNEL_APP: _PortNum.ValueType # 33
- """
- Used for the python IP tunnel feature
- ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
- """
- PAXCOUNTER_APP: _PortNum.ValueType # 34
- """
- Paxcounter lib included in the firmware
- ENCODING: protobuf
- """
- SERIAL_APP: _PortNum.ValueType # 64
- """
- Provides a hardware serial interface to send and receive from the Meshtastic network.
- Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
- network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
- Maximum packet size of 240 bytes.
- Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
- ENCODING: binary undefined
- """
- STORE_FORWARD_APP: _PortNum.ValueType # 65
- """
- STORE_FORWARD_APP (Work in Progress)
- Maintained by Jm Casler (MC Hamster) : jm@casler.org
- ENCODING: Protobuf
- """
- RANGE_TEST_APP: _PortNum.ValueType # 66
- """
- Optional port for messages for the range test module.
- ENCODING: ASCII Plaintext
- NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
- """
- TELEMETRY_APP: _PortNum.ValueType # 67
- """
- Provides a format to send and receive telemetry data from the Meshtastic network.
- Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
- ENCODING: Protobuf
- """
- ZPS_APP: _PortNum.ValueType # 68
- """
- Experimental tools for estimating node position without a GPS
- Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
- Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
- ENCODING: arrays of int64 fields
- """
- SIMULATOR_APP: _PortNum.ValueType # 69
- """
- Used to let multiple instances of Linux native applications communicate
- as if they did using their LoRa chip.
- Maintained by GitHub user GUVWAF.
- Project files at https://github.com/GUVWAF/Meshtasticator
- ENCODING: Protobuf (?)
- """
- TRACEROUTE_APP: _PortNum.ValueType # 70
- """
- Provides a traceroute functionality to show the route a packet towards
- a certain destination would take on the mesh.
- ENCODING: Protobuf
- """
- NEIGHBORINFO_APP: _PortNum.ValueType # 71
- """
- Aggregates edge info for the network by sending out a list of each node's neighbors
- ENCODING: Protobuf
- """
- ATAK_PLUGIN: _PortNum.ValueType # 72
- """
- ATAK Plugin
- Portnum for payloads from the official Meshtastic ATAK plugin
- """
- MAP_REPORT_APP: _PortNum.ValueType # 73
- """
- Provides unencrypted information about a node for consumption by a map via MQTT
- """
- PRIVATE_APP: _PortNum.ValueType # 256
- """
- Private applications should use portnums >= 256.
- To simplify initial development and testing you can use "PRIVATE_APP"
- in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh))
- """
- ATAK_FORWARDER: _PortNum.ValueType # 257
- """
- ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
- ENCODING: libcotshrink
- """
- MAX: _PortNum.ValueType # 511
- """
- Currently we limit port nums to no higher than this value
- """
-
-class PortNum(_PortNum, metaclass=_PortNumEnumTypeWrapper):
- """
- For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
- unique 'portnum' for their application.
- If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
- master table.
- PortNums should be assigned in the following range:
- 0-63 Core Meshtastic use, do not use for third party apps
- 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application
- 256-511 Use one of these portnums for your private applications that you don't want to register publically
- All other values are reserved.
- Note: This was formerly a Type enum named 'typ' with the same id #
- We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
- This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
- """
-
-UNKNOWN_APP: PortNum.ValueType # 0
-"""
-Deprecated: do not use in new code (formerly called OPAQUE)
-A message sent from a device outside of the mesh, in a form the mesh does not understand
-NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
-ENCODING: binary undefined
-"""
-TEXT_MESSAGE_APP: PortNum.ValueType # 1
-"""
-A simple UTF-8 text message, which even the little micros in the mesh
-can understand and show on their screen eventually in some circumstances
-even signal might send messages in this form (see below)
-ENCODING: UTF-8 Plaintext (?)
-"""
-REMOTE_HARDWARE_APP: PortNum.ValueType # 2
-"""
-Reserved for built-in GPIO/example app.
-See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
-ENCODING: Protobuf
-"""
-POSITION_APP: PortNum.ValueType # 3
-"""
-The built-in position messaging app.
-Payload is a Position message.
-ENCODING: Protobuf
-"""
-NODEINFO_APP: PortNum.ValueType # 4
-"""
-The built-in user info app.
-Payload is a User message.
-ENCODING: Protobuf
-"""
-ROUTING_APP: PortNum.ValueType # 5
-"""
-Protocol control packets for mesh protocol use.
-Payload is a Routing message.
-ENCODING: Protobuf
-"""
-ADMIN_APP: PortNum.ValueType # 6
-"""
-Admin control packets.
-Payload is a AdminMessage message.
-ENCODING: Protobuf
-"""
-TEXT_MESSAGE_COMPRESSED_APP: PortNum.ValueType # 7
-"""
-Compressed TEXT_MESSAGE payloads.
-ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
-NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
-payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
-any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
-"""
-WAYPOINT_APP: PortNum.ValueType # 8
-"""
-Waypoint payloads.
-Payload is a Waypoint message.
-ENCODING: Protobuf
-"""
-AUDIO_APP: PortNum.ValueType # 9
-"""
-Audio Payloads.
-Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
-ENCODING: codec2 audio frames
-NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
-This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
-"""
-DETECTION_SENSOR_APP: PortNum.ValueType # 10
-"""
-Same as Text Message but originating from Detection Sensor Module.
-NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
-"""
-REPLY_APP: PortNum.ValueType # 32
-"""
-Provides a 'ping' service that replies to any packet it receives.
-Also serves as a small example module.
-ENCODING: ASCII Plaintext
-"""
-IP_TUNNEL_APP: PortNum.ValueType # 33
-"""
-Used for the python IP tunnel feature
-ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
-"""
-PAXCOUNTER_APP: PortNum.ValueType # 34
-"""
-Paxcounter lib included in the firmware
-ENCODING: protobuf
-"""
-SERIAL_APP: PortNum.ValueType # 64
-"""
-Provides a hardware serial interface to send and receive from the Meshtastic network.
-Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
-network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
-Maximum packet size of 240 bytes.
-Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
-ENCODING: binary undefined
-"""
-STORE_FORWARD_APP: PortNum.ValueType # 65
-"""
-STORE_FORWARD_APP (Work in Progress)
-Maintained by Jm Casler (MC Hamster) : jm@casler.org
-ENCODING: Protobuf
-"""
-RANGE_TEST_APP: PortNum.ValueType # 66
-"""
-Optional port for messages for the range test module.
-ENCODING: ASCII Plaintext
-NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
-"""
-TELEMETRY_APP: PortNum.ValueType # 67
-"""
-Provides a format to send and receive telemetry data from the Meshtastic network.
-Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
-ENCODING: Protobuf
-"""
-ZPS_APP: PortNum.ValueType # 68
-"""
-Experimental tools for estimating node position without a GPS
-Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
-Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
-ENCODING: arrays of int64 fields
-"""
-SIMULATOR_APP: PortNum.ValueType # 69
-"""
-Used to let multiple instances of Linux native applications communicate
-as if they did using their LoRa chip.
-Maintained by GitHub user GUVWAF.
-Project files at https://github.com/GUVWAF/Meshtasticator
-ENCODING: Protobuf (?)
-"""
-TRACEROUTE_APP: PortNum.ValueType # 70
-"""
-Provides a traceroute functionality to show the route a packet towards
-a certain destination would take on the mesh.
-ENCODING: Protobuf
-"""
-NEIGHBORINFO_APP: PortNum.ValueType # 71
-"""
-Aggregates edge info for the network by sending out a list of each node's neighbors
-ENCODING: Protobuf
-"""
-ATAK_PLUGIN: PortNum.ValueType # 72
-"""
-ATAK Plugin
-Portnum for payloads from the official Meshtastic ATAK plugin
-"""
-MAP_REPORT_APP: PortNum.ValueType # 73
-"""
-Provides unencrypted information about a node for consumption by a map via MQTT
-"""
-PRIVATE_APP: PortNum.ValueType # 256
-"""
-Private applications should use portnums >= 256.
-To simplify initial development and testing you can use "PRIVATE_APP"
-in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh))
-"""
-ATAK_FORWARDER: PortNum.ValueType # 257
-"""
-ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
-ENCODING: libcotshrink
-"""
-MAX: PortNum.ValueType # 511
-"""
-Currently we limit port nums to no higher than this value
-"""
-global___PortNum = PortNum
diff --git a/meshtastic/remote_hardware_pb2.py b/meshtastic/remote_hardware_pb2.py
deleted file mode 100644
index c1365ff..0000000
--- a/meshtastic/remote_hardware_pb2.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/remote_hardware.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtastic/remote_hardware.proto\x12\nmeshtastic\"\xd6\x01\n\x0fHardwareMessage\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .meshtastic.HardwareMessage.Type\x12\x11\n\tgpio_mask\x18\x02 \x01(\x04\x12\x12\n\ngpio_value\x18\x03 \x01(\x04\"l\n\x04Type\x12\t\n\x05UNSET\x10\x00\x12\x0f\n\x0bWRITE_GPIOS\x10\x01\x12\x0f\n\x0bWATCH_GPIOS\x10\x02\x12\x11\n\rGPIOS_CHANGED\x10\x03\x12\x0e\n\nREAD_GPIOS\x10\x04\x12\x14\n\x10READ_GPIOS_REPLY\x10\x05\x42\x63\n\x13\x63om.geeksville.meshB\x0eRemoteHardwareZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.remote_hardware_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\016RemoteHardwareZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _HARDWAREMESSAGE._serialized_start=49
- _HARDWAREMESSAGE._serialized_end=263
- _HARDWAREMESSAGE_TYPE._serialized_start=155
- _HARDWAREMESSAGE_TYPE._serialized_end=263
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/remote_hardware_pb2.pyi b/meshtastic/remote_hardware_pb2.pyi
deleted file mode 100644
index ff4fd83..0000000
--- a/meshtastic/remote_hardware_pb2.pyi
+++ /dev/null
@@ -1,125 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class HardwareMessage(google.protobuf.message.Message):
- """
- An example app to show off the module system. This message is used for
- REMOTE_HARDWARE_APP PortNums.
- Also provides easy remote access to any GPIO.
- In the future other remote hardware operations can be added based on user interest
- (i.e. serial output, spi/i2c input/output).
- FIXME - currently this feature is turned on by default which is dangerous
- because no security yet (beyond the channel mechanism).
- It should be off by default and then protected based on some TBD mechanism
- (a special channel once multichannel support is included?)
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Type:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HardwareMessage._Type.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: HardwareMessage._Type.ValueType # 0
- """
- Unset/unused
- """
- WRITE_GPIOS: HardwareMessage._Type.ValueType # 1
- """
- Set gpio gpios based on gpio_mask/gpio_value
- """
- WATCH_GPIOS: HardwareMessage._Type.ValueType # 2
- """
- We are now interested in watching the gpio_mask gpios.
- If the selected gpios change, please broadcast GPIOS_CHANGED.
- Will implicitly change the gpios requested to be INPUT gpios.
- """
- GPIOS_CHANGED: HardwareMessage._Type.ValueType # 3
- """
- The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
- """
- READ_GPIOS: HardwareMessage._Type.ValueType # 4
- """
- Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
- """
- READ_GPIOS_REPLY: HardwareMessage._Type.ValueType # 5
- """
- A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
- """
-
- class Type(_Type, metaclass=_TypeEnumTypeWrapper):
- """
- TODO: REPLACE
- """
-
- UNSET: HardwareMessage.Type.ValueType # 0
- """
- Unset/unused
- """
- WRITE_GPIOS: HardwareMessage.Type.ValueType # 1
- """
- Set gpio gpios based on gpio_mask/gpio_value
- """
- WATCH_GPIOS: HardwareMessage.Type.ValueType # 2
- """
- We are now interested in watching the gpio_mask gpios.
- If the selected gpios change, please broadcast GPIOS_CHANGED.
- Will implicitly change the gpios requested to be INPUT gpios.
- """
- GPIOS_CHANGED: HardwareMessage.Type.ValueType # 3
- """
- The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
- """
- READ_GPIOS: HardwareMessage.Type.ValueType # 4
- """
- Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
- """
- READ_GPIOS_REPLY: HardwareMessage.Type.ValueType # 5
- """
- A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
- """
-
- TYPE_FIELD_NUMBER: builtins.int
- GPIO_MASK_FIELD_NUMBER: builtins.int
- GPIO_VALUE_FIELD_NUMBER: builtins.int
- type: global___HardwareMessage.Type.ValueType
- """
- What type of HardwareMessage is this?
- """
- gpio_mask: builtins.int
- """
- What gpios are we changing. Not used for all MessageTypes, see MessageType for details
- """
- gpio_value: builtins.int
- """
- For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios.
- Not used for all MessageTypes, see MessageType for details
- """
- def __init__(
- self,
- *,
- type: global___HardwareMessage.Type.ValueType = ...,
- gpio_mask: builtins.int = ...,
- gpio_value: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["gpio_mask", b"gpio_mask", "gpio_value", b"gpio_value", "type", b"type"]) -> None: ...
-
-global___HardwareMessage = HardwareMessage
diff --git a/meshtastic/rtttl_pb2.py b/meshtastic/rtttl_pb2.py
deleted file mode 100644
index a69b868..0000000
--- a/meshtastic/rtttl_pb2.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/rtttl.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16meshtastic/rtttl.proto\x12\nmeshtastic\"\x1f\n\x0bRTTTLConfig\x12\x10\n\x08ringtone\x18\x01 \x01(\tBf\n\x13\x63om.geeksville.meshB\x11RTTTLConfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.rtttl_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\021RTTTLConfigProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _RTTTLCONFIG._serialized_start=38
- _RTTTLCONFIG._serialized_end=69
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/rtttl_pb2.pyi b/meshtastic/rtttl_pb2.pyi
deleted file mode 100644
index ddf8591..0000000
--- a/meshtastic/rtttl_pb2.pyi
+++ /dev/null
@@ -1,37 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.message
-import sys
-
-if sys.version_info >= (3, 8):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class RTTTLConfig(google.protobuf.message.Message):
- """
- Canned message module configuration.
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- RINGTONE_FIELD_NUMBER: builtins.int
- ringtone: builtins.str
- """
- Ringtone for PWM Buzzer in RTTTL Format.
- """
- def __init__(
- self,
- *,
- ringtone: builtins.str = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["ringtone", b"ringtone"]) -> None: ...
-
-global___RTTTLConfig = RTTTLConfig
diff --git a/meshtastic/storeforward_pb2.py b/meshtastic/storeforward_pb2.py
deleted file mode 100644
index b81fd73..0000000
--- a/meshtastic/storeforward_pb2.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/storeforward.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dmeshtastic/storeforward.proto\x12\nmeshtastic\"\x9c\x07\n\x0fStoreAndForward\x12\x37\n\x02rr\x18\x01 \x01(\x0e\x32+.meshtastic.StoreAndForward.RequestResponse\x12\x37\n\x05stats\x18\x02 \x01(\x0b\x32&.meshtastic.StoreAndForward.StatisticsH\x00\x12\x36\n\x07history\x18\x03 \x01(\x0b\x32#.meshtastic.StoreAndForward.HistoryH\x00\x12:\n\theartbeat\x18\x04 \x01(\x0b\x32%.meshtastic.StoreAndForward.HeartbeatH\x00\x12\x0e\n\x04text\x18\x05 \x01(\x0cH\x00\x1a\xcd\x01\n\nStatistics\x12\x16\n\x0emessages_total\x18\x01 \x01(\r\x12\x16\n\x0emessages_saved\x18\x02 \x01(\r\x12\x14\n\x0cmessages_max\x18\x03 \x01(\r\x12\x0f\n\x07up_time\x18\x04 \x01(\r\x12\x10\n\x08requests\x18\x05 \x01(\r\x12\x18\n\x10requests_history\x18\x06 \x01(\r\x12\x11\n\theartbeat\x18\x07 \x01(\x08\x12\x12\n\nreturn_max\x18\x08 \x01(\r\x12\x15\n\rreturn_window\x18\t \x01(\r\x1aI\n\x07History\x12\x18\n\x10history_messages\x18\x01 \x01(\r\x12\x0e\n\x06window\x18\x02 \x01(\r\x12\x14\n\x0clast_request\x18\x03 \x01(\r\x1a.\n\tHeartbeat\x12\x0e\n\x06period\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\"\xbc\x02\n\x0fRequestResponse\x12\t\n\x05UNSET\x10\x00\x12\x10\n\x0cROUTER_ERROR\x10\x01\x12\x14\n\x10ROUTER_HEARTBEAT\x10\x02\x12\x0f\n\x0bROUTER_PING\x10\x03\x12\x0f\n\x0bROUTER_PONG\x10\x04\x12\x0f\n\x0bROUTER_BUSY\x10\x05\x12\x12\n\x0eROUTER_HISTORY\x10\x06\x12\x10\n\x0cROUTER_STATS\x10\x07\x12\x16\n\x12ROUTER_TEXT_DIRECT\x10\x08\x12\x19\n\x15ROUTER_TEXT_BROADCAST\x10\t\x12\x10\n\x0c\x43LIENT_ERROR\x10@\x12\x12\n\x0e\x43LIENT_HISTORY\x10\x41\x12\x10\n\x0c\x43LIENT_STATS\x10\x42\x12\x0f\n\x0b\x43LIENT_PING\x10\x43\x12\x0f\n\x0b\x43LIENT_PONG\x10\x44\x12\x10\n\x0c\x43LIENT_ABORT\x10jB\t\n\x07variantBj\n\x13\x63om.geeksville.meshB\x15StoreAndForwardProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.storeforward_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\025StoreAndForwardProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _STOREANDFORWARD._serialized_start=46
- _STOREANDFORWARD._serialized_end=970
- _STOREANDFORWARD_STATISTICS._serialized_start=312
- _STOREANDFORWARD_STATISTICS._serialized_end=517
- _STOREANDFORWARD_HISTORY._serialized_start=519
- _STOREANDFORWARD_HISTORY._serialized_end=592
- _STOREANDFORWARD_HEARTBEAT._serialized_start=594
- _STOREANDFORWARD_HEARTBEAT._serialized_end=640
- _STOREANDFORWARD_REQUESTRESPONSE._serialized_start=643
- _STOREANDFORWARD_REQUESTRESPONSE._serialized_end=959
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/storeforward_pb2.pyi b/meshtastic/storeforward_pb2.pyi
deleted file mode 100644
index cd2d751..0000000
--- a/meshtastic/storeforward_pb2.pyi
+++ /dev/null
@@ -1,341 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class StoreAndForward(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _RequestResponse:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _RequestResponseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StoreAndForward._RequestResponse.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- UNSET: StoreAndForward._RequestResponse.ValueType # 0
- """
- Unset/unused
- """
- ROUTER_ERROR: StoreAndForward._RequestResponse.ValueType # 1
- """
- Router is an in error state.
- """
- ROUTER_HEARTBEAT: StoreAndForward._RequestResponse.ValueType # 2
- """
- Router heartbeat
- """
- ROUTER_PING: StoreAndForward._RequestResponse.ValueType # 3
- """
- Router has requested the client respond. This can work as a
- "are you there" message.
- """
- ROUTER_PONG: StoreAndForward._RequestResponse.ValueType # 4
- """
- The response to a "Ping"
- """
- ROUTER_BUSY: StoreAndForward._RequestResponse.ValueType # 5
- """
- Router is currently busy. Please try again later.
- """
- ROUTER_HISTORY: StoreAndForward._RequestResponse.ValueType # 6
- """
- Router is responding to a request for history.
- """
- ROUTER_STATS: StoreAndForward._RequestResponse.ValueType # 7
- """
- Router is responding to a request for stats.
- """
- ROUTER_TEXT_DIRECT: StoreAndForward._RequestResponse.ValueType # 8
- """
- Router sends a text message from its history that was a direct message.
- """
- ROUTER_TEXT_BROADCAST: StoreAndForward._RequestResponse.ValueType # 9
- """
- Router sends a text message from its history that was a broadcast.
- """
- CLIENT_ERROR: StoreAndForward._RequestResponse.ValueType # 64
- """
- Client is an in error state.
- """
- CLIENT_HISTORY: StoreAndForward._RequestResponse.ValueType # 65
- """
- Client has requested a replay from the router.
- """
- CLIENT_STATS: StoreAndForward._RequestResponse.ValueType # 66
- """
- Client has requested stats from the router.
- """
- CLIENT_PING: StoreAndForward._RequestResponse.ValueType # 67
- """
- Client has requested the router respond. This can work as a
- "are you there" message.
- """
- CLIENT_PONG: StoreAndForward._RequestResponse.ValueType # 68
- """
- The response to a "Ping"
- """
- CLIENT_ABORT: StoreAndForward._RequestResponse.ValueType # 106
- """
- Client has requested that the router abort processing the client's request
- """
-
- class RequestResponse(_RequestResponse, metaclass=_RequestResponseEnumTypeWrapper):
- """
- 001 - 063 = From Router
- 064 - 127 = From Client
- """
-
- UNSET: StoreAndForward.RequestResponse.ValueType # 0
- """
- Unset/unused
- """
- ROUTER_ERROR: StoreAndForward.RequestResponse.ValueType # 1
- """
- Router is an in error state.
- """
- ROUTER_HEARTBEAT: StoreAndForward.RequestResponse.ValueType # 2
- """
- Router heartbeat
- """
- ROUTER_PING: StoreAndForward.RequestResponse.ValueType # 3
- """
- Router has requested the client respond. This can work as a
- "are you there" message.
- """
- ROUTER_PONG: StoreAndForward.RequestResponse.ValueType # 4
- """
- The response to a "Ping"
- """
- ROUTER_BUSY: StoreAndForward.RequestResponse.ValueType # 5
- """
- Router is currently busy. Please try again later.
- """
- ROUTER_HISTORY: StoreAndForward.RequestResponse.ValueType # 6
- """
- Router is responding to a request for history.
- """
- ROUTER_STATS: StoreAndForward.RequestResponse.ValueType # 7
- """
- Router is responding to a request for stats.
- """
- ROUTER_TEXT_DIRECT: StoreAndForward.RequestResponse.ValueType # 8
- """
- Router sends a text message from its history that was a direct message.
- """
- ROUTER_TEXT_BROADCAST: StoreAndForward.RequestResponse.ValueType # 9
- """
- Router sends a text message from its history that was a broadcast.
- """
- CLIENT_ERROR: StoreAndForward.RequestResponse.ValueType # 64
- """
- Client is an in error state.
- """
- CLIENT_HISTORY: StoreAndForward.RequestResponse.ValueType # 65
- """
- Client has requested a replay from the router.
- """
- CLIENT_STATS: StoreAndForward.RequestResponse.ValueType # 66
- """
- Client has requested stats from the router.
- """
- CLIENT_PING: StoreAndForward.RequestResponse.ValueType # 67
- """
- Client has requested the router respond. This can work as a
- "are you there" message.
- """
- CLIENT_PONG: StoreAndForward.RequestResponse.ValueType # 68
- """
- The response to a "Ping"
- """
- CLIENT_ABORT: StoreAndForward.RequestResponse.ValueType # 106
- """
- Client has requested that the router abort processing the client's request
- """
-
- @typing_extensions.final
- class Statistics(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- MESSAGES_TOTAL_FIELD_NUMBER: builtins.int
- MESSAGES_SAVED_FIELD_NUMBER: builtins.int
- MESSAGES_MAX_FIELD_NUMBER: builtins.int
- UP_TIME_FIELD_NUMBER: builtins.int
- REQUESTS_FIELD_NUMBER: builtins.int
- REQUESTS_HISTORY_FIELD_NUMBER: builtins.int
- HEARTBEAT_FIELD_NUMBER: builtins.int
- RETURN_MAX_FIELD_NUMBER: builtins.int
- RETURN_WINDOW_FIELD_NUMBER: builtins.int
- messages_total: builtins.int
- """
- Number of messages we have ever seen
- """
- messages_saved: builtins.int
- """
- Number of messages we have currently saved our history.
- """
- messages_max: builtins.int
- """
- Maximum number of messages we will save
- """
- up_time: builtins.int
- """
- Router uptime in seconds
- """
- requests: builtins.int
- """
- Number of times any client sent a request to the S&F.
- """
- requests_history: builtins.int
- """
- Number of times the history was requested.
- """
- heartbeat: builtins.bool
- """
- Is the heartbeat enabled on the server?
- """
- return_max: builtins.int
- """
- Maximum number of messages the server will return.
- """
- return_window: builtins.int
- """
- Maximum history window in minutes the server will return messages from.
- """
- def __init__(
- self,
- *,
- messages_total: builtins.int = ...,
- messages_saved: builtins.int = ...,
- messages_max: builtins.int = ...,
- up_time: builtins.int = ...,
- requests: builtins.int = ...,
- requests_history: builtins.int = ...,
- heartbeat: builtins.bool = ...,
- return_max: builtins.int = ...,
- return_window: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["heartbeat", b"heartbeat", "messages_max", b"messages_max", "messages_saved", b"messages_saved", "messages_total", b"messages_total", "requests", b"requests", "requests_history", b"requests_history", "return_max", b"return_max", "return_window", b"return_window", "up_time", b"up_time"]) -> None: ...
-
- @typing_extensions.final
- class History(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- HISTORY_MESSAGES_FIELD_NUMBER: builtins.int
- WINDOW_FIELD_NUMBER: builtins.int
- LAST_REQUEST_FIELD_NUMBER: builtins.int
- history_messages: builtins.int
- """
- Number of that will be sent to the client
- """
- window: builtins.int
- """
- The window of messages that was used to filter the history client requested
- """
- last_request: builtins.int
- """
- Index in the packet history of the last message sent in a previous request to the server.
- Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client.
- """
- def __init__(
- self,
- *,
- history_messages: builtins.int = ...,
- window: builtins.int = ...,
- last_request: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["history_messages", b"history_messages", "last_request", b"last_request", "window", b"window"]) -> None: ...
-
- @typing_extensions.final
- class Heartbeat(google.protobuf.message.Message):
- """
- TODO: REPLACE
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PERIOD_FIELD_NUMBER: builtins.int
- SECONDARY_FIELD_NUMBER: builtins.int
- period: builtins.int
- """
- Period in seconds that the heartbeat is sent out that will be sent to the client
- """
- secondary: builtins.int
- """
- If set, this is not the primary Store & Forward router on the mesh
- """
- def __init__(
- self,
- *,
- period: builtins.int = ...,
- secondary: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["period", b"period", "secondary", b"secondary"]) -> None: ...
-
- RR_FIELD_NUMBER: builtins.int
- STATS_FIELD_NUMBER: builtins.int
- HISTORY_FIELD_NUMBER: builtins.int
- HEARTBEAT_FIELD_NUMBER: builtins.int
- TEXT_FIELD_NUMBER: builtins.int
- rr: global___StoreAndForward.RequestResponse.ValueType
- """
- TODO: REPLACE
- """
- @property
- def stats(self) -> global___StoreAndForward.Statistics:
- """
- TODO: REPLACE
- """
- @property
- def history(self) -> global___StoreAndForward.History:
- """
- TODO: REPLACE
- """
- @property
- def heartbeat(self) -> global___StoreAndForward.Heartbeat:
- """
- TODO: REPLACE
- """
- text: builtins.bytes
- """
- Text from history message.
- """
- def __init__(
- self,
- *,
- rr: global___StoreAndForward.RequestResponse.ValueType = ...,
- stats: global___StoreAndForward.Statistics | None = ...,
- history: global___StoreAndForward.History | None = ...,
- heartbeat: global___StoreAndForward.Heartbeat | None = ...,
- text: builtins.bytes = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["heartbeat", b"heartbeat", "history", b"history", "stats", b"stats", "text", b"text", "variant", b"variant"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["heartbeat", b"heartbeat", "history", b"history", "rr", b"rr", "stats", b"stats", "text", b"text", "variant", b"variant"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["stats", "history", "heartbeat", "text"] | None: ...
-
-global___StoreAndForward = StoreAndForward
diff --git a/meshtastic/telemetry_pb2.py b/meshtastic/telemetry_pb2.py
deleted file mode 100644
index b3c16e8..0000000
--- a/meshtastic/telemetry_pb2.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/telemetry.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ameshtastic/telemetry.proto\x12\nmeshtastic\"\x81\x01\n\rDeviceMetrics\x12\x15\n\rbattery_level\x18\x01 \x01(\r\x12\x0f\n\x07voltage\x18\x02 \x01(\x02\x12\x1b\n\x13\x63hannel_utilization\x18\x03 \x01(\x02\x12\x13\n\x0b\x61ir_util_tx\x18\x04 \x01(\x02\x12\x16\n\x0euptime_seconds\x18\x05 \x01(\r\"\xa6\x02\n\x12\x45nvironmentMetrics\x12\x13\n\x0btemperature\x18\x01 \x01(\x02\x12\x19\n\x11relative_humidity\x18\x02 \x01(\x02\x12\x1b\n\x13\x62\x61rometric_pressure\x18\x03 \x01(\x02\x12\x16\n\x0egas_resistance\x18\x04 \x01(\x02\x12\x0f\n\x07voltage\x18\x05 \x01(\x02\x12\x0f\n\x07\x63urrent\x18\x06 \x01(\x02\x12\x0b\n\x03iaq\x18\x07 \x01(\r\x12\x10\n\x08\x64istance\x18\x08 \x01(\x02\x12\x0b\n\x03lux\x18\t \x01(\x02\x12\x11\n\twhite_lux\x18\n \x01(\x02\x12\x0e\n\x06ir_lux\x18\x0b \x01(\x02\x12\x0e\n\x06uv_lux\x18\x0c \x01(\x02\x12\x16\n\x0ewind_direction\x18\r \x01(\r\x12\x12\n\nwind_speed\x18\x0e \x01(\x02\"\x8c\x01\n\x0cPowerMetrics\x12\x13\n\x0b\x63h1_voltage\x18\x01 \x01(\x02\x12\x13\n\x0b\x63h1_current\x18\x02 \x01(\x02\x12\x13\n\x0b\x63h2_voltage\x18\x03 \x01(\x02\x12\x13\n\x0b\x63h2_current\x18\x04 \x01(\x02\x12\x13\n\x0b\x63h3_voltage\x18\x05 \x01(\x02\x12\x13\n\x0b\x63h3_current\x18\x06 \x01(\x02\"\xbf\x02\n\x11\x41irQualityMetrics\x12\x15\n\rpm10_standard\x18\x01 \x01(\r\x12\x15\n\rpm25_standard\x18\x02 \x01(\r\x12\x16\n\x0epm100_standard\x18\x03 \x01(\r\x12\x1a\n\x12pm10_environmental\x18\x04 \x01(\r\x12\x1a\n\x12pm25_environmental\x18\x05 \x01(\r\x12\x1b\n\x13pm100_environmental\x18\x06 \x01(\r\x12\x16\n\x0eparticles_03um\x18\x07 \x01(\r\x12\x16\n\x0eparticles_05um\x18\x08 \x01(\r\x12\x16\n\x0eparticles_10um\x18\t \x01(\r\x12\x16\n\x0eparticles_25um\x18\n \x01(\r\x12\x16\n\x0eparticles_50um\x18\x0b \x01(\r\x12\x17\n\x0fparticles_100um\x18\x0c \x01(\r\"\x89\x02\n\tTelemetry\x12\x0c\n\x04time\x18\x01 \x01(\x07\x12\x33\n\x0e\x64\x65vice_metrics\x18\x02 \x01(\x0b\x32\x19.meshtastic.DeviceMetricsH\x00\x12=\n\x13\x65nvironment_metrics\x18\x03 \x01(\x0b\x32\x1e.meshtastic.EnvironmentMetricsH\x00\x12<\n\x13\x61ir_quality_metrics\x18\x04 \x01(\x0b\x32\x1d.meshtastic.AirQualityMetricsH\x00\x12\x31\n\rpower_metrics\x18\x05 \x01(\x0b\x32\x18.meshtastic.PowerMetricsH\x00\x42\t\n\x07variant*\xdd\x02\n\x13TelemetrySensorType\x12\x10\n\x0cSENSOR_UNSET\x10\x00\x12\n\n\x06\x42ME280\x10\x01\x12\n\n\x06\x42ME680\x10\x02\x12\x0b\n\x07MCP9808\x10\x03\x12\n\n\x06INA260\x10\x04\x12\n\n\x06INA219\x10\x05\x12\n\n\x06\x42MP280\x10\x06\x12\t\n\x05SHTC3\x10\x07\x12\t\n\x05LPS22\x10\x08\x12\x0b\n\x07QMC6310\x10\t\x12\x0b\n\x07QMI8658\x10\n\x12\x0c\n\x08QMC5883L\x10\x0b\x12\t\n\x05SHT31\x10\x0c\x12\x0c\n\x08PMSA003I\x10\r\x12\x0b\n\x07INA3221\x10\x0e\x12\n\n\x06\x42MP085\x10\x0f\x12\x0c\n\x08RCWL9620\x10\x10\x12\t\n\x05SHT4X\x10\x11\x12\x0c\n\x08VEML7700\x10\x12\x12\x0c\n\x08MLX90632\x10\x13\x12\x0b\n\x07OPT3001\x10\x14\x12\x0c\n\x08LTR390UV\x10\x15\x12\x0e\n\nTSL25911FN\x10\x16\x12\t\n\x05\x41HT10\x10\x17\x12\x10\n\x0c\x44\x46ROBOT_LARK\x10\x18\x42\x64\n\x13\x63om.geeksville.meshB\x0fTelemetryProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.telemetry_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\017TelemetryProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _TELEMETRYSENSORTYPE._serialized_start=1205
- _TELEMETRYSENSORTYPE._serialized_end=1554
- _DEVICEMETRICS._serialized_start=43
- _DEVICEMETRICS._serialized_end=172
- _ENVIRONMENTMETRICS._serialized_start=175
- _ENVIRONMENTMETRICS._serialized_end=469
- _POWERMETRICS._serialized_start=472
- _POWERMETRICS._serialized_end=612
- _AIRQUALITYMETRICS._serialized_start=615
- _AIRQUALITYMETRICS._serialized_end=934
- _TELEMETRY._serialized_start=937
- _TELEMETRY._serialized_end=1202
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/telemetry_pb2.pyi b/meshtastic/telemetry_pb2.pyi
deleted file mode 100644
index 552d51b..0000000
--- a/meshtastic/telemetry_pb2.pyi
+++ /dev/null
@@ -1,571 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-class _TelemetrySensorType:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class _TelemetrySensorTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TelemetrySensorType.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- SENSOR_UNSET: _TelemetrySensorType.ValueType # 0
- """
- No external telemetry sensor explicitly set
- """
- BME280: _TelemetrySensorType.ValueType # 1
- """
- High accuracy temperature, pressure, humidity
- """
- BME680: _TelemetrySensorType.ValueType # 2
- """
- High accuracy temperature, pressure, humidity, and air resistance
- """
- MCP9808: _TelemetrySensorType.ValueType # 3
- """
- Very high accuracy temperature
- """
- INA260: _TelemetrySensorType.ValueType # 4
- """
- Moderate accuracy current and voltage
- """
- INA219: _TelemetrySensorType.ValueType # 5
- """
- Moderate accuracy current and voltage
- """
- BMP280: _TelemetrySensorType.ValueType # 6
- """
- High accuracy temperature and pressure
- """
- SHTC3: _TelemetrySensorType.ValueType # 7
- """
- High accuracy temperature and humidity
- """
- LPS22: _TelemetrySensorType.ValueType # 8
- """
- High accuracy pressure
- """
- QMC6310: _TelemetrySensorType.ValueType # 9
- """
- 3-Axis magnetic sensor
- """
- QMI8658: _TelemetrySensorType.ValueType # 10
- """
- 6-Axis inertial measurement sensor
- """
- QMC5883L: _TelemetrySensorType.ValueType # 11
- """
- 3-Axis magnetic sensor
- """
- SHT31: _TelemetrySensorType.ValueType # 12
- """
- High accuracy temperature and humidity
- """
- PMSA003I: _TelemetrySensorType.ValueType # 13
- """
- PM2.5 air quality sensor
- """
- INA3221: _TelemetrySensorType.ValueType # 14
- """
- INA3221 3 Channel Voltage / Current Sensor
- """
- BMP085: _TelemetrySensorType.ValueType # 15
- """
- BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280)
- """
- RCWL9620: _TelemetrySensorType.ValueType # 16
- """
- RCWL-9620 Doppler Radar Distance Sensor, used for water level detection
- """
- SHT4X: _TelemetrySensorType.ValueType # 17
- """
- Sensirion High accuracy temperature and humidity
- """
- VEML7700: _TelemetrySensorType.ValueType # 18
- """
- VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor.
- """
- MLX90632: _TelemetrySensorType.ValueType # 19
- """
- MLX90632 non-contact IR temperature sensor.
- """
- OPT3001: _TelemetrySensorType.ValueType # 20
- """
- TI OPT3001 Ambient Light Sensor
- """
- LTR390UV: _TelemetrySensorType.ValueType # 21
- """
- Lite On LTR-390UV-01 UV Light Sensor
- """
- TSL25911FN: _TelemetrySensorType.ValueType # 22
- """
- AMS TSL25911FN RGB Light Sensor
- """
- AHT10: _TelemetrySensorType.ValueType # 23
- """
- AHT10 Integrated temperature and humidity sensor
- """
- DFROBOT_LARK: _TelemetrySensorType.ValueType # 24
- """
- DFRobot Lark Weather station (temperature, humidity, pressure, wind speed and direction)
- """
-
-class TelemetrySensorType(_TelemetrySensorType, metaclass=_TelemetrySensorTypeEnumTypeWrapper):
- """
- Supported I2C Sensors for telemetry in Meshtastic
- """
-
-SENSOR_UNSET: TelemetrySensorType.ValueType # 0
-"""
-No external telemetry sensor explicitly set
-"""
-BME280: TelemetrySensorType.ValueType # 1
-"""
-High accuracy temperature, pressure, humidity
-"""
-BME680: TelemetrySensorType.ValueType # 2
-"""
-High accuracy temperature, pressure, humidity, and air resistance
-"""
-MCP9808: TelemetrySensorType.ValueType # 3
-"""
-Very high accuracy temperature
-"""
-INA260: TelemetrySensorType.ValueType # 4
-"""
-Moderate accuracy current and voltage
-"""
-INA219: TelemetrySensorType.ValueType # 5
-"""
-Moderate accuracy current and voltage
-"""
-BMP280: TelemetrySensorType.ValueType # 6
-"""
-High accuracy temperature and pressure
-"""
-SHTC3: TelemetrySensorType.ValueType # 7
-"""
-High accuracy temperature and humidity
-"""
-LPS22: TelemetrySensorType.ValueType # 8
-"""
-High accuracy pressure
-"""
-QMC6310: TelemetrySensorType.ValueType # 9
-"""
-3-Axis magnetic sensor
-"""
-QMI8658: TelemetrySensorType.ValueType # 10
-"""
-6-Axis inertial measurement sensor
-"""
-QMC5883L: TelemetrySensorType.ValueType # 11
-"""
-3-Axis magnetic sensor
-"""
-SHT31: TelemetrySensorType.ValueType # 12
-"""
-High accuracy temperature and humidity
-"""
-PMSA003I: TelemetrySensorType.ValueType # 13
-"""
-PM2.5 air quality sensor
-"""
-INA3221: TelemetrySensorType.ValueType # 14
-"""
-INA3221 3 Channel Voltage / Current Sensor
-"""
-BMP085: TelemetrySensorType.ValueType # 15
-"""
-BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280)
-"""
-RCWL9620: TelemetrySensorType.ValueType # 16
-"""
-RCWL-9620 Doppler Radar Distance Sensor, used for water level detection
-"""
-SHT4X: TelemetrySensorType.ValueType # 17
-"""
-Sensirion High accuracy temperature and humidity
-"""
-VEML7700: TelemetrySensorType.ValueType # 18
-"""
-VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor.
-"""
-MLX90632: TelemetrySensorType.ValueType # 19
-"""
-MLX90632 non-contact IR temperature sensor.
-"""
-OPT3001: TelemetrySensorType.ValueType # 20
-"""
-TI OPT3001 Ambient Light Sensor
-"""
-LTR390UV: TelemetrySensorType.ValueType # 21
-"""
-Lite On LTR-390UV-01 UV Light Sensor
-"""
-TSL25911FN: TelemetrySensorType.ValueType # 22
-"""
-AMS TSL25911FN RGB Light Sensor
-"""
-AHT10: TelemetrySensorType.ValueType # 23
-"""
-AHT10 Integrated temperature and humidity sensor
-"""
-DFROBOT_LARK: TelemetrySensorType.ValueType # 24
-"""
-DFRobot Lark Weather station (temperature, humidity, pressure, wind speed and direction)
-"""
-global___TelemetrySensorType = TelemetrySensorType
-
-@typing_extensions.final
-class DeviceMetrics(google.protobuf.message.Message):
- """
- Key native device metrics such as battery level
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- BATTERY_LEVEL_FIELD_NUMBER: builtins.int
- VOLTAGE_FIELD_NUMBER: builtins.int
- CHANNEL_UTILIZATION_FIELD_NUMBER: builtins.int
- AIR_UTIL_TX_FIELD_NUMBER: builtins.int
- UPTIME_SECONDS_FIELD_NUMBER: builtins.int
- battery_level: builtins.int
- """
- 0-100 (>100 means powered)
- """
- voltage: builtins.float
- """
- Voltage measured
- """
- channel_utilization: builtins.float
- """
- Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise).
- """
- air_util_tx: builtins.float
- """
- Percent of airtime for transmission used within the last hour.
- """
- uptime_seconds: builtins.int
- """
- How long the device has been running since the last reboot (in seconds)
- """
- def __init__(
- self,
- *,
- battery_level: builtins.int = ...,
- voltage: builtins.float = ...,
- channel_utilization: builtins.float = ...,
- air_util_tx: builtins.float = ...,
- uptime_seconds: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["air_util_tx", b"air_util_tx", "battery_level", b"battery_level", "channel_utilization", b"channel_utilization", "uptime_seconds", b"uptime_seconds", "voltage", b"voltage"]) -> None: ...
-
-global___DeviceMetrics = DeviceMetrics
-
-@typing_extensions.final
-class EnvironmentMetrics(google.protobuf.message.Message):
- """
- Weather station or other environmental metrics
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- TEMPERATURE_FIELD_NUMBER: builtins.int
- RELATIVE_HUMIDITY_FIELD_NUMBER: builtins.int
- BAROMETRIC_PRESSURE_FIELD_NUMBER: builtins.int
- GAS_RESISTANCE_FIELD_NUMBER: builtins.int
- VOLTAGE_FIELD_NUMBER: builtins.int
- CURRENT_FIELD_NUMBER: builtins.int
- IAQ_FIELD_NUMBER: builtins.int
- DISTANCE_FIELD_NUMBER: builtins.int
- LUX_FIELD_NUMBER: builtins.int
- WHITE_LUX_FIELD_NUMBER: builtins.int
- IR_LUX_FIELD_NUMBER: builtins.int
- UV_LUX_FIELD_NUMBER: builtins.int
- WIND_DIRECTION_FIELD_NUMBER: builtins.int
- WIND_SPEED_FIELD_NUMBER: builtins.int
- temperature: builtins.float
- """
- Temperature measured
- """
- relative_humidity: builtins.float
- """
- Relative humidity percent measured
- """
- barometric_pressure: builtins.float
- """
- Barometric pressure in hPA measured
- """
- gas_resistance: builtins.float
- """
- Gas resistance in MOhm measured
- """
- voltage: builtins.float
- """
- Voltage measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
- """
- current: builtins.float
- """
- Current measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
- """
- iaq: builtins.int
- """
- relative scale IAQ value as measured by Bosch BME680 . value 0-500.
- Belongs to Air Quality but is not particle but VOC measurement. Other VOC values can also be put in here.
- """
- distance: builtins.float
- """
- RCWL9620 Doppler Radar Distance Sensor, used for water level detection. Float value in mm.
- """
- lux: builtins.float
- """
- VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor.
- """
- white_lux: builtins.float
- """
- VEML7700 high accuracy white light(irradiance) not calibrated digital 16-bit resolution sensor.
- """
- ir_lux: builtins.float
- """
- Infrared lux
- """
- uv_lux: builtins.float
- """
- Ultraviolet lux
- """
- wind_direction: builtins.int
- """
- Wind direction in degrees
- 0 degrees = North, 90 = East, etc...
- """
- wind_speed: builtins.float
- """
- Wind speed in m/s
- """
- def __init__(
- self,
- *,
- temperature: builtins.float = ...,
- relative_humidity: builtins.float = ...,
- barometric_pressure: builtins.float = ...,
- gas_resistance: builtins.float = ...,
- voltage: builtins.float = ...,
- current: builtins.float = ...,
- iaq: builtins.int = ...,
- distance: builtins.float = ...,
- lux: builtins.float = ...,
- white_lux: builtins.float = ...,
- ir_lux: builtins.float = ...,
- uv_lux: builtins.float = ...,
- wind_direction: builtins.int = ...,
- wind_speed: builtins.float = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["barometric_pressure", b"barometric_pressure", "current", b"current", "distance", b"distance", "gas_resistance", b"gas_resistance", "iaq", b"iaq", "ir_lux", b"ir_lux", "lux", b"lux", "relative_humidity", b"relative_humidity", "temperature", b"temperature", "uv_lux", b"uv_lux", "voltage", b"voltage", "white_lux", b"white_lux", "wind_direction", b"wind_direction", "wind_speed", b"wind_speed"]) -> None: ...
-
-global___EnvironmentMetrics = EnvironmentMetrics
-
-@typing_extensions.final
-class PowerMetrics(google.protobuf.message.Message):
- """
- Power Metrics (voltage / current / etc)
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- CH1_VOLTAGE_FIELD_NUMBER: builtins.int
- CH1_CURRENT_FIELD_NUMBER: builtins.int
- CH2_VOLTAGE_FIELD_NUMBER: builtins.int
- CH2_CURRENT_FIELD_NUMBER: builtins.int
- CH3_VOLTAGE_FIELD_NUMBER: builtins.int
- CH3_CURRENT_FIELD_NUMBER: builtins.int
- ch1_voltage: builtins.float
- """
- Voltage (Ch1)
- """
- ch1_current: builtins.float
- """
- Current (Ch1)
- """
- ch2_voltage: builtins.float
- """
- Voltage (Ch2)
- """
- ch2_current: builtins.float
- """
- Current (Ch2)
- """
- ch3_voltage: builtins.float
- """
- Voltage (Ch3)
- """
- ch3_current: builtins.float
- """
- Current (Ch3)
- """
- def __init__(
- self,
- *,
- ch1_voltage: builtins.float = ...,
- ch1_current: builtins.float = ...,
- ch2_voltage: builtins.float = ...,
- ch2_current: builtins.float = ...,
- ch3_voltage: builtins.float = ...,
- ch3_current: builtins.float = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["ch1_current", b"ch1_current", "ch1_voltage", b"ch1_voltage", "ch2_current", b"ch2_current", "ch2_voltage", b"ch2_voltage", "ch3_current", b"ch3_current", "ch3_voltage", b"ch3_voltage"]) -> None: ...
-
-global___PowerMetrics = PowerMetrics
-
-@typing_extensions.final
-class AirQualityMetrics(google.protobuf.message.Message):
- """
- Air quality metrics
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- PM10_STANDARD_FIELD_NUMBER: builtins.int
- PM25_STANDARD_FIELD_NUMBER: builtins.int
- PM100_STANDARD_FIELD_NUMBER: builtins.int
- PM10_ENVIRONMENTAL_FIELD_NUMBER: builtins.int
- PM25_ENVIRONMENTAL_FIELD_NUMBER: builtins.int
- PM100_ENVIRONMENTAL_FIELD_NUMBER: builtins.int
- PARTICLES_03UM_FIELD_NUMBER: builtins.int
- PARTICLES_05UM_FIELD_NUMBER: builtins.int
- PARTICLES_10UM_FIELD_NUMBER: builtins.int
- PARTICLES_25UM_FIELD_NUMBER: builtins.int
- PARTICLES_50UM_FIELD_NUMBER: builtins.int
- PARTICLES_100UM_FIELD_NUMBER: builtins.int
- pm10_standard: builtins.int
- """
- Concentration Units Standard PM1.0
- """
- pm25_standard: builtins.int
- """
- Concentration Units Standard PM2.5
- """
- pm100_standard: builtins.int
- """
- Concentration Units Standard PM10.0
- """
- pm10_environmental: builtins.int
- """
- Concentration Units Environmental PM1.0
- """
- pm25_environmental: builtins.int
- """
- Concentration Units Environmental PM2.5
- """
- pm100_environmental: builtins.int
- """
- Concentration Units Environmental PM10.0
- """
- particles_03um: builtins.int
- """
- 0.3um Particle Count
- """
- particles_05um: builtins.int
- """
- 0.5um Particle Count
- """
- particles_10um: builtins.int
- """
- 1.0um Particle Count
- """
- particles_25um: builtins.int
- """
- 2.5um Particle Count
- """
- particles_50um: builtins.int
- """
- 5.0um Particle Count
- """
- particles_100um: builtins.int
- """
- 10.0um Particle Count
- """
- def __init__(
- self,
- *,
- pm10_standard: builtins.int = ...,
- pm25_standard: builtins.int = ...,
- pm100_standard: builtins.int = ...,
- pm10_environmental: builtins.int = ...,
- pm25_environmental: builtins.int = ...,
- pm100_environmental: builtins.int = ...,
- particles_03um: builtins.int = ...,
- particles_05um: builtins.int = ...,
- particles_10um: builtins.int = ...,
- particles_25um: builtins.int = ...,
- particles_50um: builtins.int = ...,
- particles_100um: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["particles_03um", b"particles_03um", "particles_05um", b"particles_05um", "particles_100um", b"particles_100um", "particles_10um", b"particles_10um", "particles_25um", b"particles_25um", "particles_50um", b"particles_50um", "pm100_environmental", b"pm100_environmental", "pm100_standard", b"pm100_standard", "pm10_environmental", b"pm10_environmental", "pm10_standard", b"pm10_standard", "pm25_environmental", b"pm25_environmental", "pm25_standard", b"pm25_standard"]) -> None: ...
-
-global___AirQualityMetrics = AirQualityMetrics
-
-@typing_extensions.final
-class Telemetry(google.protobuf.message.Message):
- """
- Types of Measurements the telemetry module is equipped to handle
- """
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- TIME_FIELD_NUMBER: builtins.int
- DEVICE_METRICS_FIELD_NUMBER: builtins.int
- ENVIRONMENT_METRICS_FIELD_NUMBER: builtins.int
- AIR_QUALITY_METRICS_FIELD_NUMBER: builtins.int
- POWER_METRICS_FIELD_NUMBER: builtins.int
- time: builtins.int
- """
- Seconds since 1970 - or 0 for unknown/unset
- """
- @property
- def device_metrics(self) -> global___DeviceMetrics:
- """
- Key native device metrics such as battery level
- """
- @property
- def environment_metrics(self) -> global___EnvironmentMetrics:
- """
- Weather station or other environmental metrics
- """
- @property
- def air_quality_metrics(self) -> global___AirQualityMetrics:
- """
- Air quality metrics
- """
- @property
- def power_metrics(self) -> global___PowerMetrics:
- """
- Power Metrics
- """
- def __init__(
- self,
- *,
- time: builtins.int = ...,
- device_metrics: global___DeviceMetrics | None = ...,
- environment_metrics: global___EnvironmentMetrics | None = ...,
- air_quality_metrics: global___AirQualityMetrics | None = ...,
- power_metrics: global___PowerMetrics | None = ...,
- ) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["air_quality_metrics", b"air_quality_metrics", "device_metrics", b"device_metrics", "environment_metrics", b"environment_metrics", "power_metrics", b"power_metrics", "variant", b"variant"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["air_quality_metrics", b"air_quality_metrics", "device_metrics", b"device_metrics", "environment_metrics", b"environment_metrics", "power_metrics", b"power_metrics", "time", b"time", "variant", b"variant"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["device_metrics", "environment_metrics", "air_quality_metrics", "power_metrics"] | None: ...
-
-global___Telemetry = Telemetry
diff --git a/meshtastic/xmodem_pb2.py b/meshtastic/xmodem_pb2.py
deleted file mode 100644
index a352c63..0000000
--- a/meshtastic/xmodem_pb2.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: meshtastic/xmodem.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()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17meshtastic/xmodem.proto\x12\nmeshtastic\"\xb6\x01\n\x06XModem\x12+\n\x07\x63ontrol\x18\x01 \x01(\x0e\x32\x1a.meshtastic.XModem.Control\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\r\n\x05\x63rc16\x18\x03 \x01(\r\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\x0c\"S\n\x07\x43ontrol\x12\x07\n\x03NUL\x10\x00\x12\x07\n\x03SOH\x10\x01\x12\x07\n\x03STX\x10\x02\x12\x07\n\x03\x45OT\x10\x04\x12\x07\n\x03\x41\x43K\x10\x06\x12\x07\n\x03NAK\x10\x15\x12\x07\n\x03\x43\x41N\x10\x18\x12\t\n\x05\x43TRLZ\x10\x1a\x42\x61\n\x13\x63om.geeksville.meshB\x0cXmodemProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
-
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.xmodem_pb2', globals())
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\014XmodemProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
- _XMODEM._serialized_start=40
- _XMODEM._serialized_end=222
- _XMODEM_CONTROL._serialized_start=139
- _XMODEM_CONTROL._serialized_end=222
-# @@protoc_insertion_point(module_scope)
diff --git a/meshtastic/xmodem_pb2.pyi b/meshtastic/xmodem_pb2.pyi
deleted file mode 100644
index 07d76bd..0000000
--- a/meshtastic/xmodem_pb2.pyi
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-import builtins
-import google.protobuf.descriptor
-import google.protobuf.internal.enum_type_wrapper
-import google.protobuf.message
-import sys
-import typing
-
-if sys.version_info >= (3, 10):
- import typing as typing_extensions
-else:
- import typing_extensions
-
-DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-
-@typing_extensions.final
-class XModem(google.protobuf.message.Message):
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- class _Control:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
- class _ControlEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[XModem._Control.ValueType], builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- NUL: XModem._Control.ValueType # 0
- SOH: XModem._Control.ValueType # 1
- STX: XModem._Control.ValueType # 2
- EOT: XModem._Control.ValueType # 4
- ACK: XModem._Control.ValueType # 6
- NAK: XModem._Control.ValueType # 21
- CAN: XModem._Control.ValueType # 24
- CTRLZ: XModem._Control.ValueType # 26
-
- class Control(_Control, metaclass=_ControlEnumTypeWrapper): ...
- NUL: XModem.Control.ValueType # 0
- SOH: XModem.Control.ValueType # 1
- STX: XModem.Control.ValueType # 2
- EOT: XModem.Control.ValueType # 4
- ACK: XModem.Control.ValueType # 6
- NAK: XModem.Control.ValueType # 21
- CAN: XModem.Control.ValueType # 24
- CTRLZ: XModem.Control.ValueType # 26
-
- CONTROL_FIELD_NUMBER: builtins.int
- SEQ_FIELD_NUMBER: builtins.int
- CRC16_FIELD_NUMBER: builtins.int
- BUFFER_FIELD_NUMBER: builtins.int
- control: global___XModem.Control.ValueType
- seq: builtins.int
- crc16: builtins.int
- buffer: builtins.bytes
- def __init__(
- self,
- *,
- control: global___XModem.Control.ValueType = ...,
- seq: builtins.int = ...,
- crc16: builtins.int = ...,
- buffer: builtins.bytes = ...,
- ) -> None: ...
- def ClearField(self, field_name: typing_extensions.Literal["buffer", b"buffer", "control", b"control", "crc16", b"crc16", "seq", b"seq"]) -> None: ...
-
-global___XModem = XModem