From e28dd0ce835a81346f64279432befdd151f60455 Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 12:41:47 -0800 Subject: [PATCH 1/9] meshtastic-python as submodule --- .gitmodules | 3 +++ meshtastic-python | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 meshtastic-python diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..7a47489 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "meshtastic-python"] + path = meshtastic-python + url = https://github.com/meshtastic/python.git diff --git a/meshtastic-python b/meshtastic-python new file mode 160000 index 0000000..0487ce5 --- /dev/null +++ b/meshtastic-python @@ -0,0 +1 @@ +Subproject commit 0487ce5e1a7defe2064239a5bb19634b357b00c7 From 5204851a6aa2c26bb54937c369c69cf8326c5871 Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 13:04:28 -0800 Subject: [PATCH 2/9] Delete old pb2 files --- meshtastic/admin_pb2.py | 39 ----------- meshtastic/apponly_pb2.py | 28 -------- meshtastic/atak_pb2.py | 40 ----------- meshtastic/cannedmessages_pb2.py | 26 ------- meshtastic/channel_pb2.py | 34 ---------- meshtastic/clientonly_pb2.py | 27 -------- meshtastic/config_pb2.py | 88 ------------------------ meshtastic/connection_status_pb2.py | 36 ---------- meshtastic/localonly_pb2.py | 30 -------- meshtastic/mesh_pb2.py | 102 ---------------------------- meshtastic/module_config_pb2.py | 66 ------------------ meshtastic/mqtt_pb2.py | 30 -------- meshtastic/paxcount_pb2.py | 26 ------- meshtastic/portnums_pb2.py | 26 ------- meshtastic/remote_hardware_pb2.py | 28 -------- meshtastic/rtttl_pb2.py | 26 ------- meshtastic/storeforward_pb2.py | 34 ---------- meshtastic/telemetry_pb2.py | 40 ----------- meshtastic/xmodem_pb2.py | 28 -------- 19 files changed, 754 deletions(-) delete mode 100644 meshtastic/admin_pb2.py delete mode 100644 meshtastic/apponly_pb2.py delete mode 100644 meshtastic/atak_pb2.py delete mode 100644 meshtastic/cannedmessages_pb2.py delete mode 100644 meshtastic/channel_pb2.py delete mode 100644 meshtastic/clientonly_pb2.py delete mode 100644 meshtastic/config_pb2.py delete mode 100644 meshtastic/connection_status_pb2.py delete mode 100644 meshtastic/localonly_pb2.py delete mode 100644 meshtastic/mesh_pb2.py delete mode 100644 meshtastic/module_config_pb2.py delete mode 100644 meshtastic/mqtt_pb2.py delete mode 100644 meshtastic/paxcount_pb2.py delete mode 100644 meshtastic/portnums_pb2.py delete mode 100644 meshtastic/remote_hardware_pb2.py delete mode 100644 meshtastic/rtttl_pb2.py delete mode 100644 meshtastic/storeforward_pb2.py delete mode 100644 meshtastic/telemetry_pb2.py delete mode 100644 meshtastic/xmodem_pb2.py diff --git a/meshtastic/admin_pb2.py b/meshtastic/admin_pb2.py deleted file mode 100644 index 6e5a69b..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\"\xe8\x12\n\x0c\x41\x64minMessage\x12\x17\n\x0fsession_passkey\x18\x65 \x01(\x0c\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\x13\n\tset_scale\x18\x17 \x01(\rH\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\x17\n\rset_time_only\x18+ \x01(\x07H\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\x1e\n\x14\x66\x61\x63tory_reset_device\x18^ \x01(\x05H\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\x1e\n\x14\x66\x61\x63tory_reset_config\x18\x63 \x01(\x05H\x00\x12\x16\n\x0cnodedb_reset\x18\x64 \x01(\x05H\x00\"\xc1\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\x12\x13\n\x0fSECURITY_CONFIG\x10\x07\x12\x15\n\x11SESSIONKEY_CONFIG\x10\x08\"\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=2589 - _ADMINMESSAGE_CONFIGTYPE._serialized_start=2059 - _ADMINMESSAGE_CONFIGTYPE._serialized_end=2252 - _ADMINMESSAGE_MODULECONFIGTYPE._serialized_start=2255 - _ADMINMESSAGE_MODULECONFIGTYPE._serialized_end=2570 - _HAMPARAMETERS._serialized_start=2591 - _HAMPARAMETERS._serialized_end=2682 - _NODEREMOTEHARDWAREPINSRESPONSE._serialized_start=2684 - _NODEREMOTEHARDWAREPINSRESPONSE._serialized_end=2786 -# @@protoc_insertion_point(module_scope) 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/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/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/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/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/config_pb2.py b/meshtastic/config_pb2.py deleted file mode 100644 index 785d13c..0000000 --- a/meshtastic/config_pb2.py +++ /dev/null @@ -1,88 +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\"\xaf%\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\x12\x35\n\x08security\x18\x08 \x01(\x0b\x32!.meshtastic.Config.SecurityConfigH\x00\x12\x39\n\nsessionkey\x18\t \x01(\x0b\x32#.meshtastic.Config.SessionkeyConfigH\x00\x1a\xa1\x05\n\x0c\x44\x65viceConfig\x12\x32\n\x04role\x18\x01 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\x12\x1a\n\x0eserial_enabled\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x11\x64\x65\x62ug_log_enabled\x18\x03 \x01(\x08\x42\x02\x18\x01\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\x16\n\nis_managed\x18\t \x01(\x08\x42\x02\x18\x01\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\"\xae\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\x15\n\rROUTER_CLIENT\x10\x03\x1a\x02\x08\x01\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\x84\x02\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\x12\x18\n\x10powermon_enables\x18 \x01(\x04\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\xcd\x07\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\x12P\n\x13\x63ompass_orientation\x18\x0b \x01(\x0e\x32\x33.meshtastic.Config.DisplayConfig.CompassOrientation\"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\"\xba\x01\n\x12\x43ompassOrientation\x12\r\n\tDEGREES_0\x10\x00\x12\x0e\n\nDEGREES_90\x10\x01\x12\x0f\n\x0b\x44\x45GREES_180\x10\x02\x12\x0f\n\x0b\x44\x45GREES_270\x10\x03\x12\x16\n\x12\x44\x45GREES_0_INVERTED\x10\x04\x12\x17\n\x13\x44\x45GREES_90_INVERTED\x10\x05\x12\x18\n\x14\x44\x45GREES_180_INVERTED\x10\x06\x12\x18\n\x14\x44\x45GREES_270_INVERTED\x10\x07\x1a\xde\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\x0fpa_fan_disabled\x18\x0f \x01(\x08\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\"\xa9\x01\n\x0bModemPreset\x12\r\n\tLONG_FAST\x10\x00\x12\r\n\tLONG_SLOW\x10\x01\x12\x16\n\x0eVERY_LONG_SLOW\x10\x02\x1a\x02\x08\x01\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\x12\x0f\n\x0bSHORT_TURBO\x10\x08\x1a\xd1\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\x12\"\n\x16\x64\x65vice_logging_enabled\x18\x04 \x01(\x08\x42\x02\x18\x01\"8\n\x0bPairingMode\x12\x0e\n\nRANDOM_PIN\x10\x00\x12\r\n\tFIXED_PIN\x10\x01\x12\n\n\x06NO_PIN\x10\x02\x1a\xd9\x01\n\x0eSecurityConfig\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x13\n\x0bprivate_key\x18\x02 \x01(\x0c\x12\x11\n\tadmin_key\x18\x03 \x01(\x0c\x12\x12\n\nis_managed\x18\x04 \x01(\x08\x12\x16\n\x0eserial_enabled\x18\x05 \x01(\x08\x12\x1d\n\x15\x64\x65\x62ug_log_api_enabled\x18\x06 \x01(\x08\x12!\n\x19\x62luetooth_logging_enabled\x18\x07 \x01(\x08\x12\x1d\n\x15\x61\x64min_channel_enabled\x18\x08 \x01(\x08\x1a\x12\n\x10SessionkeyConfigB\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_DEVICECONFIG_ROLE.values_by_name["ROUTER_CLIENT"]._options = None - _CONFIG_DEVICECONFIG_ROLE.values_by_name["ROUTER_CLIENT"]._serialized_options = b'\010\001' - _CONFIG_DEVICECONFIG.fields_by_name['serial_enabled']._options = None - _CONFIG_DEVICECONFIG.fields_by_name['serial_enabled']._serialized_options = b'\030\001' - _CONFIG_DEVICECONFIG.fields_by_name['debug_log_enabled']._options = None - _CONFIG_DEVICECONFIG.fields_by_name['debug_log_enabled']._serialized_options = b'\030\001' - _CONFIG_DEVICECONFIG.fields_by_name['is_managed']._options = None - _CONFIG_DEVICECONFIG.fields_by_name['is_managed']._serialized_options = b'\030\001' - _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_LORACONFIG_MODEMPRESET.values_by_name["VERY_LONG_SLOW"]._options = None - _CONFIG_LORACONFIG_MODEMPRESET.values_by_name["VERY_LONG_SLOW"]._serialized_options = b'\010\001' - _CONFIG_BLUETOOTHCONFIG.fields_by_name['device_logging_enabled']._options = None - _CONFIG_BLUETOOTHCONFIG.fields_by_name['device_logging_enabled']._serialized_options = b'\030\001' - _CONFIG._serialized_start=40 - _CONFIG._serialized_end=4823 - _CONFIG_DEVICECONFIG._serialized_start=530 - _CONFIG_DEVICECONFIG._serialized_end=1203 - _CONFIG_DEVICECONFIG_ROLE._serialized_start=946 - _CONFIG_DEVICECONFIG_ROLE._serialized_end=1120 - _CONFIG_DEVICECONFIG_REBROADCASTMODE._serialized_start=1122 - _CONFIG_DEVICECONFIG_REBROADCASTMODE._serialized_end=1203 - _CONFIG_POSITIONCONFIG._serialized_start=1206 - _CONFIG_POSITIONCONFIG._serialized_end=1863 - _CONFIG_POSITIONCONFIG_POSITIONFLAGS._serialized_start=1637 - _CONFIG_POSITIONCONFIG_POSITIONFLAGS._serialized_end=1808 - _CONFIG_POSITIONCONFIG_GPSMODE._serialized_start=1810 - _CONFIG_POSITIONCONFIG_GPSMODE._serialized_end=1863 - _CONFIG_POWERCONFIG._serialized_start=1866 - _CONFIG_POWERCONFIG._serialized_end=2126 - _CONFIG_NETWORKCONFIG._serialized_start=2129 - _CONFIG_NETWORKCONFIG._serialized_end=2511 - _CONFIG_NETWORKCONFIG_IPV4CONFIG._serialized_start=2404 - _CONFIG_NETWORKCONFIG_IPV4CONFIG._serialized_end=2474 - _CONFIG_NETWORKCONFIG_ADDRESSMODE._serialized_start=2476 - _CONFIG_NETWORKCONFIG_ADDRESSMODE._serialized_end=2511 - _CONFIG_DISPLAYCONFIG._serialized_start=2514 - _CONFIG_DISPLAYCONFIG._serialized_end=3487 - _CONFIG_DISPLAYCONFIG_GPSCOORDINATEFORMAT._serialized_start=3033 - _CONFIG_DISPLAYCONFIG_GPSCOORDINATEFORMAT._serialized_end=3110 - _CONFIG_DISPLAYCONFIG_DISPLAYUNITS._serialized_start=3112 - _CONFIG_DISPLAYCONFIG_DISPLAYUNITS._serialized_end=3152 - _CONFIG_DISPLAYCONFIG_OLEDTYPE._serialized_start=3154 - _CONFIG_DISPLAYCONFIG_OLEDTYPE._serialized_end=3231 - _CONFIG_DISPLAYCONFIG_DISPLAYMODE._serialized_start=3233 - _CONFIG_DISPLAYCONFIG_DISPLAYMODE._serialized_end=3298 - _CONFIG_DISPLAYCONFIG_COMPASSORIENTATION._serialized_start=3301 - _CONFIG_DISPLAYCONFIG_COMPASSORIENTATION._serialized_end=3487 - _CONFIG_LORACONFIG._serialized_start=3490 - _CONFIG_LORACONFIG._serialized_end=4352 - _CONFIG_LORACONFIG_REGIONCODE._serialized_start=3975 - _CONFIG_LORACONFIG_REGIONCODE._serialized_end=4180 - _CONFIG_LORACONFIG_MODEMPRESET._serialized_start=4183 - _CONFIG_LORACONFIG_MODEMPRESET._serialized_end=4352 - _CONFIG_BLUETOOTHCONFIG._serialized_start=4355 - _CONFIG_BLUETOOTHCONFIG._serialized_end=4564 - _CONFIG_BLUETOOTHCONFIG_PAIRINGMODE._serialized_start=4508 - _CONFIG_BLUETOOTHCONFIG_PAIRINGMODE._serialized_end=4564 - _CONFIG_SECURITYCONFIG._serialized_start=4567 - _CONFIG_SECURITYCONFIG._serialized_end=4784 - _CONFIG_SESSIONKEYCONFIG._serialized_start=4786 - _CONFIG_SESSIONKEYCONFIG._serialized_end=4804 -# @@protoc_insertion_point(module_scope) 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/localonly_pb2.py b/meshtastic/localonly_pb2.py deleted file mode 100644 index 1f786a6..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\"\xb2\x03\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\x12\x33\n\x08security\x18\t \x01(\x0b\x32!.meshtastic.Config.SecurityConfig\"\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=534 - _LOCALMODULECONFIG._serialized_start=537 - _LOCALMODULECONFIG._serialized_end=1428 -# @@protoc_insertion_point(module_scope) diff --git a/meshtastic/mesh_pb2.py b/meshtastic/mesh_pb2.py deleted file mode 100644 index f820c87..0000000 --- a/meshtastic/mesh_pb2.py +++ /dev/null @@ -1,102 +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\"\x87\x07\n\x08Position\x12\x17\n\nlatitude_i\x18\x01 \x01(\x0fH\x00\x88\x01\x01\x12\x18\n\x0blongitude_i\x18\x02 \x01(\x0fH\x01\x88\x01\x01\x12\x15\n\x08\x61ltitude\x18\x03 \x01(\x05H\x02\x88\x01\x01\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\x19\n\x0c\x61ltitude_hae\x18\t \x01(\x11H\x03\x88\x01\x01\x12(\n\x1b\x61ltitude_geoidal_separation\x18\n \x01(\x11H\x04\x88\x01\x01\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\x19\n\x0cground_speed\x18\x0f \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cground_track\x18\x10 \x01(\rH\x06\x88\x01\x01\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\x42\r\n\x0b_latitude_iB\x0e\n\x0c_longitude_iB\x0b\n\t_altitudeB\x0f\n\r_altitude_haeB\x1e\n\x1c_altitude_geoidal_separationB\x0f\n\r_ground_speedB\x0f\n\r_ground_track\"\xd8\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\x12\x12\n\npublic_key\x18\x08 \x01(\x0c\"Z\n\x0eRouteDiscovery\x12\r\n\x05route\x18\x01 \x03(\x07\x12\x13\n\x0bsnr_towards\x18\x02 \x03(\x05\x12\x12\n\nroute_back\x18\x03 \x03(\x07\x12\x10\n\x08snr_back\x18\x04 \x03(\x05\"\xa4\x03\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\"\xf2\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!\x12\x0e\n\nPKI_FAILED\x10\"\x12\x16\n\x12PKI_UNKNOWN_PUBKEY\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\"\xbc\x01\n\x08Waypoint\x12\n\n\x02id\x18\x01 \x01(\r\x12\x17\n\nlatitude_i\x18\x02 \x01(\x0fH\x00\x88\x01\x01\x12\x18\n\x0blongitude_i\x18\x03 \x01(\x0fH\x01\x88\x01\x01\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\x42\r\n\x0b_latitude_iB\x0e\n\x0c_longitude_i\"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\"\xc0\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\x12\x12\n\npublic_key\x18\x10 \x01(\x0c\x12\x15\n\rpki_encrypted\x18\x11 \x01(\x08\"[\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\"\xc3\x05\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\x12(\n\x08\x66ileInfo\x18\x0f \x01(\x0b\x32\x14.meshtastic.FileInfoH\x00\x12<\n\x12\x63lientNotification\x18\x10 \x01(\x0b\x32\x1e.meshtastic.ClientNotificationH\x00\x42\x11\n\x0fpayload_variant\"\x83\x01\n\x12\x43lientNotification\x12\x15\n\x08reply_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04time\x18\x02 \x01(\x07\x12*\n\x05level\x18\x03 \x01(\x0e\x32\x1b.meshtastic.LogRecord.Level\x12\x0f\n\x07message\x18\x04 \x01(\tB\x0b\n\t_reply_id\"1\n\x08\x46ileInfo\x12\x11\n\tfile_name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\r\"\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*\x9a\x0b\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\x0b\n\x07RAK2560\x10\x16\x12\x13\n\x0fHELTEC_HRU_3601\x10\x17\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\x1c\n\x18HELTEC_CAPSULE_SENSOR_V3\x10\x41\x12\x1d\n\x19HELTEC_VISION_MASTER_T190\x10\x42\x12\x1d\n\x19HELTEC_VISION_MASTER_E213\x10\x43\x12\x1d\n\x19HELTEC_VISION_MASTER_E290\x10\x44\x12\x19\n\x15HELTEC_MESH_NODE_T114\x10\x45\x12\x16\n\x12SENSECAP_INDICATOR\x10\x46\x12\x13\n\x0fTRACKER_T1000_E\x10G\x12\x0b\n\x07RAK3172\x10H\x12\n\n\x06WIO_E5\x10I\x12\x1a\n\x16RADIOMASTER_900_BANDIT\x10J\x12\x13\n\x0fME25LS01_4Y10TD\x10K\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*\xb4\x02\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\x12 \n\x1c\x46LASH_CORRUPTION_RECOVERABLE\x10\x0c\x12\"\n\x1e\x46LASH_CORRUPTION_UNRECOVERABLE\x10\rB_\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=5700 - _HARDWAREMODEL._serialized_end=7134 - _CONSTANTS._serialized_start=7136 - _CONSTANTS._serialized_end=7180 - _CRITICALERRORCODE._serialized_start=7183 - _CRITICALERRORCODE._serialized_end=7491 - _POSITION._serialized_start=201 - _POSITION._serialized_end=1104 - _POSITION_LOCSOURCE._serialized_start=799 - _POSITION_LOCSOURCE._serialized_end=877 - _POSITION_ALTSOURCE._serialized_start=879 - _POSITION_ALTSOURCE._serialized_end=977 - _USER._serialized_start=1107 - _USER._serialized_end=1323 - _ROUTEDISCOVERY._serialized_start=1325 - _ROUTEDISCOVERY._serialized_end=1415 - _ROUTING._serialized_start=1418 - _ROUTING._serialized_end=1838 - _ROUTING_ERROR._serialized_start=1585 - _ROUTING_ERROR._serialized_end=1827 - _DATA._serialized_start=1841 - _DATA._serialized_end=2008 - _WAYPOINT._serialized_start=2011 - _WAYPOINT._serialized_end=2199 - _MQTTCLIENTPROXYMESSAGE._serialized_start=2201 - _MQTTCLIENTPROXYMESSAGE._serialized_end=2309 - _MESHPACKET._serialized_start=2312 - _MESHPACKET._serialized_end=2888 - _MESHPACKET_PRIORITY._serialized_start=2710 - _MESHPACKET_PRIORITY._serialized_end=2801 - _MESHPACKET_DELAYED._serialized_start=2803 - _MESHPACKET_DELAYED._serialized_end=2869 - _NODEINFO._serialized_start=2891 - _NODEINFO._serialized_end=3145 - _MYNODEINFO._serialized_start=3147 - _MYNODEINFO._serialized_end=3227 - _LOGRECORD._serialized_start=3230 - _LOGRECORD._serialized_end=3422 - _LOGRECORD_LEVEL._serialized_start=3334 - _LOGRECORD_LEVEL._serialized_end=3422 - _QUEUESTATUS._serialized_start=3424 - _QUEUESTATUS._serialized_end=3504 - _FROMRADIO._serialized_start=3507 - _FROMRADIO._serialized_end=4214 - _CLIENTNOTIFICATION._serialized_start=4217 - _CLIENTNOTIFICATION._serialized_end=4348 - _FILEINFO._serialized_start=4350 - _FILEINFO._serialized_end=4399 - _TORADIO._serialized_start=4402 - _TORADIO._serialized_end=4678 - _COMPRESSED._serialized_start=4680 - _COMPRESSED._serialized_end=4744 - _NEIGHBORINFO._serialized_start=4747 - _NEIGHBORINFO._serialized_end=4882 - _NEIGHBOR._serialized_start=4884 - _NEIGHBOR._serialized_end=4984 - _DEVICEMETADATA._serialized_start=4987 - _DEVICEMETADATA._serialized_end=5288 - _HEARTBEAT._serialized_start=5290 - _HEARTBEAT._serialized_end=5301 - _NODEREMOTEHARDWAREPIN._serialized_start=5303 - _NODEREMOTEHARDWAREPIN._serialized_end=5388 - _CHUNKEDPAYLOAD._serialized_start=5390 - _CHUNKEDPAYLOAD._serialized_end=5491 - _RESEND_CHUNKS._serialized_start=5493 - _RESEND_CHUNKS._serialized_end=5524 - _CHUNKEDPAYLOADRESPONSE._serialized_start=5527 - _CHUNKEDPAYLOADRESPONSE._serialized_end=5697 -# @@protoc_insertion_point(module_scope) diff --git a/meshtastic/module_config_pb2.py b/meshtastic/module_config_pb2.py deleted file mode 100644 index a99c010..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\"\xf0\"\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\xee\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\"_\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\x12\x08\n\x04WS85\x10\x06\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\x97\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\x12\x11\n\tis_server\x18\x06 \x01(\x08\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=4615 - _REMOTEHARDWAREPINTYPE._serialized_end=4688 - _MODULECONFIG._serialized_start=47 - _MODULECONFIG._serialized_end=4511 - _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=2843 - _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=2843 - _MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_start=2846 - _MODULECONFIG_EXTERNALNOTIFICATIONCONFIG._serialized_end=3207 - _MODULECONFIG_STOREFORWARDCONFIG._serialized_start=3210 - _MODULECONFIG_STOREFORWARDCONFIG._serialized_end=3361 - _MODULECONFIG_RANGETESTCONFIG._serialized_start=3363 - _MODULECONFIG_RANGETESTCONFIG._serialized_end=3427 - _MODULECONFIG_TELEMETRYCONFIG._serialized_start=3430 - _MODULECONFIG_TELEMETRYCONFIG._serialized_end=3788 - _MODULECONFIG_CANNEDMESSAGECONFIG._serialized_start=3791 - _MODULECONFIG_CANNEDMESSAGECONFIG._serialized_end=4389 - _MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_start=4290 - _MODULECONFIG_CANNEDMESSAGECONFIG_INPUTEVENTCHAR._serialized_end=4389 - _MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_start=4391 - _MODULECONFIG_AMBIENTLIGHTINGCONFIG._serialized_end=4492 - _REMOTEHARDWAREPIN._serialized_start=4513 - _REMOTEHARDWAREPIN._serialized_end=4613 -# @@protoc_insertion_point(module_scope) 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/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/portnums_pb2.py b/meshtastic/portnums_pb2.py deleted file mode 100644 index 2c4a590..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*\xa2\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\x13\n\x0fPOWERSTRESS_APP\x10J\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=588 -# @@protoc_insertion_point(module_scope) 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/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/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/telemetry_pb2.py b/meshtastic/telemetry_pb2.py deleted file mode 100644 index ef360fa..0000000 --- a/meshtastic/telemetry_pb2.py +++ /dev/null @@ -1,40 +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\"\xf3\x01\n\rDeviceMetrics\x12\x1a\n\rbattery_level\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07voltage\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12 \n\x13\x63hannel_utilization\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x18\n\x0b\x61ir_util_tx\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x1b\n\x0euptime_seconds\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x10\n\x0e_battery_levelB\n\n\x08_voltageB\x16\n\x14_channel_utilizationB\x0e\n\x0c_air_util_txB\x11\n\x0f_uptime_seconds\"\xa4\x05\n\x12\x45nvironmentMetrics\x12\x18\n\x0btemperature\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11relative_humidity\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12 \n\x13\x62\x61rometric_pressure\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x1b\n\x0egas_resistance\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x14\n\x07voltage\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x14\n\x07\x63urrent\x18\x06 \x01(\x02H\x05\x88\x01\x01\x12\x10\n\x03iaq\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x10\n\x03lux\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x16\n\twhite_lux\x18\n \x01(\x02H\t\x88\x01\x01\x12\x13\n\x06ir_lux\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x13\n\x06uv_lux\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x1b\n\x0ewind_direction\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\nwind_speed\x18\x0e \x01(\x02H\r\x88\x01\x01\x12\x13\n\x06weight\x18\x0f \x01(\x02H\x0e\x88\x01\x01\x12\x16\n\twind_gust\x18\x10 \x01(\x02H\x0f\x88\x01\x01\x12\x16\n\twind_lull\x18\x11 \x01(\x02H\x10\x88\x01\x01\x42\x0e\n\x0c_temperatureB\x14\n\x12_relative_humidityB\x16\n\x14_barometric_pressureB\x11\n\x0f_gas_resistanceB\n\n\x08_voltageB\n\n\x08_currentB\x06\n\x04_iaqB\x0b\n\t_distanceB\x06\n\x04_luxB\x0c\n\n_white_luxB\t\n\x07_ir_luxB\t\n\x07_uv_luxB\x11\n\x0f_wind_directionB\r\n\x0b_wind_speedB\t\n\x07_weightB\x0c\n\n_wind_gustB\x0c\n\n_wind_lull\"\x8a\x02\n\x0cPowerMetrics\x12\x18\n\x0b\x63h1_voltage\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x0b\x63h1_current\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0b\x63h2_voltage\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x18\n\x0b\x63h2_current\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x63h3_voltage\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x18\n\x0b\x63h3_current\x18\x06 \x01(\x02H\x05\x88\x01\x01\x42\x0e\n\x0c_ch1_voltageB\x0e\n\x0c_ch1_currentB\x0e\n\x0c_ch2_voltageB\x0e\n\x0c_ch2_currentB\x0e\n\x0c_ch3_voltageB\x0e\n\x0c_ch3_current\"\xeb\x04\n\x11\x41irQualityMetrics\x12\x1a\n\rpm10_standard\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rpm25_standard\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0epm100_standard\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12pm10_environmental\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1f\n\x12pm25_environmental\x18\x05 \x01(\rH\x04\x88\x01\x01\x12 \n\x13pm100_environmental\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1b\n\x0eparticles_03um\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x1b\n\x0eparticles_05um\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x1b\n\x0eparticles_10um\x18\t \x01(\rH\x08\x88\x01\x01\x12\x1b\n\x0eparticles_25um\x18\n \x01(\rH\t\x88\x01\x01\x12\x1b\n\x0eparticles_50um\x18\x0b \x01(\rH\n\x88\x01\x01\x12\x1c\n\x0fparticles_100um\x18\x0c \x01(\rH\x0b\x88\x01\x01\x42\x10\n\x0e_pm10_standardB\x10\n\x0e_pm25_standardB\x11\n\x0f_pm100_standardB\x15\n\x13_pm10_environmentalB\x15\n\x13_pm25_environmentalB\x16\n\x14_pm100_environmentalB\x11\n\x0f_particles_03umB\x11\n\x0f_particles_05umB\x11\n\x0f_particles_10umB\x11\n\x0f_particles_25umB\x11\n\x0f_particles_50umB\x12\n\x10_particles_100um\"\xd5\x01\n\nLocalStats\x12\x16\n\x0euptime_seconds\x18\x01 \x01(\r\x12\x1b\n\x13\x63hannel_utilization\x18\x02 \x01(\x02\x12\x13\n\x0b\x61ir_util_tx\x18\x03 \x01(\x02\x12\x16\n\x0enum_packets_tx\x18\x04 \x01(\r\x12\x16\n\x0enum_packets_rx\x18\x05 \x01(\r\x12\x1a\n\x12num_packets_rx_bad\x18\x06 \x01(\r\x12\x18\n\x10num_online_nodes\x18\x07 \x01(\r\x12\x17\n\x0fnum_total_nodes\x18\x08 \x01(\r\"\xb8\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\x12-\n\x0blocal_stats\x18\x06 \x01(\x0b\x32\x16.meshtastic.LocalStatsH\x00\x42\t\n\x07variant\">\n\rNau7802Config\x12\x12\n\nzeroOffset\x18\x01 \x01(\x05\x12\x19\n\x11\x63\x61librationFactor\x18\x02 \x01(\x02*\x92\x03\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\x12\x0b\n\x07NAU7802\x10\x19\x12\n\n\x06\x42MP3XX\x10\x1a\x12\x0c\n\x08ICM20948\x10\x1b\x12\x0c\n\x08MAX17048\x10\x1c\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=2454 - _TELEMETRYSENSORTYPE._serialized_end=2856 - _DEVICEMETRICS._serialized_start=43 - _DEVICEMETRICS._serialized_end=286 - _ENVIRONMENTMETRICS._serialized_start=289 - _ENVIRONMENTMETRICS._serialized_end=965 - _POWERMETRICS._serialized_start=968 - _POWERMETRICS._serialized_end=1234 - _AIRQUALITYMETRICS._serialized_start=1237 - _AIRQUALITYMETRICS._serialized_end=1856 - _LOCALSTATS._serialized_start=1859 - _LOCALSTATS._serialized_end=2072 - _TELEMETRY._serialized_start=2075 - _TELEMETRY._serialized_end=2387 - _NAU7802CONFIG._serialized_start=2389 - _NAU7802CONFIG._serialized_end=2451 -# @@protoc_insertion_point(module_scope) 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) From fb66b74fe75b84d1a48545700efc1d6b7d0bb024 Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 13:05:43 -0800 Subject: [PATCH 3/9] add symlink to submodule folder --- meshtastic | 1 + 1 file changed, 1 insertion(+) create mode 120000 meshtastic diff --git a/meshtastic b/meshtastic new file mode 120000 index 0000000..dc6100a --- /dev/null +++ b/meshtastic @@ -0,0 +1 @@ +meshtastic-python/meshtastic/protobuf/ \ No newline at end of file From f189147ab56ffd70aae0819d2334d548a4aa9579 Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 13:41:48 -0800 Subject: [PATCH 4/9] meshtastic python as submodule --- meshtastic | 1 - meshview/__pycache__/mqtt_reader.cpython-310.pyc | Bin 0 -> 1670 bytes meshview/decode_payload.py | 6 +++--- meshview/mqtt_reader.py | 2 +- meshview/store.py | 6 +++--- meshview/web.py | 2 +- 6 files changed, 8 insertions(+), 9 deletions(-) delete mode 120000 meshtastic create mode 100644 meshview/__pycache__/mqtt_reader.cpython-310.pyc diff --git a/meshtastic b/meshtastic deleted file mode 120000 index dc6100a..0000000 --- a/meshtastic +++ /dev/null @@ -1 +0,0 @@ -meshtastic-python/meshtastic/protobuf/ \ No newline at end of file diff --git a/meshview/__pycache__/mqtt_reader.cpython-310.pyc b/meshview/__pycache__/mqtt_reader.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ef6c7b2272b631ae8ec47bb4c5823b51fa04fee GIT binary patch literal 1670 zcmYjR&2Jk;6rY*>wjIY!D}qXa6DS6eG;Ih-P#~m9OA#U9il~;5S?^5jHT&h6i7i{} zDk!~zICHX({1^NkbLEs9M+ArPW;dak)xMec_I=F0_j@m0TB;ye!#{rMQ5&H@HFJF# zzf!j;erp^o0u2YwKurE{GLe0uK#6t&7tf~)LkW#kCdCHrHvUkI*&$z1iQ7`48 z?8ib`F(?SoU2ZWx3In#6j98RrZ2Icv;iC_}4tKK8H)E8pi@tgtY{hLL6>Q=t}Nd zeF1fOjDFjn899E4zOO))jk%SZ3tWD|Xm~p}2KGHPZQd_*j{pHvS2}Yyw+7w<&+H?V zcu?!gR&#q$I|DT6eXt~+4A;P-J^+jylkWf%!?o=KDJCH0%(#k|R5veg zC4wMY9@`3hDWDhK6Tx`m$4t4IFT^OC5*Z$cjGyZsYu;3bkN_+0 zCp3*!6#%J^-B1EL{Vrp+KbqF z(K_9e)>^_x5`PxH8#rZ>#JT%if&_GWXAm%M)OI;KG9GRw}80Fg+#cd2Ax?W@bgBk F@gJ& Date: Mon, 20 Jan 2025 13:51:16 -0800 Subject: [PATCH 5/9] meshtastic/protobuf --- meshtastic/protobuf | 1 + 1 file changed, 1 insertion(+) create mode 120000 meshtastic/protobuf diff --git a/meshtastic/protobuf b/meshtastic/protobuf new file mode 120000 index 0000000..e85620c --- /dev/null +++ b/meshtastic/protobuf @@ -0,0 +1 @@ +/home/jessej/meshview/meshtastic-python/meshtastic/protobuf/ \ No newline at end of file From 57643b1a124d1f36cbe6224f04a0feba0492c377 Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 13:54:22 -0800 Subject: [PATCH 6/9] tryfix symlink origin --- meshtastic/protobuf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/protobuf b/meshtastic/protobuf index e85620c..4919ab8 120000 --- a/meshtastic/protobuf +++ b/meshtastic/protobuf @@ -1 +1 @@ -/home/jessej/meshview/meshtastic-python/meshtastic/protobuf/ \ No newline at end of file +../meshtastic-python/meshtastic/protobuf/ \ No newline at end of file From 796f572cefac2c9368c0fb9e399bbee106d3006a Mon Sep 17 00:00:00 2001 From: madeofstown Date: Mon, 20 Jan 2025 14:19:49 -0800 Subject: [PATCH 7/9] more meshtastic-python as submodule changes --- meshview/__pycache__/database.cpython-310.pyc | Bin 0 -> 895 bytes .../__pycache__/decode_payload.cpython-310.pyc | Bin 0 -> 1347 bytes meshview/__pycache__/http.cpython-310.pyc | Bin 0 -> 786 bytes meshview/__pycache__/models.cpython-310.pyc | Bin 0 -> 2865 bytes .../__pycache__/mqtt_reader.cpython-312.pyc | Bin 0 -> 3161 bytes meshview/__pycache__/notify.cpython-310.pyc | Bin 0 -> 1992 bytes meshview/__pycache__/store.cpython-310.pyc | Bin 0 -> 7515 bytes meshview/__pycache__/web.cpython-310.pyc | Bin 0 -> 24393 bytes requirements.txt | 1 + 9 files changed, 1 insertion(+) create mode 100644 meshview/__pycache__/database.cpython-310.pyc create mode 100644 meshview/__pycache__/decode_payload.cpython-310.pyc create mode 100644 meshview/__pycache__/http.cpython-310.pyc create mode 100644 meshview/__pycache__/models.cpython-310.pyc create mode 100644 meshview/__pycache__/mqtt_reader.cpython-312.pyc create mode 100644 meshview/__pycache__/notify.cpython-310.pyc create mode 100644 meshview/__pycache__/store.cpython-310.pyc create mode 100644 meshview/__pycache__/web.cpython-310.pyc diff --git a/meshview/__pycache__/database.cpython-310.pyc b/meshview/__pycache__/database.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2cb7d317b110a6665b09668c8904cc67e0a593ac GIT binary patch literal 895 zcmY*Xy>1jS5VrR(d#5{yl87JCBOS#>pp+4UfDklkQXo!3D`!2q^JRa6?c@@a2oSX7 z0jLs*h6msYcnh~wc?BByyqkkyYi7r@_RKfmOx^Ey8P@A}r{nJdV?X`j>Vl6wf|#dJ zl1W~$l8-p|b^tpV1&tlT4o6{QM@3Y|qZoE9lTU1v$OW0=yC6GTY|yZ%mGq~Yy7_TH`5iSu%yLl#9TIHt=Xa2O^RTXgixOF>eZG>0$*D zU1zVZi_ECEbn(ESd!;zc>I2d{MLly7<&*ju;4RYOp3;=nRhHLfsq7$jU1No|W~S^! zdzdb1tI-~}>;K2bAaJ*(uwq*nLWHU!3yv~lwW`K0*_{bJHs6?D!qZ>(Rws2yt5a}B z)76s9}>9#j-`d5XQl7rFL@=8(V3liY#)fS3`~2X5IJ zKWA&~1qR_c`*QPyfoRY-ji&K5Ip?jPvzPcEVSfzg9#8B2%XjAP45Q@tD@a2)-yAIH zYslf^Z9=nMs`pViW09@|e`Tzg` literal 0 HcmV?d00001 diff --git a/meshview/__pycache__/decode_payload.cpython-310.pyc b/meshview/__pycache__/decode_payload.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bda5d7a0dcaebc9615784a32d24c552ad495e7f3 GIT binary patch literal 1347 zcmZux&2HO95Z+z>N~9E3ZQ`aViUvpyJk$<)>Y*s=T8t~8rUa2j8(suiT**{OQCP0* z%1}<}wS9ylIrc5`9DD7lkI(}BnOQlF19*j7=;zD1YM$`=d^njt;}Rk_5?=6+vZ>35BS{l;Yjj18oE55zHF- z-IA9;-75-7vgpcM%h_jNKma?_0Wjm$WK&d=>^CBi@xLA)oL413Sn#^$i-QtUxXAhC zTVr={e0^$vwNbw0Kgu!etS57R2QOwInpAW^P0@Zc&~Cug+4aEK5=kzourm^qtA+&s zKH1V2^f~<=bWBVlsbn*@c|ZyNq_L$L&DhV3lBduJF}Wmx5hZ}bnicE%JTO(W7ak3I z;rQfmC_K1Bbx)T$vUP(qWvxWMlmP?yP_X5?6fM}Q8Q2NLq1x|){RGzPE(n*Jl+iXd z&CcIGwJG~Y+=JzJDuGpSVQQ>HFs@ulUeYaDuvZ%2vI*#nO?QV3&;Z^`BF!ybSPNTA z_JTcUTb7YE5f1@5nXwpn*#aZFo>0;#a0F7SnomSk#u8x7cUTa+PD?pE7@4>WOM#*6 zm2N8KVRfOB*kQNf7e4NXsX;T^p&IPJUBjjDWBPj(e55|bKyp&ce7e69m8{Ozv;Avg z>+$OBbAgptAK$iZmji4;!i0$e{tbw*Q8*}&#T~{6w*`=I-i5vhdtU9$t7=~Gx4FPM zY);(|x-FGI9K`*kKZwSM!=c#2Q=KU6AAkGJVAPME3~(79E;Q2rUMmT|3s1si^i+Rr zC!@ooa5OkgLhXBK_M>C%bdvCgWPB3F@!_%lEU<5MIW%iGIt^c)(Cy}aSytJ);9ub@ cuCd#E@{sxspSp%?Y0i;%XgKpv*Ymyq0B4UulK=n! literal 0 HcmV?d00001 diff --git a/meshview/__pycache__/http.cpython-310.pyc b/meshview/__pycache__/http.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53670303afd362a3933a46b3d97fd416ae8bbc47 GIT binary patch literal 786 zcmYjPy>8S%5Z=GD9VbDE2BaW_D3FYlb3qqH2m}Q*rzoL{6h)4AboSx%I=kzf2tE-6 zEj+_r$#d`)+fwBfC<3!SAQ@@K-*{$cXTDjrxfv6bqmSRl2_xjEcWw&)BhOLILo|{| zT9GL|q?AY|`4@7?q>uyrav29Sgc)VNrEJb z(fL+7oIzD>zpK@(PP2Rp+j)^y71U!mkJAq}E32L1llkQywwA;z&emTvO;xUVcX1}= zu~w}Gvm&|79Up`3M|EqMy5H6{Xg4rm+s1`&U+x{07SOkuwn^Z`Nm)xLn#>lCXHDY* zy*eQZWvmkhv-=gS%sO`BVoW(UpwB>i-`qpPE+Q&u%wo!}#P2w`MI$8r4%PQDI7);I mvr_pj^;7iy^`RTJ{kHmoF4~~b)noIkz5mtm34 zW}GFHDxVjn3$j#=!EZg{ zbS}fiozXc>?z#fF8DQOzR+V2B0fbdh^(^gHQia$U95&m55^3-Y#+TeruRaN!*0aj zfBs(Q5BC6j*u}my_Tg=%QGz@;Ri!@@S&@oG@)(fOG6wtXl=D1KALd+I^D=uf2lO#J z$(VHWsyw32mtH-sMAPcd^cmv7^HWu9!5NneB}0rHg( zA@`Y$2N!?~xXnDOYXQaFu**d-eHJcrdtGi1{5J1XU7z%b^awy60LVjWeV*)+8+(h5lLLbmn8ZS zJvt7FcQEiaiuY02C~l(o0L2)DG#@S+UJDH!7t!Zk2wZ`uz6t{Avjf!GQZ?03hyQNr z?f*cJRDqeBY4jIFFQU|CvMQ-DNKMJ@B99_qu$f z)2fzw0*n|!2kCcSB$3OJI6gxX8Ow|Tc!%T#I(6PlUEN@mZJAoYkyYwviYkP29l3T@-k%#SnzF#d9Ktbf?uU z$+IGB1cKGtb(4xl+LI~t5uQs6lIv1Xk*MoTnoTv!CgMXV*dJZq%q+YeQ-w^Ba-35#HT1eL-7`h&p}A@5D49fFVL}(b00%=1W%2f4LKJ9>sqGm=m9h^d{6@G zFn2TSeu3zD*3o^W1DjsGsh|x})ABpU!OcUAb6Cr`5aM{dv^N~G&7y|nFl3uWymA=a zI-n1L9}WY)u|Du4lHP$xCtOtXhC^@Y^aH>Zd$SDFc>~>KB6z`}x6?8H1OmsqXNBV> zuQIkyla@rluMx3I;O5bJ6z}1{{Ui9od6q6#-AEd&D!DXiDNE>wo1wp`pCBE?9ty%6 zr)ep14<|GpR#h%OLgz-1??4o3P~*k9YAma^g7*`Ei#gcua1hz6pX6yinet*Wu0$bp za0A{9-3QA?E0Ui$;qLp?I0Ad0pI{{eosf13aR literal 0 HcmV?d00001 diff --git a/meshview/__pycache__/mqtt_reader.cpython-312.pyc b/meshview/__pycache__/mqtt_reader.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7860239977f13bf59bd89a6d9e5747903f07a3be GIT binary patch literal 3161 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 literal 0 HcmV?d00001 diff --git a/meshview/__pycache__/store.cpython-310.pyc b/meshview/__pycache__/store.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24c173b6678f555433bc92b3c031294c3edb37ad GIT binary patch literal 7515 zcmbtZ$!{Ci8J`)>#^EAru`JuNE$^lmS$3SH%~CjaoW=nn8?h5NybvSKNFqhf$Zv+0 zWekh7N)HW?!iS!6q5||_^xi{(qKBUQ4-8NsKznh5oRThaYP-Mhz2PECvJjL6zqfC{ zZ+(w`E@w&jJpJ=;7XEcglKxJG{!a>pOZWwrEJ=>!$aSeisZy64N=a#?N-3Gjsk++G zN*d3rb-iJf44&8OW+Pon^SoZS8kth2ku7C;*{J6l`BI+eP2`74Lp-0Z7aGH*;l@a5 zq%m3=ZH$%1c)f)_yGpx|&p6qSrP8>QbMi=cJ3~$Z>4Y=vj3C|Pj5=dT_d2_raisg4 zQ_h65=VQ4v>6~`c}^x;@L-p(ri(Q^}wyWl`vN4n_i_T$7bEWzgqWg2YLO9@6A^ikTY)h zESzmNFhG4ja9Nyt+h)#+&D?i=$F0*i#}4f|J8+TDJ8lKlEc(ROEoN6-<~Ktcse67{onNic?m8dhVH&@`;P*`pFx6H=t){QbYjR7Dq_z>s>$2$4QX-{ou1mKi1tU~^*HWTImTpStlX-&a6iw!<`)!AV;`+B=cPzoSwVpCJJ zAHJzWv?=0X=QD&19hgKc2vriXNUljWIWR~JLZzMRiQ5C^vq>&c5VufYliNn9*OLBA z%6d=eQjXkGqZA2VON+GNT}NrDp)O|TG+nd84CS2En!;@C$*h?FC> zbg{SK^Ke+qvUxn}cZ<=SPH?)1)4iPTi+VdXKD96>?G#Fgof3j{!pYkHCFOz4-V6`4 z4^Sy-Ik>L0jL4vtcR-n=?^S&7#ZXdy@qw8`jjlNmx`#@ezRNt{$Y4ny?r2AHQtaiM1 zg7-d&-d11liDYi8Wr^MbOI2!RaGnd18D+|&Sfz-xi1ZZFQ&Af9Xk>w&^hUxd+B0Zv?p1u+yK6#QLZ0dE}@x- zcFt$P{-!b8S)}K-+{+B#%NM{ipX}p2# ze0fJ|%BcH-Rt{f?Ix8IPtdx~D%V}3zvY&RerI$OU z@JH<*qvjRpm?BF_>D6AzkwiYyG1DQmzZU7WQBijra<$Q=kj>b-w&Q9ZD8UPZ&Zd}~ zed`wdF!LKlotxg+Sccp6nvFP1wdKSH##ZQe^G4!i<4m;XXpNBRwKJU$o+M zVhLe9r%)3cl||e0+Ee{_IE?%d-?2Dk zs_G%0>1-F^o}r1Y1l%$z&eDKsBIk(A5Ya*6?CkY7uU?yd>w5W(8#fq5uY!0M`=)!hT5&~e7OU?8O7=3fUL^7&?{ee%&1<)=U7w`| zVykY4)vyWYT#Yltnoa?+UJ#bi8mC1LZE^nAdv9F1`rh^TZ(Zf1b1SwNmJziq`(6Ns zGWSl?#V{N&PiyHFzd?dBWUts&gn)IoOvnbYkw|Hr?g}p>M;qrvke9?U>= zq_~aN5lkG2V+za6uOJF5V=cGtFS{h>!IvP)N2aXGW6Dub%Biw~D9e;BPEAGs&PuC_ zDQD#g{FEowGu1G8pAq!cyI(~{-+x-U5k*Bm^_iYJERUfdjpDODRaHeP$a&1IJX4gh zB$rRoY9?Pz!B{2P19tJ)GCQ-4r?T=X=)6vuG>G zW4~7J&V0gb9JfNM-T9=D>BQc_HnBHCpEjcJP=)i>Lbawx(grh6vA6NVV{Z|mnmqa* zRCXSmzJ|RCcE65XF(vX{F&PY0O$rT38h(e~0Vy4Y%u_i2%u_ap;)a7G2J9XDwSg)Oq5Z@%%6Y_-Cju2hh`R4um z!ZruLN1uSuCKydFP0F*pqC8cf6*PeQ9a})-qi-Qj6|#Dr4~bJ(r2d1#CS>PZx~hbHOp4TZxLh^|xhDj?FvvV|WQ@x; zw^iIalFt%;_cGJt1DP)K|A@jS=KmB|B(7Gt^hj(X(t6AX8#J)|a8ieh6lXauN9=r3XM`q{E#1d* zEmGSSS~(lrS+1P8UiGn02W!F59oYB5*6bVFfqh$WPF!J$6^tw@TOz_aX7o75>Qu`+ zJ)c2^J_eP^(f$(lz_IYP5B{Il)YkB(_aR7dJS_XB-#^TybP}3W(@v!PTD2YYP4_M@A(v{wgGN zXZd?;5V4{%%NDUi1WB~xzDFD$3ad50>WP^3HENzB!sU&}?_B7(cyS5kaWt1ftxpD@ zk1l`t>4a(>8}Sb;6VSzja6ZHB0e_SFo&~7fAaN;Fbg{mR!X~Vb;T>tU)-5Vvxh8}yUn)UPorpcgknh~mR6 zzSa|6n|aKdsNNut8!%#M-GtE*l1H2z@fW>*A{;T0nu$cFNeVlXM(C``JJ`7kgZPk~ zk6!i+0cvpnqdP7aj_A_sZro z#Kli$p0O3QZ7)LG!1G)Y>Vd;w^x!ytC_F-ZtUev=i4Wb6g!LK_ACepv5*a`uPZlfe zzKG))x(9}k6-4nuR_;9)j9;R4ldPN`&?h|82~Fw-N|Fea+8NTX0dTTAg7eCt>^49d2Yx+EcoSKV5s4ZtD}=p}?3h#d1!%%L@z zr-e0nz2`Kcz&ps@JA=@YTGCCeIJ_mg+;Z_yl0(e3viAzH5$D+Om+5jGFbdV!&xqV6 zvPxt?LPtnK8+St7rQGVm;+)R{{G}xYr1Atd-6s{?H0cgIg4+OYvKrl9m8aHsN_OTO z7NKKNpPd!nYj(D%cJe}6jxiDdJRIGr+x5z#+gR=WH4*1~wbMRp@D0ZY=x>t{PZ`z9 zG;Z;sKi8a}uJFIE%FA;X#H-2FR-KaPH5eas<4-e_TXmy4-i5+f@hD?b9sN}!(6?yI zL!G*5{>l{y!RDOcH!^Mx=mmuTKg0hTVTY(_6PY8jK!l=Z9-uLbPq^dco`KsxMtaXB zm?PQ89?qyqw8rLZ*g&)H{)7Z1xBy~G1qFTvzXJC+^yXmdroq2IH+3sx?KTURVWv%s Ie%Z|b04@eXu>b%7 literal 0 HcmV?d00001 diff --git a/meshview/__pycache__/web.cpython-310.pyc b/meshview/__pycache__/web.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9423e191de1ae8385ec8e6bdef468219c898ae95 GIT binary patch literal 24393 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 Date: Mon, 20 Jan 2025 14:22:45 -0800 Subject: [PATCH 8/9] oops --- .gitignore | 1 + meshview/__pycache__/database.cpython-310.pyc | Bin 895 -> 0 bytes .../__pycache__/decode_payload.cpython-310.pyc | Bin 1347 -> 0 bytes meshview/__pycache__/http.cpython-310.pyc | Bin 786 -> 0 bytes meshview/__pycache__/models.cpython-310.pyc | Bin 2865 -> 0 bytes .../__pycache__/mqtt_reader.cpython-310.pyc | Bin 1670 -> 0 bytes .../__pycache__/mqtt_reader.cpython-312.pyc | Bin 3161 -> 0 bytes meshview/__pycache__/notify.cpython-310.pyc | Bin 1992 -> 0 bytes meshview/__pycache__/store.cpython-310.pyc | Bin 7515 -> 0 bytes meshview/__pycache__/web.cpython-310.pyc | Bin 24393 -> 0 bytes 10 files changed, 1 insertion(+) delete mode 100644 meshview/__pycache__/database.cpython-310.pyc delete mode 100644 meshview/__pycache__/decode_payload.cpython-310.pyc delete mode 100644 meshview/__pycache__/http.cpython-310.pyc delete mode 100644 meshview/__pycache__/models.cpython-310.pyc delete mode 100644 meshview/__pycache__/mqtt_reader.cpython-310.pyc delete mode 100644 meshview/__pycache__/mqtt_reader.cpython-312.pyc delete mode 100644 meshview/__pycache__/notify.cpython-310.pyc delete mode 100644 meshview/__pycache__/store.cpython-310.pyc delete mode 100644 meshview/__pycache__/web.cpython-310.pyc diff --git a/.gitignore b/.gitignore index 6564e3e..c946735 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ env/* __pycache__/* +meshview/__pycache__/* packets.db /table_details.py diff --git a/meshview/__pycache__/database.cpython-310.pyc b/meshview/__pycache__/database.cpython-310.pyc deleted file mode 100644 index 2cb7d317b110a6665b09668c8904cc67e0a593ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmY*Xy>1jS5VrR(d#5{yl87JCBOS#>pp+4UfDklkQXo!3D`!2q^JRa6?c@@a2oSX7 z0jLs*h6msYcnh~wc?BByyqkkyYi7r@_RKfmOx^Ey8P@A}r{nJdV?X`j>Vl6wf|#dJ zl1W~$l8-p|b^tpV1&tlT4o6{QM@3Y|qZoE9lTU1v$OW0=yC6GTY|yZ%mGq~Yy7_TH`5iSu%yLl#9TIHt=Xa2O^RTXgixOF>eZG>0$*D zU1zVZi_ECEbn(ESd!;zc>I2d{MLly7<&*ju;4RYOp3;=nRhHLfsq7$jU1No|W~S^! zdzdb1tI-~}>;K2bAaJ*(uwq*nLWHU!3yv~lwW`K0*_{bJHs6?D!qZ>(Rws2yt5a}B z)76s9}>9#j-`d5XQl7rFL@=8(V3liY#)fS3`~2X5IJ zKWA&~1qR_c`*QPyfoRY-ji&K5Ip?jPvzPcEVSfzg9#8B2%XjAP45Q@tD@a2)-yAIH zYslf^Z9=nMs`pViW09@|e`Tzg` diff --git a/meshview/__pycache__/decode_payload.cpython-310.pyc b/meshview/__pycache__/decode_payload.cpython-310.pyc deleted file mode 100644 index bda5d7a0dcaebc9615784a32d24c552ad495e7f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1347 zcmZux&2HO95Z+z>N~9E3ZQ`aViUvpyJk$<)>Y*s=T8t~8rUa2j8(suiT**{OQCP0* z%1}<}wS9ylIrc5`9DD7lkI(}BnOQlF19*j7=;zD1YM$`=d^njt;}Rk_5?=6+vZ>35BS{l;Yjj18oE55zHF- z-IA9;-75-7vgpcM%h_jNKma?_0Wjm$WK&d=>^CBi@xLA)oL413Sn#^$i-QtUxXAhC zTVr={e0^$vwNbw0Kgu!etS57R2QOwInpAW^P0@Zc&~Cug+4aEK5=kzourm^qtA+&s zKH1V2^f~<=bWBVlsbn*@c|ZyNq_L$L&DhV3lBduJF}Wmx5hZ}bnicE%JTO(W7ak3I z;rQfmC_K1Bbx)T$vUP(qWvxWMlmP?yP_X5?6fM}Q8Q2NLq1x|){RGzPE(n*Jl+iXd z&CcIGwJG~Y+=JzJDuGpSVQQ>HFs@ulUeYaDuvZ%2vI*#nO?QV3&;Z^`BF!ybSPNTA z_JTcUTb7YE5f1@5nXwpn*#aZFo>0;#a0F7SnomSk#u8x7cUTa+PD?pE7@4>WOM#*6 zm2N8KVRfOB*kQNf7e4NXsX;T^p&IPJUBjjDWBPj(e55|bKyp&ce7e69m8{Ozv;Avg z>+$OBbAgptAK$iZmji4;!i0$e{tbw*Q8*}&#T~{6w*`=I-i5vhdtU9$t7=~Gx4FPM zY);(|x-FGI9K`*kKZwSM!=c#2Q=KU6AAkGJVAPME3~(79E;Q2rUMmT|3s1si^i+Rr zC!@ooa5OkgLhXBK_M>C%bdvCgWPB3F@!_%lEU<5MIW%iGIt^c)(Cy}aSytJ);9ub@ cuCd#E@{sxspSp%?Y0i;%XgKpv*Ymyq0B4UulK=n! diff --git a/meshview/__pycache__/http.cpython-310.pyc b/meshview/__pycache__/http.cpython-310.pyc deleted file mode 100644 index 53670303afd362a3933a46b3d97fd416ae8bbc47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmYjPy>8S%5Z=GD9VbDE2BaW_D3FYlb3qqH2m}Q*rzoL{6h)4AboSx%I=kzf2tE-6 zEj+_r$#d`)+fwBfC<3!SAQ@@K-*{$cXTDjrxfv6bqmSRl2_xjEcWw&)BhOLILo|{| zT9GL|q?AY|`4@7?q>uyrav29Sgc)VNrEJb z(fL+7oIzD>zpK@(PP2Rp+j)^y71U!mkJAq}E32L1llkQywwA;z&emTvO;xUVcX1}= zu~w}Gvm&|79Up`3M|EqMy5H6{Xg4rm+s1`&U+x{07SOkuwn^Z`Nm)xLn#>lCXHDY* zy*eQZWvmkhv-=gS%sO`BVoW(UpwB>i-`qpPE+Q&u%wo!}#P2w`MI$8r4%PQDI7);I mvr_pj^;7iy^`RTJ{kHmoF4~~b)noIkz5mtm34 zW}GFHDxVjn3$j#=!EZg{ zbS}fiozXc>?z#fF8DQOzR+V2B0fbdh^(^gHQia$U95&m55^3-Y#+TeruRaN!*0aj zfBs(Q5BC6j*u}my_Tg=%QGz@;Ri!@@S&@oG@)(fOG6wtXl=D1KALd+I^D=uf2lO#J z$(VHWsyw32mtH-sMAPcd^cmv7^HWu9!5NneB}0rHg( zA@`Y$2N!?~xXnDOYXQaFu**d-eHJcrdtGi1{5J1XU7z%b^awy60LVjWeV*)+8+(h5lLLbmn8ZS zJvt7FcQEiaiuY02C~l(o0L2)DG#@S+UJDH!7t!Zk2wZ`uz6t{Avjf!GQZ?03hyQNr z?f*cJRDqeBY4jIFFQU|CvMQ-DNKMJ@B99_qu$f z)2fzw0*n|!2kCcSB$3OJI6gxX8Ow|Tc!%T#I(6PlUEN@mZJAoYkyYwviYkP29l3T@-k%#SnzF#d9Ktbf?uU z$+IGB1cKGtb(4xl+LI~t5uQs6lIv1Xk*MoTnoTv!CgMXV*dJZq%q+YeQ-w^Ba-35#HT1eL-7`h&p}A@5D49fFVL}(b00%=1W%2f4LKJ9>sqGm=m9h^d{6@G zFn2TSeu3zD*3o^W1DjsGsh|x})ABpU!OcUAb6Cr`5aM{dv^N~G&7y|nFl3uWymA=a zI-n1L9}WY)u|Du4lHP$xCtOtXhC^@Y^aH>Zd$SDFc>~>KB6z`}x6?8H1OmsqXNBV> zuQIkyla@rluMx3I;O5bJ6z}1{{Ui9od6q6#-AEd&D!DXiDNE>wo1wp`pCBE?9ty%6 zr)ep14<|GpR#h%OLgz-1??4o3P~*k9YAma^g7*`Ei#gcua1hz6pX6yinet*Wu0$bp za0A{9-3QA?E0Ui$;qLp?I0Ad0pI{{eosf13aR diff --git a/meshview/__pycache__/mqtt_reader.cpython-310.pyc b/meshview/__pycache__/mqtt_reader.cpython-310.pyc deleted file mode 100644 index 7ef6c7b2272b631ae8ec47bb4c5823b51fa04fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1670 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 diff --git a/meshview/__pycache__/store.cpython-310.pyc b/meshview/__pycache__/store.cpython-310.pyc deleted file mode 100644 index 24c173b6678f555433bc92b3c031294c3edb37ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7515 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 Ie%Z|b04@eXu>b%7 diff --git a/meshview/__pycache__/web.cpython-310.pyc b/meshview/__pycache__/web.cpython-310.pyc deleted file mode 100644 index 9423e191de1ae8385ec8e6bdef468219c898ae95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24393 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 Date: Mon, 20 Jan 2025 20:23:27 -0800 Subject: [PATCH 9/9] Graphs and Dark Mode --- meshview/templates/base.html | 2 +- meshview/templates/chat.html | 4 +-- meshview/templates/firehose.html | 4 +-- meshview/templates/node.html | 19 +++++++------ meshview/templates/node_graphs.html | 43 +++++++++++++++++++++++------ meshview/templates/packet_list.html | 2 +- meshview/web.py | 25 +++++++++++++++++ requirements.txt | 1 - 8 files changed, 77 insertions(+), 23 deletions(-) diff --git a/meshview/templates/base.html b/meshview/templates/base.html index a1d207c..5e64342 100644 --- a/meshview/templates/base.html +++ b/meshview/templates/base.html @@ -1,5 +1,5 @@ - + MeshView - Bay Area Mesh - http://bayme.sh {% if node and node.short_name %}-- {{node.short_name}}{% endif %} diff --git a/meshview/templates/chat.html b/meshview/templates/chat.html index b40e7be..48eb783 100644 --- a/meshview/templates/chat.html +++ b/meshview/templates/chat.html @@ -5,10 +5,10 @@ min-width:10em; } .chat-packet:nth-of-type(odd){ - background-color:#CCC; + background-color:#1f1f1f; } .chat-packet:nth-of-type(even){ - background-color:#EEE; + background-color:#181818; } {% endblock %} diff --git a/meshview/templates/firehose.html b/meshview/templates/firehose.html index fcfe27f..c5e36b8 100644 --- a/meshview/templates/firehose.html +++ b/meshview/templates/firehose.html @@ -26,14 +26,14 @@
-
+
{% for packet in packets %} {% include 'packet.html' %} {% else %} No packets found. {% endfor %}
-
+
{% endblock %} diff --git a/meshview/templates/node.html b/meshview/templates/node.html index d5cb012..88f7da6 100644 --- a/meshview/templates/node.html +++ b/meshview/templates/node.html @@ -13,6 +13,9 @@ overflow: scroll; top: 3em; } + div.tab-pane > dl { + display: inline-block; + } {% endblock %} {% block body %} @@ -27,7 +30,7 @@ {% endif %} >
-
+
{% if node %}
@@ -35,11 +38,11 @@
-
short name
+
ShortName
{{node.short_name}}
-
hw model
+
HW Model
{{node.hw_model}}
-
role
+
Role
{{node.role}}
{% include "node_graphs.html" %} @@ -51,8 +54,8 @@ {% endif %}
-
-
+
+
@@ -63,10 +66,10 @@
+
{% include 'packet_list.html' %} -
-
+
diff --git a/meshview/templates/node_graphs.html b/meshview/templates/node_graphs.html index 7d27985..24fa0fe 100644 --- a/meshview/templates/node_graphs.html +++ b/meshview/templates/node_graphs.html @@ -11,7 +11,7 @@
  • - +
  • @@ -20,17 +20,44 @@
    - {{ graph("power") }} - {{ graph("chutil") }} +
    +
    Power
    +
    {{ graph("power") }}
    +
    +
    +
    ChUtil
    +
    {{ graph("chutil") }}
    +
    - {{ graph("temperature") }} - {{ graph("humidity") }} - {{ graph("wind_speed") }} - {{ graph("wind_direction") }} +
    +
    Temperature
    +
    {{ graph("temperature") }}
    +
    +
    +
    Humidity
    +
    {{ graph("humidity") }}
    +
    +
    +
    Pressure
    +
    {{ graph("pressure") }}
    +
    +
    +
    Indoor Air Quality
    +
    {{ graph("iaq") }}
    +
    +
    +
    Wind Speed
    +
    {{ graph("wind_speed") }}
    +
    +
    +
    Wind Direction
    +
    {{ graph("wind_direction") }}
    +
    {{ graph("power_metrics") }} diff --git a/meshview/templates/packet_list.html b/meshview/templates/packet_list.html index 42d1757..f90c58f 100644 --- a/meshview/templates/packet_list.html +++ b/meshview/templates/packet_list.html @@ -1,4 +1,4 @@ -
    +
    {% for packet in packets %} {% include 'packet.html' %} {% else %} diff --git a/meshview/web.py b/meshview/web.py index 10d9862..87d31e9 100644 --- a/meshview/web.py +++ b/meshview/web.py @@ -654,6 +654,31 @@ async def graph_humidity(request): ], ) +@routes.get("/graph/pressure/{node_id}") +async def graph_pressure(request): + return await graph_telemetry( + int(request.match_info['node_id']), + 'environment_metrics', + [ + { + 'label': 'barometric pressure', + 'fields': ['barometric_pressure'], + }, + ], + ) + +@routes.get("/graph/iaq/{node_id}") +async def graph_pressure(request): + return await graph_telemetry( + int(request.match_info['node_id']), + 'environment_metrics', + [ + { + 'label': 'IAQ', + 'fields': ['iaq'], + }, + ], + ) @routes.get("/graph/power_metrics/{node_id}") async def graph_power_metrics(request): diff --git a/requirements.txt b/requirements.txt index d27bc6a..e064e6a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,4 +11,3 @@ asyncpg seaborn pydot plotly -graphviz