mirror of
https://github.com/meshtastic/python.git
synced 2026-01-03 21:37:57 -05:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c38a9eb0b | ||
|
|
e591cc184f | ||
|
|
ed908fc4b6 | ||
|
|
3710e6e909 | ||
|
|
faa8064ccc | ||
|
|
2f44351945 | ||
|
|
852949575b |
BIN
.github/meshtastic_logo.png
vendored
Normal file
BIN
.github/meshtastic_logo.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
21
README.md
21
README.md
@@ -1,4 +1,10 @@
|
|||||||
# Meshtastic Python
|
<div align="center" markdown="1">
|
||||||
|
|
||||||
|
<img src=".github/meshtastic_logo.png" alt="Meshtastic Logo" width="80"/>
|
||||||
|
|
||||||
|
<h1 align="center"> Meshtastic Python
|
||||||
|
</h1>
|
||||||
|
<p style="font-size:15px;" align="center">A Python library and client for use with Meshtastic devices. </p>
|
||||||
|
|
||||||
[](https://codecov.io/gh/meshtastic/python)
|
[](https://codecov.io/gh/meshtastic/python)
|
||||||

|

|
||||||
@@ -7,17 +13,20 @@
|
|||||||
[](https://opencollective.com/meshtastic/)
|
[](https://opencollective.com/meshtastic/)
|
||||||

|

|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://meshtastic.org/docs/software/python/cli/installation">Getting Started Guide</a>
|
||||||
|
-
|
||||||
|
<a href="https://python.meshtastic.org">API Documentation</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
A Python client for use with Meshtastic devices.
|
|
||||||
This small library (and example application) provides an easy API for sending and receiving messages over mesh radios.
|
This small library (and example application) provides an easy API for sending and receiving messages over mesh radios.
|
||||||
It also provides access to any of the operations/data available in the device user interface or the Android application.
|
It also provides access to any of the operations/data available in the device user interface or the Android application.
|
||||||
Events are delivered using a publish-subscribe model, and you can subscribe to only the message types you are interested in.
|
Events are delivered using a publish-subscribe model, and you can subscribe to only the message types you are interested in.
|
||||||
|
|
||||||
**[Getting Started Guide](https://meshtastic.org/docs/software/python/cli/installation)**
|
|
||||||
|
|
||||||
**[API Documentation](https://python.meshtastic.org)**
|
|
||||||
|
|
||||||
## Call for Contributors
|
## Call for Contributors
|
||||||
|
|
||||||
This library and CLI has gone without a consistent maintainer for a while, and there's many improvements that could be made. We're all volunteers here and help is extremely appreciated, whether in implementing your own needs or helping maintain the library and CLI in general.
|
This library and CLI has gone without a consistent maintainer for a while, and there's many improvements that could be made. We're all volunteers here and help is extremely appreciated, whether in implementing your own needs or helping maintain the library and CLI in general.
|
||||||
|
|||||||
@@ -597,6 +597,7 @@ def onConnected(interface):
|
|||||||
|
|
||||||
# Handle the int/float/bool arguments
|
# Handle the int/float/bool arguments
|
||||||
pref = None
|
pref = None
|
||||||
|
fields = set()
|
||||||
for pref in args.set:
|
for pref in args.set:
|
||||||
found = False
|
found = False
|
||||||
field = splitCompoundName(pref[0].lower())[0]
|
field = splitCompoundName(pref[0].lower())[0]
|
||||||
@@ -609,11 +610,19 @@ def onConnected(interface):
|
|||||||
)
|
)
|
||||||
found = setPref(config, pref[0], pref[1])
|
found = setPref(config, pref[0], pref[1])
|
||||||
if found:
|
if found:
|
||||||
|
fields.add(field)
|
||||||
break
|
break
|
||||||
|
|
||||||
if found:
|
if found:
|
||||||
print("Writing modified preferences to device")
|
print("Writing modified preferences to device")
|
||||||
node.writeConfig(field)
|
if len(fields) > 1:
|
||||||
|
print("Using a configuration transaction")
|
||||||
|
node.beginSettingsTransaction()
|
||||||
|
for field in fields:
|
||||||
|
print(f"Writing {field} configuration to device")
|
||||||
|
node.writeConfig(field)
|
||||||
|
if len(fields) > 1:
|
||||||
|
node.commitSettingsTransaction()
|
||||||
else:
|
else:
|
||||||
if mt_config.camel_case:
|
if mt_config.camel_case:
|
||||||
print(
|
print(
|
||||||
@@ -1417,7 +1426,7 @@ def addConfigArgs(parser: argparse.ArgumentParser) -> argparse.ArgumentParser:
|
|||||||
"--get",
|
"--get",
|
||||||
help=(
|
help=(
|
||||||
"Get a preferences field. Use an invalid field such as '0' to get a list of all fields."
|
"Get a preferences field. Use an invalid field such as '0' to get a list of all fields."
|
||||||
" Can use either snake_case or camelCase format. (ex: 'ls_secs' or 'lsSecs')"
|
" Can use either snake_case or camelCase format. (ex: 'power.ls_secs' or 'power.lsSecs')"
|
||||||
),
|
),
|
||||||
nargs=1,
|
nargs=1,
|
||||||
action="append",
|
action="append",
|
||||||
@@ -1426,7 +1435,11 @@ def addConfigArgs(parser: argparse.ArgumentParser) -> argparse.ArgumentParser:
|
|||||||
|
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--set",
|
"--set",
|
||||||
help="Set a preferences field. Can use either snake_case or camelCase format. (ex: 'ls_secs' or 'lsSecs')",
|
help=(
|
||||||
|
"Set a preferences field. Can use either snake_case or camelCase format."
|
||||||
|
" (ex: 'power.ls_secs' or 'power.lsSecs'). May be less reliable when"
|
||||||
|
" setting properties from more than one configuration section."
|
||||||
|
),
|
||||||
nargs=2,
|
nargs=2,
|
||||||
action="append",
|
action="append",
|
||||||
metavar=("FIELD", "VALUE"),
|
metavar=("FIELD", "VALUE"),
|
||||||
|
|||||||
22
meshtastic/protobuf/admin_pb2.py
generated
22
meshtastic/protobuf/admin_pb2.py
generated
File diff suppressed because one or more lines are too long
49
meshtastic/protobuf/admin_pb2.pyi
generated
49
meshtastic/protobuf/admin_pb2.pyi
generated
@@ -241,6 +241,31 @@ class AdminMessage(google.protobuf.message.Message):
|
|||||||
TODO: REPLACE
|
TODO: REPLACE
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
class _BackupLocation:
|
||||||
|
ValueType = typing.NewType("ValueType", builtins.int)
|
||||||
|
V: typing_extensions.TypeAlias = ValueType
|
||||||
|
|
||||||
|
class _BackupLocationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._BackupLocation.ValueType], builtins.type):
|
||||||
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
||||||
|
FLASH: AdminMessage._BackupLocation.ValueType # 0
|
||||||
|
"""
|
||||||
|
Backup to the internal flash
|
||||||
|
"""
|
||||||
|
SD: AdminMessage._BackupLocation.ValueType # 1
|
||||||
|
"""
|
||||||
|
Backup to the SD card
|
||||||
|
"""
|
||||||
|
|
||||||
|
class BackupLocation(_BackupLocation, metaclass=_BackupLocationEnumTypeWrapper): ...
|
||||||
|
FLASH: AdminMessage.BackupLocation.ValueType # 0
|
||||||
|
"""
|
||||||
|
Backup to the internal flash
|
||||||
|
"""
|
||||||
|
SD: AdminMessage.BackupLocation.ValueType # 1
|
||||||
|
"""
|
||||||
|
Backup to the SD card
|
||||||
|
"""
|
||||||
|
|
||||||
SESSION_PASSKEY_FIELD_NUMBER: builtins.int
|
SESSION_PASSKEY_FIELD_NUMBER: builtins.int
|
||||||
GET_CHANNEL_REQUEST_FIELD_NUMBER: builtins.int
|
GET_CHANNEL_REQUEST_FIELD_NUMBER: builtins.int
|
||||||
GET_CHANNEL_RESPONSE_FIELD_NUMBER: builtins.int
|
GET_CHANNEL_RESPONSE_FIELD_NUMBER: builtins.int
|
||||||
@@ -264,6 +289,9 @@ class AdminMessage(google.protobuf.message.Message):
|
|||||||
ENTER_DFU_MODE_REQUEST_FIELD_NUMBER: builtins.int
|
ENTER_DFU_MODE_REQUEST_FIELD_NUMBER: builtins.int
|
||||||
DELETE_FILE_REQUEST_FIELD_NUMBER: builtins.int
|
DELETE_FILE_REQUEST_FIELD_NUMBER: builtins.int
|
||||||
SET_SCALE_FIELD_NUMBER: builtins.int
|
SET_SCALE_FIELD_NUMBER: builtins.int
|
||||||
|
BACKUP_PREFERENCES_FIELD_NUMBER: builtins.int
|
||||||
|
RESTORE_PREFERENCES_FIELD_NUMBER: builtins.int
|
||||||
|
REMOVE_BACKUP_PREFERENCES_FIELD_NUMBER: builtins.int
|
||||||
SET_OWNER_FIELD_NUMBER: builtins.int
|
SET_OWNER_FIELD_NUMBER: builtins.int
|
||||||
SET_CHANNEL_FIELD_NUMBER: builtins.int
|
SET_CHANNEL_FIELD_NUMBER: builtins.int
|
||||||
SET_CONFIG_FIELD_NUMBER: builtins.int
|
SET_CONFIG_FIELD_NUMBER: builtins.int
|
||||||
@@ -354,6 +382,18 @@ class AdminMessage(google.protobuf.message.Message):
|
|||||||
"""
|
"""
|
||||||
Set zero and offset for scale chips
|
Set zero and offset for scale chips
|
||||||
"""
|
"""
|
||||||
|
backup_preferences: global___AdminMessage.BackupLocation.ValueType
|
||||||
|
"""
|
||||||
|
Backup the node's preferences
|
||||||
|
"""
|
||||||
|
restore_preferences: global___AdminMessage.BackupLocation.ValueType
|
||||||
|
"""
|
||||||
|
Restore the node's preferences
|
||||||
|
"""
|
||||||
|
remove_backup_preferences: global___AdminMessage.BackupLocation.ValueType
|
||||||
|
"""
|
||||||
|
Remove backups of the node's preferences
|
||||||
|
"""
|
||||||
set_canned_message_module_messages: builtins.str
|
set_canned_message_module_messages: builtins.str
|
||||||
"""
|
"""
|
||||||
Set the Canned Message Module messages text.
|
Set the Canned Message Module messages text.
|
||||||
@@ -554,6 +594,9 @@ class AdminMessage(google.protobuf.message.Message):
|
|||||||
enter_dfu_mode_request: builtins.bool = ...,
|
enter_dfu_mode_request: builtins.bool = ...,
|
||||||
delete_file_request: builtins.str = ...,
|
delete_file_request: builtins.str = ...,
|
||||||
set_scale: builtins.int = ...,
|
set_scale: builtins.int = ...,
|
||||||
|
backup_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
|
||||||
|
restore_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
|
||||||
|
remove_backup_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
|
||||||
set_owner: meshtastic.protobuf.mesh_pb2.User | None = ...,
|
set_owner: meshtastic.protobuf.mesh_pb2.User | None = ...,
|
||||||
set_channel: meshtastic.protobuf.channel_pb2.Channel | None = ...,
|
set_channel: meshtastic.protobuf.channel_pb2.Channel | None = ...,
|
||||||
set_config: meshtastic.protobuf.config_pb2.Config | None = ...,
|
set_config: meshtastic.protobuf.config_pb2.Config | None = ...,
|
||||||
@@ -581,9 +624,9 @@ class AdminMessage(google.protobuf.message.Message):
|
|||||||
factory_reset_config: builtins.int = ...,
|
factory_reset_config: builtins.int = ...,
|
||||||
nodedb_reset: builtins.int = ...,
|
nodedb_reset: builtins.int = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def HasField(self, field_name: typing.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_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "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", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_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", "remove_ignored_node", b"remove_ignored_node", "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_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config"]) -> builtins.bool: ...
|
def HasField(self, field_name: typing.Literal["backup_preferences", b"backup_preferences", "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_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "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", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_response", "nodedb_reset", b"nodedb_reset", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_backup_preferences", b"remove_backup_preferences", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "remove_ignored_node", b"remove_ignored_node", "restore_preferences", b"restore_preferences", "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_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config"]) -> builtins.bool: ...
|
||||||
def ClearField(self, field_name: typing.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_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "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", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_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", "remove_ignored_node", b"remove_ignored_node", "session_passkey", b"session_passkey", "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_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config"]) -> None: ...
|
def ClearField(self, field_name: typing.Literal["backup_preferences", b"backup_preferences", "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_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "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", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_response", "nodedb_reset", b"nodedb_reset", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_backup_preferences", b"remove_backup_preferences", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "remove_ignored_node", b"remove_ignored_node", "restore_preferences", b"restore_preferences", "session_passkey", b"session_passkey", "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_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config"]) -> None: ...
|
||||||
def WhichOneof(self, oneof_group: typing.Literal["payload_variant", b"payload_variant"]) -> typing.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_scale", "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", "set_time_only", "get_ui_config_request", "get_ui_config_response", "store_ui_config", "set_ignored_node", "remove_ignored_node", "begin_edit_settings", "commit_edit_settings", "factory_reset_device", "reboot_ota_seconds", "exit_simulator", "reboot_seconds", "shutdown_seconds", "factory_reset_config", "nodedb_reset"] | None: ...
|
def WhichOneof(self, oneof_group: typing.Literal["payload_variant", b"payload_variant"]) -> typing.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_scale", "backup_preferences", "restore_preferences", "remove_backup_preferences", "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", "set_time_only", "get_ui_config_request", "get_ui_config_response", "store_ui_config", "set_ignored_node", "remove_ignored_node", "begin_edit_settings", "commit_edit_settings", "factory_reset_device", "reboot_ota_seconds", "exit_simulator", "reboot_seconds", "shutdown_seconds", "factory_reset_config", "nodedb_reset"] | None: ...
|
||||||
|
|
||||||
global___AdminMessage = AdminMessage
|
global___AdminMessage = AdminMessage
|
||||||
|
|
||||||
|
|||||||
24
meshtastic/protobuf/device_ui_pb2.py
generated
24
meshtastic/protobuf/device_ui_pb2.py
generated
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#meshtastic/protobuf/device_ui.proto\x12\x13meshtastic.protobuf\"\xbf\x03\n\x0e\x44\x65viceUIConfig\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x19\n\x11screen_brightness\x18\x02 \x01(\r\x12\x16\n\x0escreen_timeout\x18\x03 \x01(\r\x12\x13\n\x0bscreen_lock\x18\x04 \x01(\x08\x12\x15\n\rsettings_lock\x18\x05 \x01(\x08\x12\x10\n\x08pin_code\x18\x06 \x01(\r\x12)\n\x05theme\x18\x07 \x01(\x0e\x32\x1a.meshtastic.protobuf.Theme\x12\x15\n\ralert_enabled\x18\x08 \x01(\x08\x12\x16\n\x0e\x62\x61nner_enabled\x18\t \x01(\x08\x12\x14\n\x0cring_tone_id\x18\n \x01(\r\x12/\n\x08language\x18\x0b \x01(\x0e\x32\x1d.meshtastic.protobuf.Language\x12\x34\n\x0bnode_filter\x18\x0c \x01(\x0b\x32\x1f.meshtastic.protobuf.NodeFilter\x12:\n\x0enode_highlight\x18\r \x01(\x0b\x32\".meshtastic.protobuf.NodeHighlight\x12\x18\n\x10\x63\x61libration_data\x18\x0e \x01(\x0c\"\xa7\x01\n\nNodeFilter\x12\x16\n\x0eunknown_switch\x18\x01 \x01(\x08\x12\x16\n\x0eoffline_switch\x18\x02 \x01(\x08\x12\x19\n\x11public_key_switch\x18\x03 \x01(\x08\x12\x11\n\thops_away\x18\x04 \x01(\x05\x12\x17\n\x0fposition_switch\x18\x05 \x01(\x08\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\x05\"~\n\rNodeHighlight\x12\x13\n\x0b\x63hat_switch\x18\x01 \x01(\x08\x12\x17\n\x0fposition_switch\x18\x02 \x01(\x08\x12\x18\n\x10telemetry_switch\x18\x03 \x01(\x08\x12\x12\n\niaq_switch\x18\x04 \x01(\x08\x12\x11\n\tnode_name\x18\x05 \x01(\t*%\n\x05Theme\x12\x08\n\x04\x44\x41RK\x10\x00\x12\t\n\x05LIGHT\x10\x01\x12\x07\n\x03RED\x10\x02*\x8b\x02\n\x08Language\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06\x46RENCH\x10\x01\x12\n\n\x06GERMAN\x10\x02\x12\x0b\n\x07ITALIAN\x10\x03\x12\x0e\n\nPORTUGUESE\x10\x04\x12\x0b\n\x07SPANISH\x10\x05\x12\x0b\n\x07SWEDISH\x10\x06\x12\x0b\n\x07\x46INNISH\x10\x07\x12\n\n\x06POLISH\x10\x08\x12\x0b\n\x07TURKISH\x10\t\x12\x0b\n\x07SERBIAN\x10\n\x12\x0b\n\x07RUSSIAN\x10\x0b\x12\t\n\x05\x44UTCH\x10\x0c\x12\t\n\x05GREEK\x10\r\x12\r\n\tNORWEGIAN\x10\x0e\x12\r\n\tSLOVENIAN\x10\x0f\x12\x16\n\x12SIMPLIFIED_CHINESE\x10\x1e\x12\x17\n\x13TRADITIONAL_CHINESE\x10\x1f\x42\x63\n\x13\x63om.geeksville.meshB\x0e\x44\x65viceUIProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#meshtastic/protobuf/device_ui.proto\x12\x13meshtastic.protobuf\"\xeb\x03\n\x0e\x44\x65viceUIConfig\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x19\n\x11screen_brightness\x18\x02 \x01(\r\x12\x16\n\x0escreen_timeout\x18\x03 \x01(\r\x12\x13\n\x0bscreen_lock\x18\x04 \x01(\x08\x12\x15\n\rsettings_lock\x18\x05 \x01(\x08\x12\x10\n\x08pin_code\x18\x06 \x01(\r\x12)\n\x05theme\x18\x07 \x01(\x0e\x32\x1a.meshtastic.protobuf.Theme\x12\x15\n\ralert_enabled\x18\x08 \x01(\x08\x12\x16\n\x0e\x62\x61nner_enabled\x18\t \x01(\x08\x12\x14\n\x0cring_tone_id\x18\n \x01(\r\x12/\n\x08language\x18\x0b \x01(\x0e\x32\x1d.meshtastic.protobuf.Language\x12\x34\n\x0bnode_filter\x18\x0c \x01(\x0b\x32\x1f.meshtastic.protobuf.NodeFilter\x12:\n\x0enode_highlight\x18\r \x01(\x0b\x32\".meshtastic.protobuf.NodeHighlight\x12\x18\n\x10\x63\x61libration_data\x18\x0e \x01(\x0c\x12*\n\x08map_data\x18\x0f \x01(\x0b\x32\x18.meshtastic.protobuf.Map\"\xa7\x01\n\nNodeFilter\x12\x16\n\x0eunknown_switch\x18\x01 \x01(\x08\x12\x16\n\x0eoffline_switch\x18\x02 \x01(\x08\x12\x19\n\x11public_key_switch\x18\x03 \x01(\x08\x12\x11\n\thops_away\x18\x04 \x01(\x05\x12\x17\n\x0fposition_switch\x18\x05 \x01(\x08\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\x05\"~\n\rNodeHighlight\x12\x13\n\x0b\x63hat_switch\x18\x01 \x01(\x08\x12\x17\n\x0fposition_switch\x18\x02 \x01(\x08\x12\x18\n\x10telemetry_switch\x18\x03 \x01(\x08\x12\x12\n\niaq_switch\x18\x04 \x01(\x08\x12\x11\n\tnode_name\x18\x05 \x01(\t\"=\n\x08GeoPoint\x12\x0c\n\x04zoom\x18\x01 \x01(\x05\x12\x10\n\x08latitude\x18\x02 \x01(\x05\x12\x11\n\tlongitude\x18\x03 \x01(\x05\"U\n\x03Map\x12+\n\x04home\x18\x01 \x01(\x0b\x32\x1d.meshtastic.protobuf.GeoPoint\x12\r\n\x05style\x18\x02 \x01(\t\x12\x12\n\nfollow_gps\x18\x03 \x01(\x08*%\n\x05Theme\x12\x08\n\x04\x44\x41RK\x10\x00\x12\t\n\x05LIGHT\x10\x01\x12\x07\n\x03RED\x10\x02*\x8b\x02\n\x08Language\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06\x46RENCH\x10\x01\x12\n\n\x06GERMAN\x10\x02\x12\x0b\n\x07ITALIAN\x10\x03\x12\x0e\n\nPORTUGUESE\x10\x04\x12\x0b\n\x07SPANISH\x10\x05\x12\x0b\n\x07SWEDISH\x10\x06\x12\x0b\n\x07\x46INNISH\x10\x07\x12\n\n\x06POLISH\x10\x08\x12\x0b\n\x07TURKISH\x10\t\x12\x0b\n\x07SERBIAN\x10\n\x12\x0b\n\x07RUSSIAN\x10\x0b\x12\t\n\x05\x44UTCH\x10\x0c\x12\t\n\x05GREEK\x10\r\x12\r\n\tNORWEGIAN\x10\x0e\x12\r\n\tSLOVENIAN\x10\x0f\x12\x16\n\x12SIMPLIFIED_CHINESE\x10\x1e\x12\x17\n\x13TRADITIONAL_CHINESE\x10\x1f\x42\x63\n\x13\x63om.geeksville.meshB\x0e\x44\x65viceUIProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3')
|
||||||
|
|
||||||
_globals = globals()
|
_globals = globals()
|
||||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||||
@@ -21,14 +21,18 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtastic.protobuf.device_
|
|||||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||||
DESCRIPTOR._options = None
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\016DeviceUIProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
|
DESCRIPTOR._serialized_options = b'\n\023com.geeksville.meshB\016DeviceUIProtosZ\"github.com/meshtastic/go/generated\252\002\024Meshtastic.Protobufs\272\002\000'
|
||||||
_globals['_THEME']._serialized_start=808
|
_globals['_THEME']._serialized_start=1002
|
||||||
_globals['_THEME']._serialized_end=845
|
_globals['_THEME']._serialized_end=1039
|
||||||
_globals['_LANGUAGE']._serialized_start=848
|
_globals['_LANGUAGE']._serialized_start=1042
|
||||||
_globals['_LANGUAGE']._serialized_end=1115
|
_globals['_LANGUAGE']._serialized_end=1309
|
||||||
_globals['_DEVICEUICONFIG']._serialized_start=61
|
_globals['_DEVICEUICONFIG']._serialized_start=61
|
||||||
_globals['_DEVICEUICONFIG']._serialized_end=508
|
_globals['_DEVICEUICONFIG']._serialized_end=552
|
||||||
_globals['_NODEFILTER']._serialized_start=511
|
_globals['_NODEFILTER']._serialized_start=555
|
||||||
_globals['_NODEFILTER']._serialized_end=678
|
_globals['_NODEFILTER']._serialized_end=722
|
||||||
_globals['_NODEHIGHLIGHT']._serialized_start=680
|
_globals['_NODEHIGHLIGHT']._serialized_start=724
|
||||||
_globals['_NODEHIGHLIGHT']._serialized_end=806
|
_globals['_NODEHIGHLIGHT']._serialized_end=850
|
||||||
|
_globals['_GEOPOINT']._serialized_start=852
|
||||||
|
_globals['_GEOPOINT']._serialized_end=913
|
||||||
|
_globals['_MAP']._serialized_start=915
|
||||||
|
_globals['_MAP']._serialized_end=1000
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|||||||
75
meshtastic/protobuf/device_ui_pb2.pyi
generated
75
meshtastic/protobuf/device_ui_pb2.pyi
generated
@@ -232,6 +232,7 @@ class DeviceUIConfig(google.protobuf.message.Message):
|
|||||||
NODE_FILTER_FIELD_NUMBER: builtins.int
|
NODE_FILTER_FIELD_NUMBER: builtins.int
|
||||||
NODE_HIGHLIGHT_FIELD_NUMBER: builtins.int
|
NODE_HIGHLIGHT_FIELD_NUMBER: builtins.int
|
||||||
CALIBRATION_DATA_FIELD_NUMBER: builtins.int
|
CALIBRATION_DATA_FIELD_NUMBER: builtins.int
|
||||||
|
MAP_DATA_FIELD_NUMBER: builtins.int
|
||||||
version: builtins.int
|
version: builtins.int
|
||||||
"""
|
"""
|
||||||
A version integer used to invalidate saved files when we make incompatible changes.
|
A version integer used to invalidate saved files when we make incompatible changes.
|
||||||
@@ -280,6 +281,12 @@ class DeviceUIConfig(google.protobuf.message.Message):
|
|||||||
Node list highlightening
|
Node list highlightening
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def map_data(self) -> global___Map:
|
||||||
|
"""
|
||||||
|
Map related data
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
@@ -297,9 +304,10 @@ class DeviceUIConfig(google.protobuf.message.Message):
|
|||||||
node_filter: global___NodeFilter | None = ...,
|
node_filter: global___NodeFilter | None = ...,
|
||||||
node_highlight: global___NodeHighlight | None = ...,
|
node_highlight: global___NodeHighlight | None = ...,
|
||||||
calibration_data: builtins.bytes = ...,
|
calibration_data: builtins.bytes = ...,
|
||||||
|
map_data: global___Map | None = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def HasField(self, field_name: typing.Literal["node_filter", b"node_filter", "node_highlight", b"node_highlight"]) -> builtins.bool: ...
|
def HasField(self, field_name: typing.Literal["map_data", b"map_data", "node_filter", b"node_filter", "node_highlight", b"node_highlight"]) -> builtins.bool: ...
|
||||||
def ClearField(self, field_name: typing.Literal["alert_enabled", b"alert_enabled", "banner_enabled", b"banner_enabled", "calibration_data", b"calibration_data", "language", b"language", "node_filter", b"node_filter", "node_highlight", b"node_highlight", "pin_code", b"pin_code", "ring_tone_id", b"ring_tone_id", "screen_brightness", b"screen_brightness", "screen_lock", b"screen_lock", "screen_timeout", b"screen_timeout", "settings_lock", b"settings_lock", "theme", b"theme", "version", b"version"]) -> None: ...
|
def ClearField(self, field_name: typing.Literal["alert_enabled", b"alert_enabled", "banner_enabled", b"banner_enabled", "calibration_data", b"calibration_data", "language", b"language", "map_data", b"map_data", "node_filter", b"node_filter", "node_highlight", b"node_highlight", "pin_code", b"pin_code", "ring_tone_id", b"ring_tone_id", "screen_brightness", b"screen_brightness", "screen_lock", b"screen_lock", "screen_timeout", b"screen_timeout", "settings_lock", b"settings_lock", "theme", b"theme", "version", b"version"]) -> None: ...
|
||||||
|
|
||||||
global___DeviceUIConfig = DeviceUIConfig
|
global___DeviceUIConfig = DeviceUIConfig
|
||||||
|
|
||||||
@@ -398,3 +406,66 @@ class NodeHighlight(google.protobuf.message.Message):
|
|||||||
def ClearField(self, field_name: typing.Literal["chat_switch", b"chat_switch", "iaq_switch", b"iaq_switch", "node_name", b"node_name", "position_switch", b"position_switch", "telemetry_switch", b"telemetry_switch"]) -> None: ...
|
def ClearField(self, field_name: typing.Literal["chat_switch", b"chat_switch", "iaq_switch", b"iaq_switch", "node_name", b"node_name", "position_switch", b"position_switch", "telemetry_switch", b"telemetry_switch"]) -> None: ...
|
||||||
|
|
||||||
global___NodeHighlight = NodeHighlight
|
global___NodeHighlight = NodeHighlight
|
||||||
|
|
||||||
|
@typing.final
|
||||||
|
class GeoPoint(google.protobuf.message.Message):
|
||||||
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
||||||
|
|
||||||
|
ZOOM_FIELD_NUMBER: builtins.int
|
||||||
|
LATITUDE_FIELD_NUMBER: builtins.int
|
||||||
|
LONGITUDE_FIELD_NUMBER: builtins.int
|
||||||
|
zoom: builtins.int
|
||||||
|
"""
|
||||||
|
Zoom level
|
||||||
|
"""
|
||||||
|
latitude: builtins.int
|
||||||
|
"""
|
||||||
|
Coordinate: latitude
|
||||||
|
"""
|
||||||
|
longitude: builtins.int
|
||||||
|
"""
|
||||||
|
Coordinate: longitude
|
||||||
|
"""
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
zoom: builtins.int = ...,
|
||||||
|
latitude: builtins.int = ...,
|
||||||
|
longitude: builtins.int = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def ClearField(self, field_name: typing.Literal["latitude", b"latitude", "longitude", b"longitude", "zoom", b"zoom"]) -> None: ...
|
||||||
|
|
||||||
|
global___GeoPoint = GeoPoint
|
||||||
|
|
||||||
|
@typing.final
|
||||||
|
class Map(google.protobuf.message.Message):
|
||||||
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
||||||
|
|
||||||
|
HOME_FIELD_NUMBER: builtins.int
|
||||||
|
STYLE_FIELD_NUMBER: builtins.int
|
||||||
|
FOLLOW_GPS_FIELD_NUMBER: builtins.int
|
||||||
|
style: builtins.str
|
||||||
|
"""
|
||||||
|
Map tile style
|
||||||
|
"""
|
||||||
|
follow_gps: builtins.bool
|
||||||
|
"""
|
||||||
|
Map scroll follows GPS
|
||||||
|
"""
|
||||||
|
@property
|
||||||
|
def home(self) -> global___GeoPoint:
|
||||||
|
"""
|
||||||
|
Home coordinates
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
home: global___GeoPoint | None = ...,
|
||||||
|
style: builtins.str = ...,
|
||||||
|
follow_gps: builtins.bool = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def HasField(self, field_name: typing.Literal["home", b"home"]) -> builtins.bool: ...
|
||||||
|
def ClearField(self, field_name: typing.Literal["follow_gps", b"follow_gps", "home", b"home", "style", b"style"]) -> None: ...
|
||||||
|
|
||||||
|
global___Map = Map
|
||||||
|
|||||||
33
meshtastic/protobuf/deviceonly_pb2.py
generated
33
meshtastic/protobuf/deviceonly_pb2.py
generated
@@ -15,10 +15,11 @@ from meshtastic.protobuf import channel_pb2 as meshtastic_dot_protobuf_dot_chann
|
|||||||
from meshtastic.protobuf import mesh_pb2 as meshtastic_dot_protobuf_dot_mesh__pb2
|
from meshtastic.protobuf import mesh_pb2 as meshtastic_dot_protobuf_dot_mesh__pb2
|
||||||
from meshtastic.protobuf import telemetry_pb2 as meshtastic_dot_protobuf_dot_telemetry__pb2
|
from meshtastic.protobuf import telemetry_pb2 as meshtastic_dot_protobuf_dot_telemetry__pb2
|
||||||
from meshtastic.protobuf import config_pb2 as meshtastic_dot_protobuf_dot_config__pb2
|
from meshtastic.protobuf import config_pb2 as meshtastic_dot_protobuf_dot_config__pb2
|
||||||
|
from meshtastic.protobuf import localonly_pb2 as meshtastic_dot_protobuf_dot_localonly__pb2
|
||||||
import nanopb_pb2 as nanopb__pb2
|
import nanopb_pb2 as nanopb__pb2
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$meshtastic/protobuf/deviceonly.proto\x12\x13meshtastic.protobuf\x1a!meshtastic/protobuf/channel.proto\x1a\x1emeshtastic/protobuf/mesh.proto\x1a#meshtastic/protobuf/telemetry.proto\x1a meshtastic/protobuf/config.proto\x1a\x0cnanopb.proto\"\x99\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@\n\x0flocation_source\x18\x05 \x01(\x0e\x32\'.meshtastic.protobuf.Position.LocSource\"\xe2\x01\n\x08UserLite\x12\x13\n\x07macaddr\x18\x01 \x01(\x0c\x42\x02\x18\x01\x12\x11\n\tlong_name\x18\x02 \x01(\t\x12\x12\n\nshort_name\x18\x03 \x01(\t\x12\x34\n\x08hw_model\x18\x04 \x01(\x0e\x32\".meshtastic.protobuf.HardwareModel\x12\x13\n\x0bis_licensed\x18\x05 \x01(\x08\x12;\n\x04role\x18\x06 \x01(\x0e\x32-.meshtastic.protobuf.Config.DeviceConfig.Role\x12\x12\n\npublic_key\x18\x07 \x01(\x0c\"\xde\x02\n\x0cNodeInfoLite\x12\x0b\n\x03num\x18\x01 \x01(\r\x12+\n\x04user\x18\x02 \x01(\x0b\x32\x1d.meshtastic.protobuf.UserLite\x12\x33\n\x08position\x18\x03 \x01(\x0b\x32!.meshtastic.protobuf.PositionLite\x12\x0b\n\x03snr\x18\x04 \x01(\x02\x12\x12\n\nlast_heard\x18\x05 \x01(\x07\x12:\n\x0e\x64\x65vice_metrics\x18\x06 \x01(\x0b\x32\".meshtastic.protobuf.DeviceMetrics\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\r\x12\x10\n\x08via_mqtt\x18\x08 \x01(\x08\x12\x16\n\thops_away\x18\t \x01(\rH\x00\x88\x01\x01\x12\x13\n\x0bis_favorite\x18\n \x01(\x08\x12\x12\n\nis_ignored\x18\x0b \x01(\x08\x12\x10\n\x08next_hop\x18\x0c \x01(\rB\x0c\n\n_hops_away\"\x82\x04\n\x0b\x44\x65viceState\x12\x30\n\x07my_node\x18\x02 \x01(\x0b\x32\x1f.meshtastic.protobuf.MyNodeInfo\x12(\n\x05owner\x18\x03 \x01(\x0b\x32\x19.meshtastic.protobuf.User\x12\x36\n\rreceive_queue\x18\x05 \x03(\x0b\x32\x1f.meshtastic.protobuf.MeshPacket\x12\x0f\n\x07version\x18\x08 \x01(\r\x12\x38\n\x0frx_text_message\x18\x07 \x01(\x0b\x32\x1f.meshtastic.protobuf.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\x34\n\x0brx_waypoint\x18\x0c \x01(\x0b\x32\x1f.meshtastic.protobuf.MeshPacket\x12M\n\x19node_remote_hardware_pins\x18\r \x03(\x0b\x32*.meshtastic.protobuf.NodeRemoteHardwarePin\x12\x63\n\x0cnode_db_lite\x18\x0e \x03(\x0b\x32!.meshtastic.protobuf.NodeInfoLiteB*\x92?\'\x92\x01$std::vector<meshtastic_NodeInfoLite>\"N\n\x0b\x43hannelFile\x12.\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1c.meshtastic.protobuf.Channel\x12\x0f\n\x07version\x18\x02 \x01(\rBm\n\x13\x63om.geeksville.meshB\nDeviceOnlyZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x92?\x0b\xc2\x01\x08<vector>b\x06proto3')
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$meshtastic/protobuf/deviceonly.proto\x12\x13meshtastic.protobuf\x1a!meshtastic/protobuf/channel.proto\x1a\x1emeshtastic/protobuf/mesh.proto\x1a#meshtastic/protobuf/telemetry.proto\x1a meshtastic/protobuf/config.proto\x1a#meshtastic/protobuf/localonly.proto\x1a\x0cnanopb.proto\"\x99\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@\n\x0flocation_source\x18\x05 \x01(\x0e\x32\'.meshtastic.protobuf.Position.LocSource\"\xe2\x01\n\x08UserLite\x12\x13\n\x07macaddr\x18\x01 \x01(\x0c\x42\x02\x18\x01\x12\x11\n\tlong_name\x18\x02 \x01(\t\x12\x12\n\nshort_name\x18\x03 \x01(\t\x12\x34\n\x08hw_model\x18\x04 \x01(\x0e\x32\".meshtastic.protobuf.HardwareModel\x12\x13\n\x0bis_licensed\x18\x05 \x01(\x08\x12;\n\x04role\x18\x06 \x01(\x0e\x32-.meshtastic.protobuf.Config.DeviceConfig.Role\x12\x12\n\npublic_key\x18\x07 \x01(\x0c\"\xde\x02\n\x0cNodeInfoLite\x12\x0b\n\x03num\x18\x01 \x01(\r\x12+\n\x04user\x18\x02 \x01(\x0b\x32\x1d.meshtastic.protobuf.UserLite\x12\x33\n\x08position\x18\x03 \x01(\x0b\x32!.meshtastic.protobuf.PositionLite\x12\x0b\n\x03snr\x18\x04 \x01(\x02\x12\x12\n\nlast_heard\x18\x05 \x01(\x07\x12:\n\x0e\x64\x65vice_metrics\x18\x06 \x01(\x0b\x32\".meshtastic.protobuf.DeviceMetrics\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\r\x12\x10\n\x08via_mqtt\x18\x08 \x01(\x08\x12\x16\n\thops_away\x18\t \x01(\rH\x00\x88\x01\x01\x12\x13\n\x0bis_favorite\x18\n \x01(\x08\x12\x12\n\nis_ignored\x18\x0b \x01(\x08\x12\x10\n\x08next_hop\x18\x0c \x01(\rB\x0c\n\n_hops_away\"\xa1\x03\n\x0b\x44\x65viceState\x12\x30\n\x07my_node\x18\x02 \x01(\x0b\x32\x1f.meshtastic.protobuf.MyNodeInfo\x12(\n\x05owner\x18\x03 \x01(\x0b\x32\x19.meshtastic.protobuf.User\x12\x36\n\rreceive_queue\x18\x05 \x03(\x0b\x32\x1f.meshtastic.protobuf.MeshPacket\x12\x0f\n\x07version\x18\x08 \x01(\r\x12\x38\n\x0frx_text_message\x18\x07 \x01(\x0b\x32\x1f.meshtastic.protobuf.MeshPacket\x12\x13\n\x07no_save\x18\t \x01(\x08\x42\x02\x18\x01\x12\x19\n\rdid_gps_reset\x18\x0b \x01(\x08\x42\x02\x18\x01\x12\x34\n\x0brx_waypoint\x18\x0c \x01(\x0b\x32\x1f.meshtastic.protobuf.MeshPacket\x12M\n\x19node_remote_hardware_pins\x18\r \x03(\x0b\x32*.meshtastic.protobuf.NodeRemoteHardwarePin\"}\n\x0cNodeDatabase\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\\\n\x05nodes\x18\x02 \x03(\x0b\x32!.meshtastic.protobuf.NodeInfoLiteB*\x92?\'\x92\x01$std::vector<meshtastic_NodeInfoLite>\"N\n\x0b\x43hannelFile\x12.\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1c.meshtastic.protobuf.Channel\x12\x0f\n\x07version\x18\x02 \x01(\r\"\x86\x02\n\x11\x42\x61\x63kupPreferences\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x07\x12\x30\n\x06\x63onfig\x18\x03 \x01(\x0b\x32 .meshtastic.protobuf.LocalConfig\x12=\n\rmodule_config\x18\x04 \x01(\x0b\x32&.meshtastic.protobuf.LocalModuleConfig\x12\x32\n\x08\x63hannels\x18\x05 \x01(\x0b\x32 .meshtastic.protobuf.ChannelFile\x12(\n\x05owner\x18\x06 \x01(\x0b\x32\x19.meshtastic.protobuf.UserBm\n\x13\x63om.geeksville.meshB\nDeviceOnlyZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x92?\x0b\xc2\x01\x08<vector>b\x06proto3')
|
||||||
|
|
||||||
_globals = globals()
|
_globals = globals()
|
||||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||||
@@ -30,16 +31,22 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|||||||
_USERLITE.fields_by_name['macaddr']._serialized_options = b'\030\001'
|
_USERLITE.fields_by_name['macaddr']._serialized_options = b'\030\001'
|
||||||
_DEVICESTATE.fields_by_name['no_save']._options = None
|
_DEVICESTATE.fields_by_name['no_save']._options = None
|
||||||
_DEVICESTATE.fields_by_name['no_save']._serialized_options = b'\030\001'
|
_DEVICESTATE.fields_by_name['no_save']._serialized_options = b'\030\001'
|
||||||
_DEVICESTATE.fields_by_name['node_db_lite']._options = None
|
_DEVICESTATE.fields_by_name['did_gps_reset']._options = None
|
||||||
_DEVICESTATE.fields_by_name['node_db_lite']._serialized_options = b'\222?\'\222\001$std::vector<meshtastic_NodeInfoLite>'
|
_DEVICESTATE.fields_by_name['did_gps_reset']._serialized_options = b'\030\001'
|
||||||
_globals['_POSITIONLITE']._serialized_start=214
|
_NODEDATABASE.fields_by_name['nodes']._options = None
|
||||||
_globals['_POSITIONLITE']._serialized_end=367
|
_NODEDATABASE.fields_by_name['nodes']._serialized_options = b'\222?\'\222\001$std::vector<meshtastic_NodeInfoLite>'
|
||||||
_globals['_USERLITE']._serialized_start=370
|
_globals['_POSITIONLITE']._serialized_start=251
|
||||||
_globals['_USERLITE']._serialized_end=596
|
_globals['_POSITIONLITE']._serialized_end=404
|
||||||
_globals['_NODEINFOLITE']._serialized_start=599
|
_globals['_USERLITE']._serialized_start=407
|
||||||
_globals['_NODEINFOLITE']._serialized_end=949
|
_globals['_USERLITE']._serialized_end=633
|
||||||
_globals['_DEVICESTATE']._serialized_start=952
|
_globals['_NODEINFOLITE']._serialized_start=636
|
||||||
_globals['_DEVICESTATE']._serialized_end=1466
|
_globals['_NODEINFOLITE']._serialized_end=986
|
||||||
_globals['_CHANNELFILE']._serialized_start=1468
|
_globals['_DEVICESTATE']._serialized_start=989
|
||||||
_globals['_CHANNELFILE']._serialized_end=1546
|
_globals['_DEVICESTATE']._serialized_end=1406
|
||||||
|
_globals['_NODEDATABASE']._serialized_start=1408
|
||||||
|
_globals['_NODEDATABASE']._serialized_end=1533
|
||||||
|
_globals['_CHANNELFILE']._serialized_start=1535
|
||||||
|
_globals['_CHANNELFILE']._serialized_end=1613
|
||||||
|
_globals['_BACKUPPREFERENCES']._serialized_start=1616
|
||||||
|
_globals['_BACKUPPREFERENCES']._serialized_end=1878
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|||||||
103
meshtastic/protobuf/deviceonly_pb2.pyi
generated
103
meshtastic/protobuf/deviceonly_pb2.pyi
generated
@@ -10,6 +10,7 @@ import google.protobuf.internal.containers
|
|||||||
import google.protobuf.message
|
import google.protobuf.message
|
||||||
import meshtastic.protobuf.channel_pb2
|
import meshtastic.protobuf.channel_pb2
|
||||||
import meshtastic.protobuf.config_pb2
|
import meshtastic.protobuf.config_pb2
|
||||||
|
import meshtastic.protobuf.localonly_pb2
|
||||||
import meshtastic.protobuf.mesh_pb2
|
import meshtastic.protobuf.mesh_pb2
|
||||||
import meshtastic.protobuf.telemetry_pb2
|
import meshtastic.protobuf.telemetry_pb2
|
||||||
import typing
|
import typing
|
||||||
@@ -245,7 +246,6 @@ class DeviceState(google.protobuf.message.Message):
|
|||||||
DID_GPS_RESET_FIELD_NUMBER: builtins.int
|
DID_GPS_RESET_FIELD_NUMBER: builtins.int
|
||||||
RX_WAYPOINT_FIELD_NUMBER: builtins.int
|
RX_WAYPOINT_FIELD_NUMBER: builtins.int
|
||||||
NODE_REMOTE_HARDWARE_PINS_FIELD_NUMBER: builtins.int
|
NODE_REMOTE_HARDWARE_PINS_FIELD_NUMBER: builtins.int
|
||||||
NODE_DB_LITE_FIELD_NUMBER: builtins.int
|
|
||||||
version: builtins.int
|
version: builtins.int
|
||||||
"""
|
"""
|
||||||
A version integer used to invalidate old save files when we make
|
A version integer used to invalidate old save files when we make
|
||||||
@@ -260,7 +260,8 @@ class DeviceState(google.protobuf.message.Message):
|
|||||||
"""
|
"""
|
||||||
did_gps_reset: builtins.bool
|
did_gps_reset: builtins.bool
|
||||||
"""
|
"""
|
||||||
Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
|
Previously used to manage GPS factory resets.
|
||||||
|
Deprecated in 2.5.23
|
||||||
"""
|
"""
|
||||||
@property
|
@property
|
||||||
def my_node(self) -> meshtastic.protobuf.mesh_pb2.MyNodeInfo:
|
def my_node(self) -> meshtastic.protobuf.mesh_pb2.MyNodeInfo:
|
||||||
@@ -302,12 +303,6 @@ class DeviceState(google.protobuf.message.Message):
|
|||||||
The mesh's nodes with their available gpio pins for RemoteHardware module
|
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__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
@@ -320,13 +315,40 @@ class DeviceState(google.protobuf.message.Message):
|
|||||||
did_gps_reset: builtins.bool = ...,
|
did_gps_reset: builtins.bool = ...,
|
||||||
rx_waypoint: meshtastic.protobuf.mesh_pb2.MeshPacket | None = ...,
|
rx_waypoint: meshtastic.protobuf.mesh_pb2.MeshPacket | None = ...,
|
||||||
node_remote_hardware_pins: collections.abc.Iterable[meshtastic.protobuf.mesh_pb2.NodeRemoteHardwarePin] | None = ...,
|
node_remote_hardware_pins: collections.abc.Iterable[meshtastic.protobuf.mesh_pb2.NodeRemoteHardwarePin] | None = ...,
|
||||||
node_db_lite: collections.abc.Iterable[global___NodeInfoLite] | None = ...,
|
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def HasField(self, field_name: typing.Literal["my_node", b"my_node", "owner", b"owner", "rx_text_message", b"rx_text_message", "rx_waypoint", b"rx_waypoint"]) -> builtins.bool: ...
|
def HasField(self, field_name: typing.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.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: ...
|
def ClearField(self, field_name: typing.Literal["did_gps_reset", b"did_gps_reset", "my_node", b"my_node", "no_save", b"no_save", "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
|
global___DeviceState = DeviceState
|
||||||
|
|
||||||
|
@typing.final
|
||||||
|
class NodeDatabase(google.protobuf.message.Message):
|
||||||
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
||||||
|
|
||||||
|
VERSION_FIELD_NUMBER: builtins.int
|
||||||
|
NODES_FIELD_NUMBER: builtins.int
|
||||||
|
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 nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodeInfoLite]:
|
||||||
|
"""
|
||||||
|
New lite version of NodeDB to decrease memory footprint
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
version: builtins.int = ...,
|
||||||
|
nodes: collections.abc.Iterable[global___NodeInfoLite] | None = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def ClearField(self, field_name: typing.Literal["nodes", b"nodes", "version", b"version"]) -> None: ...
|
||||||
|
|
||||||
|
global___NodeDatabase = NodeDatabase
|
||||||
|
|
||||||
@typing.final
|
@typing.final
|
||||||
class ChannelFile(google.protobuf.message.Message):
|
class ChannelFile(google.protobuf.message.Message):
|
||||||
"""
|
"""
|
||||||
@@ -358,3 +380,64 @@ class ChannelFile(google.protobuf.message.Message):
|
|||||||
def ClearField(self, field_name: typing.Literal["channels", b"channels", "version", b"version"]) -> None: ...
|
def ClearField(self, field_name: typing.Literal["channels", b"channels", "version", b"version"]) -> None: ...
|
||||||
|
|
||||||
global___ChannelFile = ChannelFile
|
global___ChannelFile = ChannelFile
|
||||||
|
|
||||||
|
@typing.final
|
||||||
|
class BackupPreferences(google.protobuf.message.Message):
|
||||||
|
"""
|
||||||
|
The on-disk backup of the node's preferences
|
||||||
|
"""
|
||||||
|
|
||||||
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
||||||
|
|
||||||
|
VERSION_FIELD_NUMBER: builtins.int
|
||||||
|
TIMESTAMP_FIELD_NUMBER: builtins.int
|
||||||
|
CONFIG_FIELD_NUMBER: builtins.int
|
||||||
|
MODULE_CONFIG_FIELD_NUMBER: builtins.int
|
||||||
|
CHANNELS_FIELD_NUMBER: builtins.int
|
||||||
|
OWNER_FIELD_NUMBER: builtins.int
|
||||||
|
version: builtins.int
|
||||||
|
"""
|
||||||
|
The version of the backup
|
||||||
|
"""
|
||||||
|
timestamp: builtins.int
|
||||||
|
"""
|
||||||
|
The timestamp of the backup (if node has time)
|
||||||
|
"""
|
||||||
|
@property
|
||||||
|
def config(self) -> meshtastic.protobuf.localonly_pb2.LocalConfig:
|
||||||
|
"""
|
||||||
|
The node's configuration
|
||||||
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def module_config(self) -> meshtastic.protobuf.localonly_pb2.LocalModuleConfig:
|
||||||
|
"""
|
||||||
|
The node's module configuration
|
||||||
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def channels(self) -> global___ChannelFile:
|
||||||
|
"""
|
||||||
|
The node's channels
|
||||||
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def owner(self) -> meshtastic.protobuf.mesh_pb2.User:
|
||||||
|
"""
|
||||||
|
The node's user (owner) information
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
version: builtins.int = ...,
|
||||||
|
timestamp: builtins.int = ...,
|
||||||
|
config: meshtastic.protobuf.localonly_pb2.LocalConfig | None = ...,
|
||||||
|
module_config: meshtastic.protobuf.localonly_pb2.LocalModuleConfig | None = ...,
|
||||||
|
channels: global___ChannelFile | None = ...,
|
||||||
|
owner: meshtastic.protobuf.mesh_pb2.User | None = ...,
|
||||||
|
) -> None: ...
|
||||||
|
def HasField(self, field_name: typing.Literal["channels", b"channels", "config", b"config", "module_config", b"module_config", "owner", b"owner"]) -> builtins.bool: ...
|
||||||
|
def ClearField(self, field_name: typing.Literal["channels", b"channels", "config", b"config", "module_config", b"module_config", "owner", b"owner", "timestamp", b"timestamp", "version", b"version"]) -> None: ...
|
||||||
|
|
||||||
|
global___BackupPreferences = BackupPreferences
|
||||||
|
|||||||
Submodule protobufs updated: 068646653e...2a3a67f043
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "meshtastic"
|
name = "meshtastic"
|
||||||
version = "2.5.12"
|
version = "2.6.0"
|
||||||
description = "Python API & client shell for talking to Meshtastic devices"
|
description = "Python API & client shell for talking to Meshtastic devices"
|
||||||
authors = ["Meshtastic Developers <contact@meshtastic.org>"]
|
authors = ["Meshtastic Developers <contact@meshtastic.org>"]
|
||||||
license = "GPL-3.0-only"
|
license = "GPL-3.0-only"
|
||||||
|
|||||||
Reference in New Issue
Block a user