From 1b932c6bbe8dcf89c966044624def35924296f58 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 18 Jan 2023 07:53:19 -0600 Subject: [PATCH] Fix scripts patch and remove files in previous dir --- bin/regen-protos.bat | 2 +- bin/regen-protos.sh | 2 +- src/mesh/generated/admin.pb.c | 14 - src/mesh/generated/admin.pb.h | 249 ----- src/mesh/generated/apponly.pb.c | 12 - src/mesh/generated/apponly.pb.h | 63 -- src/mesh/generated/cannedmessages.pb.c | 12 - src/mesh/generated/cannedmessages.pb.h | 49 - src/mesh/generated/channel.pb.c | 16 - src/mesh/generated/channel.pb.h | 172 ---- src/mesh/generated/config.pb.c | 46 - src/mesh/generated/config.pb.h | 707 -------------- src/mesh/generated/device_metadata.pb.c | 12 - src/mesh/generated/device_metadata.pb.h | 69 -- src/mesh/generated/deviceonly.pb.c | 19 - src/mesh/generated/deviceonly.pb.h | 184 ---- src/mesh/generated/localonly.pb.c | 15 - src/mesh/generated/localonly.pb.h | 166 ---- src/mesh/generated/mesh.pb.c | 60 -- src/mesh/generated/mesh.pb.h | 1159 ----------------------- src/mesh/generated/module_config.pb.c | 43 - src/mesh/generated/module_config.pb.h | 568 ----------- src/mesh/generated/mqtt.pb.c | 12 - src/mesh/generated/mqtt.pb.h | 61 -- src/mesh/generated/portnums.pb.c | 10 - src/mesh/generated/portnums.pb.h | 112 --- src/mesh/generated/remote_hardware.pb.c | 13 - src/mesh/generated/remote_hardware.pb.h | 93 -- src/mesh/generated/rtttl.pb.c | 12 - src/mesh/generated/rtttl.pb.h | 49 - src/mesh/generated/storeforward.pb.c | 22 - src/mesh/generated/storeforward.pb.h | 213 ----- src/mesh/generated/telemetry.pb.c | 19 - src/mesh/generated/telemetry.pb.h | 172 ---- src/mesh/generated/xmodem.pb.c | 13 - src/mesh/generated/xmodem.pb.h | 77 -- 36 files changed, 2 insertions(+), 4515 deletions(-) delete mode 100644 src/mesh/generated/admin.pb.c delete mode 100644 src/mesh/generated/admin.pb.h delete mode 100644 src/mesh/generated/apponly.pb.c delete mode 100644 src/mesh/generated/apponly.pb.h delete mode 100644 src/mesh/generated/cannedmessages.pb.c delete mode 100644 src/mesh/generated/cannedmessages.pb.h delete mode 100644 src/mesh/generated/channel.pb.c delete mode 100644 src/mesh/generated/channel.pb.h delete mode 100644 src/mesh/generated/config.pb.c delete mode 100644 src/mesh/generated/config.pb.h delete mode 100644 src/mesh/generated/device_metadata.pb.c delete mode 100644 src/mesh/generated/device_metadata.pb.h delete mode 100644 src/mesh/generated/deviceonly.pb.c delete mode 100644 src/mesh/generated/deviceonly.pb.h delete mode 100644 src/mesh/generated/localonly.pb.c delete mode 100644 src/mesh/generated/localonly.pb.h delete mode 100644 src/mesh/generated/mesh.pb.c delete mode 100644 src/mesh/generated/mesh.pb.h delete mode 100644 src/mesh/generated/module_config.pb.c delete mode 100644 src/mesh/generated/module_config.pb.h delete mode 100644 src/mesh/generated/mqtt.pb.c delete mode 100644 src/mesh/generated/mqtt.pb.h delete mode 100644 src/mesh/generated/portnums.pb.c delete mode 100644 src/mesh/generated/portnums.pb.h delete mode 100644 src/mesh/generated/remote_hardware.pb.c delete mode 100644 src/mesh/generated/remote_hardware.pb.h delete mode 100644 src/mesh/generated/rtttl.pb.c delete mode 100644 src/mesh/generated/rtttl.pb.h delete mode 100644 src/mesh/generated/storeforward.pb.c delete mode 100644 src/mesh/generated/storeforward.pb.h delete mode 100644 src/mesh/generated/telemetry.pb.c delete mode 100644 src/mesh/generated/telemetry.pb.h delete mode 100644 src/mesh/generated/xmodem.pb.c delete mode 100644 src/mesh/generated/xmodem.pb.h diff --git a/bin/regen-protos.bat b/bin/regen-protos.bat index 748363d78..29f35d0ae 100644 --- a/bin/regen-protos.bat +++ b/bin/regen-protos.bat @@ -1 +1 @@ -cd protobufs && ..\nanopb-0.4.7\generator-bin\protoc.exe --nanopb_out=-v:..\src\mesh\generated -I=..\protobufs meshtastic\*.proto +cd protobufs && ..\nanopb-0.4.7\generator-bin\protoc.exe --nanopb_out=-v:..\src\mesh\generated\meshtastic -I=..\protobufs meshtastic\*.proto diff --git a/bin/regen-protos.sh b/bin/regen-protos.sh index df1a3a9d8..bf3cf7ca0 100755 --- a/bin/regen-protos.sh +++ b/bin/regen-protos.sh @@ -8,7 +8,7 @@ echo "prebuilt binaries for your computer into nanopb-0.4.7" # the nanopb tool seems to require that the .options file be in the current directory! cd protobufs -../nanopb-0.4.7/generator-bin/protoc --nanopb_out=-v:../src/mesh/generated -I=../protobufs meshtastic/*.proto +../nanopb-0.4.7/generator-bin/protoc --nanopb_out=-v:../src/mesh/generated/meshtastic -I=../protobufs meshtastic/*.proto #echo "Regenerating protobuf documentation - if you see an error message" #echo "you can ignore it unless doing a new protobuf release to github." diff --git a/src/mesh/generated/admin.pb.c b/src/mesh/generated/admin.pb.c deleted file mode 100644 index 3fdd0cb3d..000000000 --- a/src/mesh/generated/admin.pb.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "admin.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(AdminMessage, AdminMessage, 2) - - - - - diff --git a/src/mesh/generated/admin.pb.h b/src/mesh/generated/admin.pb.h deleted file mode 100644 index a00376f21..000000000 --- a/src/mesh/generated/admin.pb.h +++ /dev/null @@ -1,249 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_ADMIN_PB_H_INCLUDED -#define PB_ADMIN_PB_H_INCLUDED -#include -#include "channel.pb.h" -#include "config.pb.h" -#include "device_metadata.pb.h" -#include "mesh.pb.h" -#include "module_config.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* TODO: REPLACE */ -typedef enum _AdminMessage_ConfigType { - /* TODO: REPLACE */ - AdminMessage_ConfigType_DEVICE_CONFIG = 0, - /* TODO: REPLACE */ - AdminMessage_ConfigType_POSITION_CONFIG = 1, - /* TODO: REPLACE */ - AdminMessage_ConfigType_POWER_CONFIG = 2, - /* TODO: REPLACE */ - AdminMessage_ConfigType_NETWORK_CONFIG = 3, - /* TODO: REPLACE */ - AdminMessage_ConfigType_DISPLAY_CONFIG = 4, - /* TODO: REPLACE */ - AdminMessage_ConfigType_LORA_CONFIG = 5, - /* TODO: REPLACE */ - AdminMessage_ConfigType_BLUETOOTH_CONFIG = 6 -} AdminMessage_ConfigType; - -/* TODO: REPLACE */ -typedef enum _AdminMessage_ModuleConfigType { - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_MQTT_CONFIG = 0, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_SERIAL_CONFIG = 1, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_EXTNOTIF_CONFIG = 2, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_STOREFORWARD_CONFIG = 3, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_RANGETEST_CONFIG = 4, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_TELEMETRY_CONFIG = 5, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_CANNEDMSG_CONFIG = 6, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_AUDIO_CONFIG = 7, - /* TODO: REPLACE */ - AdminMessage_ModuleConfigType_REMOTEHARDWARE_CONFIG = 8 -} AdminMessage_ModuleConfigType; - -/* Struct definitions */ -/* This message is handled by the Admin module and is responsible for all settings/channel read/write operations. - This message is used to do settings operations to both remote AND local nodes. - (Prior to 1.2 these operations were done via special ToRadio operations) */ -typedef struct _AdminMessage { - pb_size_t which_payload_variant; - union { - /* Send the specified channel in the response to this message - NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present) */ - uint32_t get_channel_request; - /* TODO: REPLACE */ - Channel get_channel_response; - /* Send the current owner data in the response to this message. */ - bool get_owner_request; - /* TODO: REPLACE */ - User get_owner_response; - /* Ask for the following config data to be sent */ - AdminMessage_ConfigType get_config_request; - /* Send the current Config in the response to this message. */ - Config get_config_response; - /* Ask for the following config data to be sent */ - AdminMessage_ModuleConfigType get_module_config_request; - /* Send the current Config in the response to this message. */ - ModuleConfig get_module_config_response; - /* Get the Canned Message Module messages in the response to this message. */ - bool get_canned_message_module_messages_request; - /* Get the Canned Message Module messages in the response to this message. */ - char get_canned_message_module_messages_response[201]; - /* Request the node to send device metadata (firmware, protobuf version, etc) */ - bool get_device_metadata_request; - /* Device metadata response */ - DeviceMetadata get_device_metadata_response; - /* Get the Ringtone in the response to this message. */ - bool get_ringtone_request; - /* Get the Ringtone in the response to this message. */ - char get_ringtone_response[231]; - /* Set the owner for this node */ - User set_owner; - /* Set channels (using the new API). - A special channel is the "primary channel". - The other records are secondary channels. - Note: only one channel can be marked as primary. - If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically. */ - Channel set_channel; - /* Set the current Config */ - Config set_config; - /* Set the current Config */ - ModuleConfig set_module_config; - /* Set the Canned Message Module messages text. */ - char set_canned_message_module_messages[201]; - /* Set the ringtone for ExternalNotification. */ - char set_ringtone_message[231]; - /* Begins an edit transaction for config, module config, owner, and channel settings changes - This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings) */ - bool begin_edit_settings; - /* Commits an open transaction for any edits made to config, module config, owner, and channel settings */ - bool commit_edit_settings; - /* Setting channels/radio config remotely carries the risk that you might send an invalid config and the radio never talks to your mesh again. - Therefore if setting either of these properties remotely, you must send a confirm_xxx message within 10 minutes. - If you fail to do so, the radio will assume loss of comms and revert your changes. - These messages are optional when changing the local node. */ - bool confirm_set_channel; - /* TODO: REPLACE */ - bool confirm_set_radio; - /* Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot) - Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth. */ - int32_t reboot_ota_seconds; - /* This message is only supported for the simulator porduino build. - If received the simulator will exit successfully. */ - bool exit_simulator; - /* Tell the node to reboot in this many seconds (or <0 to cancel reboot) */ - int32_t reboot_seconds; - /* Tell the node to shutdown in this many seconds (or <0 to cancel shutdown) */ - int32_t shutdown_seconds; - /* Tell the node to factory reset, all device settings will be returned to factory defaults. */ - int32_t factory_reset; - /* Tell the node to reset the nodedb. */ - int32_t nodedb_reset; - }; -} AdminMessage; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _AdminMessage_ConfigType_MIN AdminMessage_ConfigType_DEVICE_CONFIG -#define _AdminMessage_ConfigType_MAX AdminMessage_ConfigType_BLUETOOTH_CONFIG -#define _AdminMessage_ConfigType_ARRAYSIZE ((AdminMessage_ConfigType)(AdminMessage_ConfigType_BLUETOOTH_CONFIG+1)) - -#define _AdminMessage_ModuleConfigType_MIN AdminMessage_ModuleConfigType_MQTT_CONFIG -#define _AdminMessage_ModuleConfigType_MAX AdminMessage_ModuleConfigType_REMOTEHARDWARE_CONFIG -#define _AdminMessage_ModuleConfigType_ARRAYSIZE ((AdminMessage_ModuleConfigType)(AdminMessage_ModuleConfigType_REMOTEHARDWARE_CONFIG+1)) - -#define AdminMessage_payload_variant_get_config_request_ENUMTYPE AdminMessage_ConfigType -#define AdminMessage_payload_variant_get_module_config_request_ENUMTYPE AdminMessage_ModuleConfigType - - -/* Initializer values for message structs */ -#define AdminMessage_init_default {0, {0}} -#define AdminMessage_init_zero {0, {0}} - -/* Field tags (for use in manual encoding/decoding) */ -#define AdminMessage_get_channel_request_tag 1 -#define AdminMessage_get_channel_response_tag 2 -#define AdminMessage_get_owner_request_tag 3 -#define AdminMessage_get_owner_response_tag 4 -#define AdminMessage_get_config_request_tag 5 -#define AdminMessage_get_config_response_tag 6 -#define AdminMessage_get_module_config_request_tag 7 -#define AdminMessage_get_module_config_response_tag 8 -#define AdminMessage_get_canned_message_module_messages_request_tag 10 -#define AdminMessage_get_canned_message_module_messages_response_tag 11 -#define AdminMessage_get_device_metadata_request_tag 12 -#define AdminMessage_get_device_metadata_response_tag 13 -#define AdminMessage_get_ringtone_request_tag 14 -#define AdminMessage_get_ringtone_response_tag 15 -#define AdminMessage_set_owner_tag 32 -#define AdminMessage_set_channel_tag 33 -#define AdminMessage_set_config_tag 34 -#define AdminMessage_set_module_config_tag 35 -#define AdminMessage_set_canned_message_module_messages_tag 36 -#define AdminMessage_set_ringtone_message_tag 37 -#define AdminMessage_begin_edit_settings_tag 64 -#define AdminMessage_commit_edit_settings_tag 65 -#define AdminMessage_confirm_set_channel_tag 66 -#define AdminMessage_confirm_set_radio_tag 67 -#define AdminMessage_reboot_ota_seconds_tag 95 -#define AdminMessage_exit_simulator_tag 96 -#define AdminMessage_reboot_seconds_tag 97 -#define AdminMessage_shutdown_seconds_tag 98 -#define AdminMessage_factory_reset_tag 99 -#define AdminMessage_nodedb_reset_tag 100 - -/* Struct field encoding specification for nanopb */ -#define AdminMessage_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, UINT32, (payload_variant,get_channel_request,get_channel_request), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,get_channel_response,get_channel_response), 2) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,get_owner_request,get_owner_request), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,get_owner_response,get_owner_response), 4) \ -X(a, STATIC, ONEOF, UENUM, (payload_variant,get_config_request,get_config_request), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,get_config_response,get_config_response), 6) \ -X(a, STATIC, ONEOF, UENUM, (payload_variant,get_module_config_request,get_module_config_request), 7) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,get_module_config_response,get_module_config_response), 8) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,get_canned_message_module_messages_request,get_canned_message_module_messages_request), 10) \ -X(a, STATIC, ONEOF, STRING, (payload_variant,get_canned_message_module_messages_response,get_canned_message_module_messages_response), 11) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,get_device_metadata_request,get_device_metadata_request), 12) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,get_device_metadata_response,get_device_metadata_response), 13) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,get_ringtone_request,get_ringtone_request), 14) \ -X(a, STATIC, ONEOF, STRING, (payload_variant,get_ringtone_response,get_ringtone_response), 15) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,set_owner,set_owner), 32) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,set_channel,set_channel), 33) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,set_config,set_config), 34) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,set_module_config,set_module_config), 35) \ -X(a, STATIC, ONEOF, STRING, (payload_variant,set_canned_message_module_messages,set_canned_message_module_messages), 36) \ -X(a, STATIC, ONEOF, STRING, (payload_variant,set_ringtone_message,set_ringtone_message), 37) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,begin_edit_settings,begin_edit_settings), 64) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,commit_edit_settings,commit_edit_settings), 65) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,confirm_set_channel,confirm_set_channel), 66) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,confirm_set_radio,confirm_set_radio), 67) \ -X(a, STATIC, ONEOF, INT32, (payload_variant,reboot_ota_seconds,reboot_ota_seconds), 95) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,exit_simulator,exit_simulator), 96) \ -X(a, STATIC, ONEOF, INT32, (payload_variant,reboot_seconds,reboot_seconds), 97) \ -X(a, STATIC, ONEOF, INT32, (payload_variant,shutdown_seconds,shutdown_seconds), 98) \ -X(a, STATIC, ONEOF, INT32, (payload_variant,factory_reset,factory_reset), 99) \ -X(a, STATIC, ONEOF, INT32, (payload_variant,nodedb_reset,nodedb_reset), 100) -#define AdminMessage_CALLBACK NULL -#define AdminMessage_DEFAULT NULL -#define AdminMessage_payload_variant_get_channel_response_MSGTYPE Channel -#define AdminMessage_payload_variant_get_owner_response_MSGTYPE User -#define AdminMessage_payload_variant_get_config_response_MSGTYPE Config -#define AdminMessage_payload_variant_get_module_config_response_MSGTYPE ModuleConfig -#define AdminMessage_payload_variant_get_device_metadata_response_MSGTYPE DeviceMetadata -#define AdminMessage_payload_variant_set_owner_MSGTYPE User -#define AdminMessage_payload_variant_set_channel_MSGTYPE Channel -#define AdminMessage_payload_variant_set_config_MSGTYPE Config -#define AdminMessage_payload_variant_set_module_config_MSGTYPE ModuleConfig - -extern const pb_msgdesc_t AdminMessage_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define AdminMessage_fields &AdminMessage_msg - -/* Maximum encoded size of messages (where known) */ -#define AdminMessage_size 234 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/apponly.pb.c b/src/mesh/generated/apponly.pb.c deleted file mode 100644 index ce68d47c6..000000000 --- a/src/mesh/generated/apponly.pb.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "apponly.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ChannelSet, ChannelSet, 2) - - - diff --git a/src/mesh/generated/apponly.pb.h b/src/mesh/generated/apponly.pb.h deleted file mode 100644 index e0a6d7cd5..000000000 --- a/src/mesh/generated/apponly.pb.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_APPONLY_PB_H_INCLUDED -#define PB_APPONLY_PB_H_INCLUDED -#include -#include "channel.pb.h" -#include "config.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* This is the most compact possible representation for a set of channels. - It includes only one PRIMARY channel (which must be first) and - any SECONDARY channels. - No DISABLED channels are included. - This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL */ -typedef struct _ChannelSet { - /* Channel list with settings */ - pb_size_t settings_count; - ChannelSettings settings[8]; - /* LoRa config */ - bool has_lora_config; - Config_LoRaConfig lora_config; -} ChannelSet; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ChannelSet_init_default {0, {ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default, ChannelSettings_init_default}, false, Config_LoRaConfig_init_default} -#define ChannelSet_init_zero {0, {ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero, ChannelSettings_init_zero}, false, Config_LoRaConfig_init_zero} - -/* Field tags (for use in manual encoding/decoding) */ -#define ChannelSet_settings_tag 1 -#define ChannelSet_lora_config_tag 2 - -/* Struct field encoding specification for nanopb */ -#define ChannelSet_FIELDLIST(X, a) \ -X(a, STATIC, REPEATED, MESSAGE, settings, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, lora_config, 2) -#define ChannelSet_CALLBACK NULL -#define ChannelSet_DEFAULT NULL -#define ChannelSet_settings_MSGTYPE ChannelSettings -#define ChannelSet_lora_config_MSGTYPE Config_LoRaConfig - -extern const pb_msgdesc_t ChannelSet_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ChannelSet_fields &ChannelSet_msg - -/* Maximum encoded size of messages (where known) */ -#define ChannelSet_size 584 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/cannedmessages.pb.c b/src/mesh/generated/cannedmessages.pb.c deleted file mode 100644 index 448517f13..000000000 --- a/src/mesh/generated/cannedmessages.pb.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "cannedmessages.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(CannedMessageModuleConfig, CannedMessageModuleConfig, AUTO) - - - diff --git a/src/mesh/generated/cannedmessages.pb.h b/src/mesh/generated/cannedmessages.pb.h deleted file mode 100644 index 4981fef18..000000000 --- a/src/mesh/generated/cannedmessages.pb.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_CANNEDMESSAGES_PB_H_INCLUDED -#define PB_CANNEDMESSAGES_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* Canned message module configuration. */ -typedef struct _CannedMessageModuleConfig { - /* Predefined messages for canned message module separated by '|' characters. */ - char messages[201]; -} CannedMessageModuleConfig; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define CannedMessageModuleConfig_init_default {""} -#define CannedMessageModuleConfig_init_zero {""} - -/* Field tags (for use in manual encoding/decoding) */ -#define CannedMessageModuleConfig_messages_tag 1 - -/* Struct field encoding specification for nanopb */ -#define CannedMessageModuleConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, STRING, messages, 1) -#define CannedMessageModuleConfig_CALLBACK NULL -#define CannedMessageModuleConfig_DEFAULT NULL - -extern const pb_msgdesc_t CannedMessageModuleConfig_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define CannedMessageModuleConfig_fields &CannedMessageModuleConfig_msg - -/* Maximum encoded size of messages (where known) */ -#define CannedMessageModuleConfig_size 203 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/channel.pb.c b/src/mesh/generated/channel.pb.c deleted file mode 100644 index d8e4d8332..000000000 --- a/src/mesh/generated/channel.pb.c +++ /dev/null @@ -1,16 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "channel.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ChannelSettings, ChannelSettings, AUTO) - - -PB_BIND(Channel, Channel, AUTO) - - - - diff --git a/src/mesh/generated/channel.pb.h b/src/mesh/generated/channel.pb.h deleted file mode 100644 index 2dc16bce5..000000000 --- a/src/mesh/generated/channel.pb.h +++ /dev/null @@ -1,172 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_CHANNEL_PB_H_INCLUDED -#define PB_CHANNEL_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* How this channel is being used (or not). - Note: this field is an enum to give us options for the future. - In particular, someday we might make a 'SCANNING' option. - SCANNING channels could have different frequencies and the radio would - occasionally check that freq to see if anything is being transmitted. - For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow - cross band routing as needed. - If a device has only a single radio (the common case) only one channel can be PRIMARY at a time - (but any number of SECONDARY channels can't be sent received on that common frequency) */ -typedef enum _Channel_Role { - /* This channel is not in use right now */ - Channel_Role_DISABLED = 0, - /* This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY */ - Channel_Role_PRIMARY = 1, - /* Secondary channels are only used for encryption/decryption/authentication purposes. - Their radio settings (freq etc) are ignored, only psk is used. */ - Channel_Role_SECONDARY = 2 -} Channel_Role; - -/* Struct definitions */ -typedef PB_BYTES_ARRAY_T(32) ChannelSettings_psk_t; -/* Full settings (center freq, spread factor, pre-shared secret key etc...) - needed to configure a radio for speaking on a particular channel This - information can be encoded as a QRcode/url so that other users can configure - their radio to join the same channel. - A note about how channel names are shown to users: channelname-Xy - poundsymbol is a prefix used to indicate this is a channel name (idea from @professr). - Where X is a letter from A-Z (base 26) representing a hash of the PSK for this - channel - so that if the user changes anything about the channel (which does - force a new PSK) this letter will also change. Thus preventing user confusion if - two friends try to type in a channel name of "BobsChan" and then can't talk - because their PSKs will be different. - The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26" - This also allows the option of someday if people have the PSK off (zero), the - users COULD type in a channel name and be able to talk. - Y is a lower case letter from a-z that represents the channel 'speed' settings - (for some future definition of speed) - FIXME: Add description of multi-channel support and how primary vs secondary channels are used. - FIXME: explain how apps use channels for security. - explain how remote settings and remote gpio are managed as an example */ -typedef struct _ChannelSettings { - /* Deprecated in favor of LoraConfig.channel_num */ - uint32_t channel_num; - /* A simple pre-shared key for now for crypto. - Must be either 0 bytes (no crypto), 16 bytes (AES128), or 32 bytes (AES256). - A special shorthand is used for 1 byte long psks. - These psks should be treated as only minimally secure, - because they are listed in this source code. - Those bytes are mapped using the following scheme: - `0` = No crypto - `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf} - `2` through 10 = The default channel key, except with 1 through 9 added to the last byte. - Shown to user as simple1 through 10 */ - ChannelSettings_psk_t psk; - /* A SHORT name that will be packed into the URL. - Less than 12 bytes. - Something for end users to call the channel - If this is the empty string it is assumed that this channel - is the special (minimally secure) "Default"channel. - In user interfaces it should be rendered as a local language translation of "X". - For channel_num hashing empty string will be treated as "X". - Where "X" is selected based on the English words listed above for ModemPreset */ - char name[12]; - /* Used to construct a globally unique channel ID. - The full globally unique ID will be: "name.id" where ID is shown as base36. - Assuming that the number of meshtastic users is below 20K (true for a long time) - the chance of this 64 bit random number colliding with anyone else is super low. - And the penalty for collision is low as well, it just means that anyone trying to decrypt channel messages might need to - try multiple candidate channels. - Any time a non wire compatible change is made to a channel, this field should be regenerated. - There are a small number of 'special' globally known (and fairly) insecure standard channels. - Those channels do not have a numeric id included in the settings, but instead it is pulled from - a table of well known IDs. - (see Well Known Channels FIXME) */ - uint32_t id; - /* If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe */ - bool uplink_enabled; - /* If true, messages seen on the internet will be forwarded to the local mesh. */ - bool downlink_enabled; -} ChannelSettings; - -/* A pair of a channel number, mode and the (sharable) settings for that channel */ -typedef struct _Channel { - /* The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1) - (Someday - not currently implemented) An index of -1 could be used to mean "set by name", - in which case the target node will find and set the channel by settings.name. */ - int8_t index; - /* The new settings, or NULL to disable that channel */ - bool has_settings; - ChannelSettings settings; - /* TODO: REPLACE */ - Channel_Role role; -} Channel; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _Channel_Role_MIN Channel_Role_DISABLED -#define _Channel_Role_MAX Channel_Role_SECONDARY -#define _Channel_Role_ARRAYSIZE ((Channel_Role)(Channel_Role_SECONDARY+1)) - - -#define Channel_role_ENUMTYPE Channel_Role - - -/* Initializer values for message structs */ -#define ChannelSettings_init_default {0, {0, {0}}, "", 0, 0, 0} -#define Channel_init_default {0, false, ChannelSettings_init_default, _Channel_Role_MIN} -#define ChannelSettings_init_zero {0, {0, {0}}, "", 0, 0, 0} -#define Channel_init_zero {0, false, ChannelSettings_init_zero, _Channel_Role_MIN} - -/* Field tags (for use in manual encoding/decoding) */ -#define ChannelSettings_channel_num_tag 1 -#define ChannelSettings_psk_tag 2 -#define ChannelSettings_name_tag 3 -#define ChannelSettings_id_tag 4 -#define ChannelSettings_uplink_enabled_tag 5 -#define ChannelSettings_downlink_enabled_tag 6 -#define Channel_index_tag 1 -#define Channel_settings_tag 2 -#define Channel_role_tag 3 - -/* Struct field encoding specification for nanopb */ -#define ChannelSettings_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, channel_num, 1) \ -X(a, STATIC, SINGULAR, BYTES, psk, 2) \ -X(a, STATIC, SINGULAR, STRING, name, 3) \ -X(a, STATIC, SINGULAR, FIXED32, id, 4) \ -X(a, STATIC, SINGULAR, BOOL, uplink_enabled, 5) \ -X(a, STATIC, SINGULAR, BOOL, downlink_enabled, 6) -#define ChannelSettings_CALLBACK NULL -#define ChannelSettings_DEFAULT NULL - -#define Channel_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, INT32, index, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, settings, 2) \ -X(a, STATIC, SINGULAR, UENUM, role, 3) -#define Channel_CALLBACK NULL -#define Channel_DEFAULT NULL -#define Channel_settings_MSGTYPE ChannelSettings - -extern const pb_msgdesc_t ChannelSettings_msg; -extern const pb_msgdesc_t Channel_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ChannelSettings_fields &ChannelSettings_msg -#define Channel_fields &Channel_msg - -/* Maximum encoded size of messages (where known) */ -#define ChannelSettings_size 62 -#define Channel_size 77 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/config.pb.c b/src/mesh/generated/config.pb.c deleted file mode 100644 index d43f4beae..000000000 --- a/src/mesh/generated/config.pb.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "config.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(Config, Config, AUTO) - - -PB_BIND(Config_DeviceConfig, Config_DeviceConfig, AUTO) - - -PB_BIND(Config_PositionConfig, Config_PositionConfig, AUTO) - - -PB_BIND(Config_PowerConfig, Config_PowerConfig, AUTO) - - -PB_BIND(Config_NetworkConfig, Config_NetworkConfig, AUTO) - - -PB_BIND(Config_NetworkConfig_IpV4Config, Config_NetworkConfig_IpV4Config, AUTO) - - -PB_BIND(Config_DisplayConfig, Config_DisplayConfig, AUTO) - - -PB_BIND(Config_LoRaConfig, Config_LoRaConfig, 2) - - -PB_BIND(Config_BluetoothConfig, Config_BluetoothConfig, AUTO) - - - - - - - - - - - - - diff --git a/src/mesh/generated/config.pb.h b/src/mesh/generated/config.pb.h deleted file mode 100644 index a6c84306e..000000000 --- a/src/mesh/generated/config.pb.h +++ /dev/null @@ -1,707 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_CONFIG_PB_H_INCLUDED -#define PB_CONFIG_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* Defines the device's role on the Mesh network */ -typedef enum _Config_DeviceConfig_Role { - /* Client device role */ - Config_DeviceConfig_Role_CLIENT = 0, - /* Client Mute device role - Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh. */ - Config_DeviceConfig_Role_CLIENT_MUTE = 1, - /* Router device role. - Mesh packets will prefer to be routed over this node. This node will not be used by client apps. - The wifi/ble radios and the oled screen will be put to sleep. */ - Config_DeviceConfig_Role_ROUTER = 2, - /* Router Client device role - Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client. */ - Config_DeviceConfig_Role_ROUTER_CLIENT = 3 -} Config_DeviceConfig_Role; - -/* Bit field of boolean configuration options, indicating which optional - fields to include when assembling POSITION messages - Longitude and latitude are always included (also time if GPS-synced) - NOTE: the more fields are included, the larger the message will be - - leading to longer airtime and a higher risk of packet loss */ -typedef enum _Config_PositionConfig_PositionFlags { - /* Required for compilation */ - Config_PositionConfig_PositionFlags_UNSET = 0, - /* Include an altitude value (if available) */ - Config_PositionConfig_PositionFlags_ALTITUDE = 1, - /* Altitude value is MSL */ - Config_PositionConfig_PositionFlags_ALTITUDE_MSL = 2, - /* Include geoidal separation */ - Config_PositionConfig_PositionFlags_GEOIDAL_SEPARATION = 4, - /* Include the DOP value ; PDOP used by default, see below */ - Config_PositionConfig_PositionFlags_DOP = 8, - /* If POS_DOP set, send separate HDOP / VDOP values instead of PDOP */ - Config_PositionConfig_PositionFlags_HVDOP = 16, - /* Include number of "satellites in view" */ - Config_PositionConfig_PositionFlags_SATINVIEW = 32, - /* Include a sequence number incremented per packet */ - Config_PositionConfig_PositionFlags_SEQ_NO = 64, - /* Include positional timestamp (from GPS solution) */ - Config_PositionConfig_PositionFlags_TIMESTAMP = 128, - /* Include positional heading - Intended for use with vehicle not walking speeds - walking speeds are likely to be error prone like the compass */ - Config_PositionConfig_PositionFlags_HEADING = 256, - /* Include positional speed - Intended for use with vehicle not walking speeds - walking speeds are likely to be error prone like the compass */ - Config_PositionConfig_PositionFlags_SPEED = 512 -} Config_PositionConfig_PositionFlags; - -typedef enum _Config_NetworkConfig_AddressMode { - /* obtain ip address via DHCP */ - Config_NetworkConfig_AddressMode_DHCP = 0, - /* use static ip address */ - Config_NetworkConfig_AddressMode_STATIC = 1 -} Config_NetworkConfig_AddressMode; - -/* How the GPS coordinates are displayed on the OLED screen. */ -typedef enum _Config_DisplayConfig_GpsCoordinateFormat { - /* GPS coordinates are displayed in the normal decimal degrees format: - DD.DDDDDD DDD.DDDDDD */ - Config_DisplayConfig_GpsCoordinateFormat_DEC = 0, - /* GPS coordinates are displayed in the degrees minutes seconds format: - DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant */ - Config_DisplayConfig_GpsCoordinateFormat_DMS = 1, - /* Universal Transverse Mercator format: - ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing */ - Config_DisplayConfig_GpsCoordinateFormat_UTM = 2, - /* Military Grid Reference System format: - ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square, - E is easting, N is northing */ - Config_DisplayConfig_GpsCoordinateFormat_MGRS = 3, - /* Open Location Code (aka Plus Codes). */ - Config_DisplayConfig_GpsCoordinateFormat_OLC = 4, - /* Ordnance Survey Grid Reference (the National Grid System of the UK). - Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square, - E is the easting, N is the northing */ - Config_DisplayConfig_GpsCoordinateFormat_OSGR = 5 -} Config_DisplayConfig_GpsCoordinateFormat; - -/* Unit display preference */ -typedef enum _Config_DisplayConfig_DisplayUnits { - /* Metric (Default) */ - Config_DisplayConfig_DisplayUnits_METRIC = 0, - /* Imperial */ - Config_DisplayConfig_DisplayUnits_IMPERIAL = 1 -} Config_DisplayConfig_DisplayUnits; - -/* Override OLED outo detect with this if it fails. */ -typedef enum _Config_DisplayConfig_OledType { - /* Default / Auto */ - Config_DisplayConfig_OledType_OLED_AUTO = 0, - /* Default / Auto */ - Config_DisplayConfig_OledType_OLED_SSD1306 = 1, - /* Default / Auto */ - Config_DisplayConfig_OledType_OLED_SH1106 = 2 -} Config_DisplayConfig_OledType; - -typedef enum _Config_DisplayConfig_DisplayMode { - /* Default. The old style for the 128x64 OLED screen */ - Config_DisplayConfig_DisplayMode_DEFAULT = 0, - /* Rearrange display elements to cater for bicolor OLED displays */ - Config_DisplayConfig_DisplayMode_TWOCOLOR = 1, - /* Same as TwoColor, but with inverted top bar. Not so good for Epaper displays */ - Config_DisplayConfig_DisplayMode_INVERTED = 2, - /* TFT Full Color Displays (not implemented yet) */ - Config_DisplayConfig_DisplayMode_COLOR = 3 -} Config_DisplayConfig_DisplayMode; - -typedef enum _Config_LoRaConfig_RegionCode { - /* Region is not set */ - Config_LoRaConfig_RegionCode_UNSET = 0, - /* United States */ - Config_LoRaConfig_RegionCode_US = 1, - /* European Union 433mhz */ - Config_LoRaConfig_RegionCode_EU_433 = 2, - /* European Union 433mhz */ - Config_LoRaConfig_RegionCode_EU_868 = 3, - /* China */ - Config_LoRaConfig_RegionCode_CN = 4, - /* Japan */ - Config_LoRaConfig_RegionCode_JP = 5, - /* Australia / New Zealand */ - Config_LoRaConfig_RegionCode_ANZ = 6, - /* Korea */ - Config_LoRaConfig_RegionCode_KR = 7, - /* Taiwan */ - Config_LoRaConfig_RegionCode_TW = 8, - /* Russia */ - Config_LoRaConfig_RegionCode_RU = 9, - /* India */ - Config_LoRaConfig_RegionCode_IN = 10, - /* New Zealand 865mhz */ - Config_LoRaConfig_RegionCode_NZ_865 = 11, - /* Thailand */ - Config_LoRaConfig_RegionCode_TH = 12, - /* WLAN Band */ - Config_LoRaConfig_RegionCode_LORA_24 = 13, - /* Ukraine 433mhz */ - Config_LoRaConfig_RegionCode_UA_433 = 14, - /* Ukraine 868mhz */ - Config_LoRaConfig_RegionCode_UA_868 = 15 -} Config_LoRaConfig_RegionCode; - -/* Standard predefined channel settings - Note: these mappings must match ModemPreset Choice in the device code. */ -typedef enum _Config_LoRaConfig_ModemPreset { - /* Long Range - Fast */ - Config_LoRaConfig_ModemPreset_LONG_FAST = 0, - /* Long Range - Slow */ - Config_LoRaConfig_ModemPreset_LONG_SLOW = 1, - /* Very Long Range - Slow */ - Config_LoRaConfig_ModemPreset_VERY_LONG_SLOW = 2, - /* Medium Range - Slow */ - Config_LoRaConfig_ModemPreset_MEDIUM_SLOW = 3, - /* Medium Range - Fast */ - Config_LoRaConfig_ModemPreset_MEDIUM_FAST = 4, - /* Short Range - Slow */ - Config_LoRaConfig_ModemPreset_SHORT_SLOW = 5, - /* Short Range - Fast */ - Config_LoRaConfig_ModemPreset_SHORT_FAST = 6 -} Config_LoRaConfig_ModemPreset; - -typedef enum _Config_BluetoothConfig_PairingMode { - /* Device generates a random pin that will be shown on the screen of the device for pairing */ - Config_BluetoothConfig_PairingMode_RANDOM_PIN = 0, - /* Device requires a specified fixed pin for pairing */ - Config_BluetoothConfig_PairingMode_FIXED_PIN = 1, - /* Device requires no pin for pairing */ - Config_BluetoothConfig_PairingMode_NO_PIN = 2 -} Config_BluetoothConfig_PairingMode; - -/* Struct definitions */ -/* Configuration */ -typedef struct _Config_DeviceConfig { - /* Sets the role of node */ - Config_DeviceConfig_Role role; - /* Disabling this will disable the SerialConsole by not initilizing the StreamAPI */ - bool serial_enabled; - /* By default we turn off logging as soon as an API client connects (to keep shared serial link quiet). - Set this to true to leave the debug log outputting even when API is active. */ - bool debug_log_enabled; - /* For boards without a hard wired button, this is the pin number that will be used - Boards that have more than one button can swap the function with this one. defaults to BUTTON_PIN if defined. */ - uint32_t button_gpio; - /* For boards without a PWM buzzer, this is the pin number that will be used - Defaults to PIN_BUZZER if defined. */ - uint32_t buzzer_gpio; -} Config_DeviceConfig; - -/* Position Config */ -typedef struct _Config_PositionConfig { - /* We should send our position this often (but only if it has changed significantly) - Defaults to 15 minutes */ - uint32_t position_broadcast_secs; - /* Adaptive position braoadcast, which is now the default. */ - bool position_broadcast_smart_enabled; - /* If set, this node is at a fixed position. - We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node. - The lat/lon/alt can be set by an internal GPS or with the help of the app. */ - bool fixed_position; - /* Is GPS enabled for this node? */ - bool gps_enabled; - /* How often should we try to get GPS position (in seconds) - or zero for the default of once every 30 seconds - or a very large value (maxint) to update only once at boot. */ - uint32_t gps_update_interval; - /* How long should we try to get our position during each gps_update_interval attempt? (in seconds) - Or if zero, use the default of 30 seconds. - If we don't get a new gps fix in that time, the gps will be put into sleep until the next gps_update_rate - window. */ - uint32_t gps_attempt_time; - /* Bit field of boolean configuration options for POSITION messages - (bitwise OR of PositionFlags) */ - uint32_t position_flags; - /* (Re)define GPS_RX_PIN for your board. */ - uint32_t rx_gpio; - /* (Re)define GPS_TX_PIN for your board. */ - uint32_t tx_gpio; -} Config_PositionConfig; - -/* Power Config\ - See [Power Config](/docs/settings/config/power) for additional power config details. */ -typedef struct _Config_PowerConfig { - /* If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in - we should try to minimize power consumption as much as possible. - YOU DO NOT NEED TO SET THIS IF YOU'VE set is_router (it is implied in that case). - Advanced Option */ - bool is_power_saving; - /* If non-zero, the device will fully power off this many seconds after external power is removed. */ - uint32_t on_battery_shutdown_after_secs; - /* Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k) - Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation. - Should be set to floating point value between 2 and 4 - Fixes issues on Heltec v2 */ - float adc_multiplier_override; - /* Wait Bluetooth Seconds - The number of seconds for to wait before turning off BLE in No Bluetooth states - 0 for default of 1 minute */ - uint32_t wait_bluetooth_secs; - /* Mesh Super Deep Sleep Timeout Seconds - While in Light Sleep if this value is exceeded we will lower into super deep sleep - for sds_secs (default 1 year) or a button press - 0 for default of two hours, MAXUINT for disabled */ - uint32_t mesh_sds_timeout_secs; - /* Super Deep Sleep Seconds - While in Light Sleep if mesh_sds_timeout_secs is exceeded we will lower into super deep sleep - for this value (default 1 year) or a button press - 0 for default of one year */ - uint32_t sds_secs; - /* Light Sleep Seconds - In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on - ESP32 Only - 0 for default of 300 */ - uint32_t ls_secs; - /* Minimum Wake Seconds - While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value - 0 for default of 10 seconds */ - uint32_t min_wake_secs; -} Config_PowerConfig; - -typedef struct _Config_NetworkConfig_IpV4Config { - /* Static IP address */ - uint32_t ip; - /* Static gateway address */ - uint32_t gateway; - /* Static subnet mask */ - uint32_t subnet; - /* Static DNS server address */ - uint32_t dns; -} Config_NetworkConfig_IpV4Config; - -/* Network Config */ -typedef struct _Config_NetworkConfig { - /* Enable WiFi (disables Bluetooth) */ - bool wifi_enabled; - /* If set, this node will try to join the specified wifi network and - acquire an address via DHCP */ - char wifi_ssid[33]; - /* If set, will be use to authenticate to the named wifi */ - char wifi_psk[64]; - /* NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org` */ - char ntp_server[33]; - /* Enable Ethernet */ - bool eth_enabled; - /* acquire an address via DHCP or assign static */ - Config_NetworkConfig_AddressMode address_mode; - /* struct to keep static address */ - bool has_ipv4_config; - Config_NetworkConfig_IpV4Config ipv4_config; -} Config_NetworkConfig; - -/* Display Config */ -typedef struct _Config_DisplayConfig { - /* Number of seconds the screen stays on after pressing the user button or receiving a message - 0 for default of one minute MAXUINT for always on */ - uint32_t screen_on_secs; - /* How the GPS coordinates are formatted on the OLED screen. */ - Config_DisplayConfig_GpsCoordinateFormat gps_format; - /* Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds. - Potentially useful for devices without user buttons. */ - uint32_t auto_screen_carousel_secs; - /* If this is set, the displayed compass will always point north. if unset, the old behaviour - (top of display is heading direction) is used. */ - bool compass_north_top; - /* Flip screen vertically, for cases that mount the screen upside down */ - bool flip_screen; - /* Perferred display units */ - Config_DisplayConfig_DisplayUnits units; - /* Override auto-detect in screen */ - Config_DisplayConfig_OledType oled; - /* Display Mode */ - Config_DisplayConfig_DisplayMode displaymode; - /* Print first line in pseudo-bold? FALSE is original style, TRUE is bold */ - bool heading_bold; -} Config_DisplayConfig; - -/* Lora Config */ -typedef struct _Config_LoRaConfig { - /* When enabled, the `modem_preset` fields will be adheared to, else the `bandwidth`/`spread_factor`/`coding_rate` - will be taked from their respective manually defined fields */ - bool use_preset; - /* Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH. - As a heuristic: If bandwidth is specified, do not use modem_config. - Because protobufs take ZERO space when the value is zero this works out nicely. - This value is replaced by bandwidth/spread_factor/coding_rate. - If you'd like to experiment with other options add them to MeshRadio.cpp in the device code. */ - Config_LoRaConfig_ModemPreset modem_preset; - /* Bandwidth in MHz - Certain bandwidth numbers are 'special' and will be converted to the - appropriate floating point value: 31 -> 31.25MHz */ - uint16_t bandwidth; - /* A number from 7 to 12. - Indicates number of chirps per symbol as 1< - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* Device metadata response */ -typedef struct _DeviceMetadata { - /* Device firmware version string */ - char firmware_version[18]; - /* Device state version */ - uint32_t device_state_version; - /* Indicates whether the device can shutdown CPU natively or via power management chip */ - bool canShutdown; - /* Indicates that the device has native wifi capability */ - bool hasWifi; - /* Indicates that the device has native bluetooth capability */ - bool hasBluetooth; - /* Indicates that the device has an ethernet peripheral */ - bool hasEthernet; -} DeviceMetadata; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define DeviceMetadata_init_default {"", 0, 0, 0, 0, 0} -#define DeviceMetadata_init_zero {"", 0, 0, 0, 0, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define DeviceMetadata_firmware_version_tag 1 -#define DeviceMetadata_device_state_version_tag 2 -#define DeviceMetadata_canShutdown_tag 3 -#define DeviceMetadata_hasWifi_tag 4 -#define DeviceMetadata_hasBluetooth_tag 5 -#define DeviceMetadata_hasEthernet_tag 6 - -/* Struct field encoding specification for nanopb */ -#define DeviceMetadata_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, STRING, firmware_version, 1) \ -X(a, STATIC, SINGULAR, UINT32, device_state_version, 2) \ -X(a, STATIC, SINGULAR, BOOL, canShutdown, 3) \ -X(a, STATIC, SINGULAR, BOOL, hasWifi, 4) \ -X(a, STATIC, SINGULAR, BOOL, hasBluetooth, 5) \ -X(a, STATIC, SINGULAR, BOOL, hasEthernet, 6) -#define DeviceMetadata_CALLBACK NULL -#define DeviceMetadata_DEFAULT NULL - -extern const pb_msgdesc_t DeviceMetadata_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define DeviceMetadata_fields &DeviceMetadata_msg - -/* Maximum encoded size of messages (where known) */ -#define DeviceMetadata_size 33 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/deviceonly.pb.c b/src/mesh/generated/deviceonly.pb.c deleted file mode 100644 index e3acb0db4..000000000 --- a/src/mesh/generated/deviceonly.pb.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "deviceonly.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(DeviceState, DeviceState, 4) - - -PB_BIND(ChannelFile, ChannelFile, 2) - - -PB_BIND(OEMStore, OEMStore, 2) - - - - diff --git a/src/mesh/generated/deviceonly.pb.h b/src/mesh/generated/deviceonly.pb.h deleted file mode 100644 index 1a95a0970..000000000 --- a/src/mesh/generated/deviceonly.pb.h +++ /dev/null @@ -1,184 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_DEVICEONLY_PB_H_INCLUDED -#define PB_DEVICEONLY_PB_H_INCLUDED -#include -#include "channel.pb.h" -#include "mesh.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* TODO: REPLACE */ -typedef enum _ScreenFonts { - /* TODO: REPLACE */ - ScreenFonts_FONT_SMALL = 0, - /* TODO: REPLACE */ - ScreenFonts_FONT_MEDIUM = 1, - /* TODO: REPLACE */ - ScreenFonts_FONT_LARGE = 2 -} ScreenFonts; - -/* Struct definitions */ -/* This message is never sent over the wire, but it is used for serializing DB - state to flash in the device code - FIXME, since we write this each time we enter deep sleep (and have infinite - flash) it would be better to use some sort of append only data structure for - the receive queue and use the preferences store for the other stuff */ -typedef struct _DeviceState { - /* Read only settings/info about this node */ - bool has_my_node; - MyNodeInfo my_node; - /* My owner info */ - bool has_owner; - User owner; - /* TODO: REPLACE */ - pb_size_t node_db_count; - NodeInfo node_db[80]; - /* Received packets saved for delivery to the phone */ - pb_size_t receive_queue_count; - MeshPacket receive_queue[1]; - /* We keep the last received text message (only) stored in the device flash, - so we can show it on the screen. - Might be null */ - bool has_rx_text_message; - MeshPacket rx_text_message; - /* A version integer used to invalidate old save files when we make - incompatible changes This integer is set at build time and is private to - NodeDB.cpp in the device code. */ - uint32_t version; - /* Used only during development. - Indicates developer is testing and changes should never be saved to flash. */ - bool no_save; - /* Some GPSes seem to have bogus settings from the factory, so we always do one factory reset. */ - bool did_gps_reset; -} DeviceState; - -/* The on-disk saved channels */ -typedef struct _ChannelFile { - /* The channels our node knows about */ - pb_size_t channels_count; - Channel channels[8]; - /* A version integer used to invalidate old save files when we make - incompatible changes This integer is set at build time and is private to - NodeDB.cpp in the device code. */ - uint32_t version; -} ChannelFile; - -typedef PB_BYTES_ARRAY_T(2048) OEMStore_oem_icon_bits_t; -typedef PB_BYTES_ARRAY_T(32) OEMStore_oem_aes_key_t; -/* This can be used for customizing the firmware distribution. If populated, - show a secondary bootup screen with cuatom logo and text for 2.5 seconds. */ -typedef struct _OEMStore { - /* The Logo width in Px */ - uint32_t oem_icon_width; - /* The Logo height in Px */ - uint32_t oem_icon_height; - /* The Logo in xbm bytechar format */ - OEMStore_oem_icon_bits_t oem_icon_bits; - /* Use this font for the OEM text. */ - ScreenFonts oem_font; - /* Use this font for the OEM text. */ - char oem_text[40]; - /* The default device encryption key, 16 or 32 byte */ - OEMStore_oem_aes_key_t oem_aes_key; -} OEMStore; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _ScreenFonts_MIN ScreenFonts_FONT_SMALL -#define _ScreenFonts_MAX ScreenFonts_FONT_LARGE -#define _ScreenFonts_ARRAYSIZE ((ScreenFonts)(ScreenFonts_FONT_LARGE+1)) - - - -#define OEMStore_oem_font_ENUMTYPE ScreenFonts - - -/* Initializer values for message structs */ -#define DeviceState_init_default {false, MyNodeInfo_init_default, false, User_init_default, 0, {NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default}, 0, {MeshPacket_init_default}, false, MeshPacket_init_default, 0, 0, 0} -#define ChannelFile_init_default {0, {Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default}, 0} -#define OEMStore_init_default {0, 0, {0, {0}}, _ScreenFonts_MIN, "", {0, {0}}} -#define DeviceState_init_zero {false, MyNodeInfo_init_zero, false, User_init_zero, 0, {NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero}, 0, {MeshPacket_init_zero}, false, MeshPacket_init_zero, 0, 0, 0} -#define ChannelFile_init_zero {0, {Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero}, 0} -#define OEMStore_init_zero {0, 0, {0, {0}}, _ScreenFonts_MIN, "", {0, {0}}} - -/* Field tags (for use in manual encoding/decoding) */ -#define DeviceState_my_node_tag 2 -#define DeviceState_owner_tag 3 -#define DeviceState_node_db_tag 4 -#define DeviceState_receive_queue_tag 5 -#define DeviceState_rx_text_message_tag 7 -#define DeviceState_version_tag 8 -#define DeviceState_no_save_tag 9 -#define DeviceState_did_gps_reset_tag 11 -#define ChannelFile_channels_tag 1 -#define ChannelFile_version_tag 2 -#define OEMStore_oem_icon_width_tag 1 -#define OEMStore_oem_icon_height_tag 2 -#define OEMStore_oem_icon_bits_tag 3 -#define OEMStore_oem_font_tag 4 -#define OEMStore_oem_text_tag 5 -#define OEMStore_oem_aes_key_tag 6 - -/* Struct field encoding specification for nanopb */ -#define DeviceState_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, my_node, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, owner, 3) \ -X(a, STATIC, REPEATED, MESSAGE, node_db, 4) \ -X(a, STATIC, REPEATED, MESSAGE, receive_queue, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, rx_text_message, 7) \ -X(a, STATIC, SINGULAR, UINT32, version, 8) \ -X(a, STATIC, SINGULAR, BOOL, no_save, 9) \ -X(a, STATIC, SINGULAR, BOOL, did_gps_reset, 11) -#define DeviceState_CALLBACK NULL -#define DeviceState_DEFAULT NULL -#define DeviceState_my_node_MSGTYPE MyNodeInfo -#define DeviceState_owner_MSGTYPE User -#define DeviceState_node_db_MSGTYPE NodeInfo -#define DeviceState_receive_queue_MSGTYPE MeshPacket -#define DeviceState_rx_text_message_MSGTYPE MeshPacket - -#define ChannelFile_FIELDLIST(X, a) \ -X(a, STATIC, REPEATED, MESSAGE, channels, 1) \ -X(a, STATIC, SINGULAR, UINT32, version, 2) -#define ChannelFile_CALLBACK NULL -#define ChannelFile_DEFAULT NULL -#define ChannelFile_channels_MSGTYPE Channel - -#define OEMStore_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, oem_icon_width, 1) \ -X(a, STATIC, SINGULAR, UINT32, oem_icon_height, 2) \ -X(a, STATIC, SINGULAR, BYTES, oem_icon_bits, 3) \ -X(a, STATIC, SINGULAR, UENUM, oem_font, 4) \ -X(a, STATIC, SINGULAR, STRING, oem_text, 5) \ -X(a, STATIC, SINGULAR, BYTES, oem_aes_key, 6) -#define OEMStore_CALLBACK NULL -#define OEMStore_DEFAULT NULL - -extern const pb_msgdesc_t DeviceState_msg; -extern const pb_msgdesc_t ChannelFile_msg; -extern const pb_msgdesc_t OEMStore_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define DeviceState_fields &DeviceState_msg -#define ChannelFile_fields &ChannelFile_msg -#define OEMStore_fields &OEMStore_msg - -/* Maximum encoded size of messages (where known) */ -#define ChannelFile_size 638 -#define DeviceState_size 21800 -#define OEMStore_size 2140 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/localonly.pb.c b/src/mesh/generated/localonly.pb.c deleted file mode 100644 index 4eac55fd7..000000000 --- a/src/mesh/generated/localonly.pb.c +++ /dev/null @@ -1,15 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "localonly.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(LocalConfig, LocalConfig, 2) - - -PB_BIND(LocalModuleConfig, LocalModuleConfig, 2) - - - diff --git a/src/mesh/generated/localonly.pb.h b/src/mesh/generated/localonly.pb.h deleted file mode 100644 index 1e4aa633c..000000000 --- a/src/mesh/generated/localonly.pb.h +++ /dev/null @@ -1,166 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_LOCALONLY_PB_H_INCLUDED -#define PB_LOCALONLY_PB_H_INCLUDED -#include -#include "config.pb.h" -#include "module_config.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -typedef struct _LocalConfig { - /* The part of the config that is specific to the Device */ - bool has_device; - Config_DeviceConfig device; - /* The part of the config that is specific to the GPS Position */ - bool has_position; - Config_PositionConfig position; - /* The part of the config that is specific to the Power settings */ - bool has_power; - Config_PowerConfig power; - /* The part of the config that is specific to the Wifi Settings */ - bool has_network; - Config_NetworkConfig network; - /* The part of the config that is specific to the Display */ - bool has_display; - Config_DisplayConfig display; - /* The part of the config that is specific to the Lora Radio */ - bool has_lora; - Config_LoRaConfig lora; - /* The part of the config that is specific to the Bluetooth settings */ - bool has_bluetooth; - Config_BluetoothConfig bluetooth; - /* A version integer used to invalidate old save files when we make - incompatible changes This integer is set at build time and is private to - NodeDB.cpp in the device code. */ - uint32_t version; -} LocalConfig; - -typedef struct _LocalModuleConfig { - /* The part of the config that is specific to the MQTT module */ - bool has_mqtt; - ModuleConfig_MQTTConfig mqtt; - /* The part of the config that is specific to the Serial module */ - bool has_serial; - ModuleConfig_SerialConfig serial; - /* The part of the config that is specific to the ExternalNotification module */ - bool has_external_notification; - ModuleConfig_ExternalNotificationConfig external_notification; - /* The part of the config that is specific to the Store & Forward module */ - bool has_store_forward; - ModuleConfig_StoreForwardConfig store_forward; - /* The part of the config that is specific to the RangeTest module */ - bool has_range_test; - ModuleConfig_RangeTestConfig range_test; - /* The part of the config that is specific to the Telemetry module */ - bool has_telemetry; - ModuleConfig_TelemetryConfig telemetry; - /* The part of the config that is specific to the Canned Message module */ - bool has_canned_message; - ModuleConfig_CannedMessageConfig canned_message; - /* A version integer used to invalidate old save files when we make - incompatible changes This integer is set at build time and is private to - NodeDB.cpp in the device code. */ - uint32_t version; - /* The part of the config that is specific to the Audio module */ - bool has_audio; - ModuleConfig_AudioConfig audio; - /* The part of the config that is specific to the Remote Hardware module */ - bool has_remote_hardware; - ModuleConfig_RemoteHardwareConfig remote_hardware; -} LocalModuleConfig; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define LocalConfig_init_default {false, Config_DeviceConfig_init_default, false, Config_PositionConfig_init_default, false, Config_PowerConfig_init_default, false, Config_NetworkConfig_init_default, false, Config_DisplayConfig_init_default, false, Config_LoRaConfig_init_default, false, Config_BluetoothConfig_init_default, 0} -#define LocalModuleConfig_init_default {false, ModuleConfig_MQTTConfig_init_default, false, ModuleConfig_SerialConfig_init_default, false, ModuleConfig_ExternalNotificationConfig_init_default, false, ModuleConfig_StoreForwardConfig_init_default, false, ModuleConfig_RangeTestConfig_init_default, false, ModuleConfig_TelemetryConfig_init_default, false, ModuleConfig_CannedMessageConfig_init_default, 0, false, ModuleConfig_AudioConfig_init_default, false, ModuleConfig_RemoteHardwareConfig_init_default} -#define LocalConfig_init_zero {false, Config_DeviceConfig_init_zero, false, Config_PositionConfig_init_zero, false, Config_PowerConfig_init_zero, false, Config_NetworkConfig_init_zero, false, Config_DisplayConfig_init_zero, false, Config_LoRaConfig_init_zero, false, Config_BluetoothConfig_init_zero, 0} -#define LocalModuleConfig_init_zero {false, ModuleConfig_MQTTConfig_init_zero, false, ModuleConfig_SerialConfig_init_zero, false, ModuleConfig_ExternalNotificationConfig_init_zero, false, ModuleConfig_StoreForwardConfig_init_zero, false, ModuleConfig_RangeTestConfig_init_zero, false, ModuleConfig_TelemetryConfig_init_zero, false, ModuleConfig_CannedMessageConfig_init_zero, 0, false, ModuleConfig_AudioConfig_init_zero, false, ModuleConfig_RemoteHardwareConfig_init_zero} - -/* Field tags (for use in manual encoding/decoding) */ -#define LocalConfig_device_tag 1 -#define LocalConfig_position_tag 2 -#define LocalConfig_power_tag 3 -#define LocalConfig_network_tag 4 -#define LocalConfig_display_tag 5 -#define LocalConfig_lora_tag 6 -#define LocalConfig_bluetooth_tag 7 -#define LocalConfig_version_tag 8 -#define LocalModuleConfig_mqtt_tag 1 -#define LocalModuleConfig_serial_tag 2 -#define LocalModuleConfig_external_notification_tag 3 -#define LocalModuleConfig_store_forward_tag 4 -#define LocalModuleConfig_range_test_tag 5 -#define LocalModuleConfig_telemetry_tag 6 -#define LocalModuleConfig_canned_message_tag 7 -#define LocalModuleConfig_version_tag 8 -#define LocalModuleConfig_audio_tag 9 -#define LocalModuleConfig_remote_hardware_tag 10 - -/* Struct field encoding specification for nanopb */ -#define LocalConfig_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, device, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, position, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, power, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, network, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, display, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, lora, 6) \ -X(a, STATIC, OPTIONAL, MESSAGE, bluetooth, 7) \ -X(a, STATIC, SINGULAR, UINT32, version, 8) -#define LocalConfig_CALLBACK NULL -#define LocalConfig_DEFAULT NULL -#define LocalConfig_device_MSGTYPE Config_DeviceConfig -#define LocalConfig_position_MSGTYPE Config_PositionConfig -#define LocalConfig_power_MSGTYPE Config_PowerConfig -#define LocalConfig_network_MSGTYPE Config_NetworkConfig -#define LocalConfig_display_MSGTYPE Config_DisplayConfig -#define LocalConfig_lora_MSGTYPE Config_LoRaConfig -#define LocalConfig_bluetooth_MSGTYPE Config_BluetoothConfig - -#define LocalModuleConfig_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, mqtt, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, serial, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, external_notification, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, store_forward, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, range_test, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, telemetry, 6) \ -X(a, STATIC, OPTIONAL, MESSAGE, canned_message, 7) \ -X(a, STATIC, SINGULAR, UINT32, version, 8) \ -X(a, STATIC, OPTIONAL, MESSAGE, audio, 9) \ -X(a, STATIC, OPTIONAL, MESSAGE, remote_hardware, 10) -#define LocalModuleConfig_CALLBACK NULL -#define LocalModuleConfig_DEFAULT NULL -#define LocalModuleConfig_mqtt_MSGTYPE ModuleConfig_MQTTConfig -#define LocalModuleConfig_serial_MSGTYPE ModuleConfig_SerialConfig -#define LocalModuleConfig_external_notification_MSGTYPE ModuleConfig_ExternalNotificationConfig -#define LocalModuleConfig_store_forward_MSGTYPE ModuleConfig_StoreForwardConfig -#define LocalModuleConfig_range_test_MSGTYPE ModuleConfig_RangeTestConfig -#define LocalModuleConfig_telemetry_MSGTYPE ModuleConfig_TelemetryConfig -#define LocalModuleConfig_canned_message_MSGTYPE ModuleConfig_CannedMessageConfig -#define LocalModuleConfig_audio_MSGTYPE ModuleConfig_AudioConfig -#define LocalModuleConfig_remote_hardware_MSGTYPE ModuleConfig_RemoteHardwareConfig - -extern const pb_msgdesc_t LocalConfig_msg; -extern const pb_msgdesc_t LocalModuleConfig_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define LocalConfig_fields &LocalConfig_msg -#define LocalModuleConfig_fields &LocalModuleConfig_msg - -/* Maximum encoded size of messages (where known) */ -#define LocalConfig_size 391 -#define LocalModuleConfig_size 412 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/mesh.pb.c b/src/mesh/generated/mesh.pb.c deleted file mode 100644 index 29594c612..000000000 --- a/src/mesh/generated/mesh.pb.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "mesh.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(Position, Position, AUTO) - - -PB_BIND(User, User, AUTO) - - -PB_BIND(RouteDiscovery, RouteDiscovery, AUTO) - - -PB_BIND(Routing, Routing, AUTO) - - -PB_BIND(Data, Data, 2) - - -PB_BIND(Waypoint, Waypoint, AUTO) - - -PB_BIND(MeshPacket, MeshPacket, 2) - - -PB_BIND(NodeInfo, NodeInfo, AUTO) - - -PB_BIND(MyNodeInfo, MyNodeInfo, AUTO) - - -PB_BIND(LogRecord, LogRecord, AUTO) - - -PB_BIND(QueueStatus, QueueStatus, AUTO) - - -PB_BIND(FromRadio, FromRadio, 2) - - -PB_BIND(ToRadio, ToRadio, 2) - - -PB_BIND(Compressed, Compressed, AUTO) - - - - - - - - - - - - diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h deleted file mode 100644 index 4d2c629e0..000000000 --- a/src/mesh/generated/mesh.pb.h +++ /dev/null @@ -1,1159 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_MESH_PB_H_INCLUDED -#define PB_MESH_PB_H_INCLUDED -#include -#include "channel.pb.h" -#include "config.pb.h" -#include "module_config.pb.h" -#include "portnums.pb.h" -#include "telemetry.pb.h" -#include "xmodem.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* Note: these enum names must EXACTLY match the string used in the device - bin/build-all.sh script. - Because they will be used to find firmware filenames in the android app for OTA updates. - To match the old style filenames, _ is converted to -, p is converted to . */ -typedef enum _HardwareModel { - /* TODO: REPLACE */ - HardwareModel_UNSET = 0, - /* TODO: REPLACE */ - HardwareModel_TLORA_V2 = 1, - /* TODO: REPLACE */ - HardwareModel_TLORA_V1 = 2, - /* TODO: REPLACE */ - HardwareModel_TLORA_V2_1_1P6 = 3, - /* TODO: REPLACE */ - HardwareModel_TBEAM = 4, - /* The original heltec WiFi_Lora_32_V2, which had battery voltage sensing hooked to GPIO 13 - (see HELTEC_V2 for the new version). */ - HardwareModel_HELTEC_V2_0 = 5, - /* TODO: REPLACE */ - HardwareModel_TBEAM_V0P7 = 6, - /* TODO: REPLACE */ - HardwareModel_T_ECHO = 7, - /* TODO: REPLACE */ - HardwareModel_TLORA_V1_1P3 = 8, - /* TODO: REPLACE */ - HardwareModel_RAK4631 = 9, - /* The new version of the heltec WiFi_Lora_32_V2 board that has battery sensing hooked to GPIO 37. - Sadly they did not update anything on the silkscreen to identify this board */ - HardwareModel_HELTEC_V2_1 = 10, - /* Ancient heltec WiFi_Lora_32 board */ - HardwareModel_HELTEC_V1 = 11, - /* New T-BEAM with ESP32-S3 CPU */ - HardwareModel_LILYGO_TBEAM_S3_CORE = 12, - /* RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/ */ - HardwareModel_RAK11200 = 13, - /* B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano */ - HardwareModel_NANO_G1 = 14, - /* TODO: REPLACE */ - HardwareModel_TLORA_V2_1_1P8 = 15, - /* TODO: REPLACE */ - HardwareModel_TLORA_T3_S3 = 16, - /* B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station */ - HardwareModel_STATION_G1 = 25, - /* Less common/prototype boards listed here (needs one more byte over the air) */ - HardwareModel_LORA_RELAY_V1 = 32, - /* TODO: REPLACE */ - HardwareModel_NRF52840DK = 33, - /* TODO: REPLACE */ - HardwareModel_PPR = 34, - /* TODO: REPLACE */ - HardwareModel_GENIEBLOCKS = 35, - /* TODO: REPLACE */ - HardwareModel_NRF52_UNKNOWN = 36, - /* TODO: REPLACE */ - HardwareModel_PORTDUINO = 37, - /* The simulator built into the android app */ - HardwareModel_ANDROID_SIM = 38, - /* Custom DIY device based on @NanoVHF schematics: https://github.com/NanoVHF/Meshtastic-DIY/tree/main/Schematics */ - HardwareModel_DIY_V1 = 39, - /* nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/ */ - HardwareModel_NRF52840_PCA10059 = 40, - /* Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3 */ - HardwareModel_DR_DEV = 41, - /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ */ - HardwareModel_M5STACK = 42, - /* New Heltec LoRA32 with ESP32-S3 CPU */ - HardwareModel_HELTEC_V3 = 43, - /* New Heltec Wireless Stick Lite with ESP32-S3 CPU */ - HardwareModel_HELTEC_WSL_V3 = 44, - /* New BETAFPV ELRS Micro TX Module 2.4G with ESP32 CPU */ - HardwareModel_BETAFPV_2400_TX = 45, - /* Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits. */ - HardwareModel_PRIVATE_HW = 255 -} HardwareModel; - -/* Shared constants between device and phone */ -typedef enum _Constants { - /* First enum must be zero, and we are just using this enum to - pass int constants between two very different environments */ - Constants_ZERO = 0, - /* From mesh.options - note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is - outside of this envelope */ - Constants_DATA_PAYLOAD_LEN = 237 -} Constants; - -/* Error codes for critical errors - The device might report these fault codes on the screen. - If you encounter a fault code, please post on the meshtastic.discourse.group - and we'll try to help. */ -typedef enum _CriticalErrorCode { - /* TODO: REPLACE */ - CriticalErrorCode_NONE = 0, - /* A software bug was detected while trying to send lora */ - CriticalErrorCode_TX_WATCHDOG = 1, - /* A software bug was detected on entry to sleep */ - CriticalErrorCode_SLEEP_ENTER_WAIT = 2, - /* No Lora radio hardware could be found */ - CriticalErrorCode_NO_RADIO = 3, - /* Not normally used */ - CriticalErrorCode_UNSPECIFIED = 4, - /* We failed while configuring a UBlox GPS */ - CriticalErrorCode_UBLOX_UNIT_FAILED = 5, - /* This board was expected to have a power management chip and it is missing or broken */ - CriticalErrorCode_NO_AXP192 = 6, - /* The channel tried to set a radio setting which is not supported by this chipset, - radio comms settings are now undefined. */ - CriticalErrorCode_INVALID_RADIO_SETTING = 7, - /* Radio transmit hardware failure. We sent data to the radio chip, but it didn't - reply with an interrupt. */ - CriticalErrorCode_TRANSMIT_FAILED = 8, - /* We detected that the main CPU voltage dropped below the minumum acceptable value */ - CriticalErrorCode_BROWNOUT = 9, - /* Selftest of SX1262 radio chip failed */ - CriticalErrorCode_SX1262_FAILURE = 10, - /* A (likely software but possibly hardware) failure was detected while trying to send packets. - If this occurs on your board, please post in the forum so that we can ask you to collect some information to allow fixing this bug */ - CriticalErrorCode_RADIO_SPI_BUG = 11 -} CriticalErrorCode; - -/* How the location was acquired: manual, onboard GPS, external (EUD) GPS */ -typedef enum _Position_LocSource { - /* TODO: REPLACE */ - Position_LocSource_LOC_UNSET = 0, - /* TODO: REPLACE */ - Position_LocSource_LOC_MANUAL = 1, - /* TODO: REPLACE */ - Position_LocSource_LOC_INTERNAL = 2, - /* TODO: REPLACE */ - Position_LocSource_LOC_EXTERNAL = 3 -} Position_LocSource; - -/* How the altitude was acquired: manual, GPS int/ext, etc - Default: same as location_source if present */ -typedef enum _Position_AltSource { - /* TODO: REPLACE */ - Position_AltSource_ALT_UNSET = 0, - /* TODO: REPLACE */ - Position_AltSource_ALT_MANUAL = 1, - /* TODO: REPLACE */ - Position_AltSource_ALT_INTERNAL = 2, - /* TODO: REPLACE */ - Position_AltSource_ALT_EXTERNAL = 3, - /* TODO: REPLACE */ - Position_AltSource_ALT_BAROMETRIC = 4 -} Position_AltSource; - -/* A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide - details on the type of failure). */ -typedef enum _Routing_Error { - /* This message is not a failure */ - Routing_Error_NONE = 0, - /* Our node doesn't have a route to the requested destination anymore. */ - Routing_Error_NO_ROUTE = 1, - /* We received a nak while trying to forward on your behalf */ - Routing_Error_GOT_NAK = 2, - /* TODO: REPLACE */ - Routing_Error_TIMEOUT = 3, - /* No suitable interface could be found for delivering this packet */ - Routing_Error_NO_INTERFACE = 4, - /* We reached the max retransmission count (typically for naive flood routing) */ - Routing_Error_MAX_RETRANSMIT = 5, - /* No suitable channel was found for sending this packet (i.e. was requested channel index disabled?) */ - Routing_Error_NO_CHANNEL = 6, - /* The packet was too big for sending (exceeds interface MTU after encoding) */ - Routing_Error_TOO_LARGE = 7, - /* The request had want_response set, the request reached the destination node, but no service on that node wants to send a response - (possibly due to bad channel permissions) */ - Routing_Error_NO_RESPONSE = 8, - /* Cannot send currently because duty cycle regulations will be violated. */ - Routing_Error_DUTY_CYCLE_LIMIT = 9, - /* The application layer service on the remote node received your request, but considered your request somehow invalid */ - Routing_Error_BAD_REQUEST = 32, - /* The application layer service on the remote node received your request, but considered your request not authorized - (i.e you did not send the request on the required bound channel) */ - Routing_Error_NOT_AUTHORIZED = 33 -} Routing_Error; - -/* The priority of this message for sending. - Higher priorities are sent first (when managing the transmit queue). - This field is never sent over the air, it is only used internally inside of a local device node. - API clients (either on the local node or connected directly to the node) - can set this parameter if necessary. - (values must be <= 127 to keep protobuf field to one byte in size. - Detailed background on this field: - I noticed a funny side effect of lora being so slow: Usually when making - a protocol there isn’t much need to use message priority to change the order - of transmission (because interfaces are fairly fast). - But for lora where packets can take a few seconds each, it is very important - to make sure that critical packets are sent ASAP. - In the case of meshtastic that means we want to send protocol acks as soon as possible - (to prevent unneeded retransmissions), we want routing messages to be sent next, - then messages marked as reliable and finally ‘background’ packets like periodic position updates. - So I bit the bullet and implemented a new (internal - not sent over the air) - field in MeshPacket called ‘priority’. - And the transmission queue in the router object is now a priority queue. */ -typedef enum _MeshPacket_Priority { - /* Treated as Priority.DEFAULT */ - MeshPacket_Priority_UNSET = 0, - /* TODO: REPLACE */ - MeshPacket_Priority_MIN = 1, - /* Background position updates are sent with very low priority - - if the link is super congested they might not go out at all */ - MeshPacket_Priority_BACKGROUND = 10, - /* This priority is used for most messages that don't have a priority set */ - MeshPacket_Priority_DEFAULT = 64, - /* If priority is unset but the message is marked as want_ack, - assume it is important and use a slightly higher priority */ - MeshPacket_Priority_RELIABLE = 70, - /* Ack/naks are sent with very high priority to ensure that retransmission - stops as soon as possible */ - MeshPacket_Priority_ACK = 120, - /* TODO: REPLACE */ - MeshPacket_Priority_MAX = 127 -} MeshPacket_Priority; - -/* Identify if this is a delayed packet */ -typedef enum _MeshPacket_Delayed { - /* If unset, the message is being sent in real time. */ - MeshPacket_Delayed_NO_DELAY = 0, - /* The message is delayed and was originally a broadcast */ - MeshPacket_Delayed_DELAYED_BROADCAST = 1, - /* The message is delayed and was originally a direct message */ - MeshPacket_Delayed_DELAYED_DIRECT = 2 -} MeshPacket_Delayed; - -/* Log levels, chosen to match python logging conventions. */ -typedef enum _LogRecord_Level { - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_UNSET = 0, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_CRITICAL = 50, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_ERROR = 40, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_WARNING = 30, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_INFO = 20, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_DEBUG = 10, - /* Log levels, chosen to match python logging conventions. */ - LogRecord_Level_TRACE = 5 -} LogRecord_Level; - -/* Struct definitions */ -/* a gps position */ -typedef struct _Position { - /* The new preferred location encoding, multiply by 1e-7 to get degrees - in floating point */ - int32_t latitude_i; - /* TODO: REPLACE */ - int32_t longitude_i; - /* In meters above MSL (but see issue #359) */ - int32_t altitude; - /* This is usually not sent over the mesh (to save space), but it is sent - from the phone so that the local device can set its RTC If it is sent over - the mesh (because there are devices on the mesh without GPS), it will only - be sent by devices which has a hardware GPS clock. - seconds since 1970 */ - uint32_t time; - /* TODO: REPLACE */ - Position_LocSource location_source; - /* TODO: REPLACE */ - Position_AltSource altitude_source; - /* Positional timestamp (actual timestamp of GPS solution) in integer epoch seconds */ - uint32_t timestamp; - /* Pos. timestamp milliseconds adjustment (rarely available or required) */ - int32_t timestamp_millis_adjust; - /* HAE altitude in meters - can be used instead of MSL altitude */ - int32_t altitude_hae; - /* Geoidal separation in meters */ - int32_t altitude_geoidal_separation; - /* Horizontal, Vertical and Position Dilution of Precision, in 1/100 units - - PDOP is sufficient for most cases - - for higher precision scenarios, HDOP and VDOP can be used instead, - in which case PDOP becomes redundant (PDOP=sqrt(HDOP^2 + VDOP^2)) - TODO: REMOVE/INTEGRATE */ - uint32_t PDOP; - /* TODO: REPLACE */ - uint32_t HDOP; - /* TODO: REPLACE */ - uint32_t VDOP; - /* GPS accuracy (a hardware specific constant) in mm - multiplied with DOP to calculate positional accuracy - Default: "'bout three meters-ish" :) */ - uint32_t gps_accuracy; - /* Ground speed in m/s and True North TRACK in 1/100 degrees - Clarification of terms: - - "track" is the direction of motion (measured in horizontal plane) - - "heading" is where the fuselage points (measured in horizontal plane) - - "yaw" indicates a relative rotation about the vertical axis - TODO: REMOVE/INTEGRATE */ - uint32_t ground_speed; - /* TODO: REPLACE */ - uint32_t ground_track; - /* GPS fix quality (from NMEA GxGGA statement or similar) */ - uint32_t fix_quality; - /* GPS fix type 2D/3D (from NMEA GxGSA statement) */ - uint32_t fix_type; - /* GPS "Satellites in View" number */ - uint32_t sats_in_view; - /* Sensor ID - in case multiple positioning sensors are being used */ - uint32_t sensor_id; - /* Estimated/expected time (in seconds) until next update: - - if we update at fixed intervals of X seconds, use X - - if we update at dynamic intervals (based on relative movement etc), - but "AT LEAST every Y seconds", use Y */ - uint32_t next_update; - /* A sequence number, incremented with each Position message to help - detect lost updates if needed */ - uint32_t seq_number; -} Position; - -/* Broadcast when a newly powered mesh node wants to find a node num it can use - Sent from the phone over bluetooth to set the user id for the owner of this node. - Also sent from nodes to each other when a new node signs on (so all clients can have this info) - The algorithm is as follows: - when a node starts up, it broadcasts their user and the normal flow is for all - other nodes to reply with their User as well (so the new node can build its nodedb) - If a node ever receives a User (not just the first broadcast) message where - the sender node number equals our node number, that indicates a collision has - occurred and the following steps should happen: - If the receiving node (that was already in the mesh)'s macaddr is LOWER than the - new User who just tried to sign in: it gets to keep its nodenum. - We send a broadcast message of OUR User (we use a broadcast so that the other node can - receive our message, considering we have the same id - it also serves to let - observers correct their nodedb) - this case is rare so it should be okay. - If any node receives a User where the macaddr is GTE than their local macaddr, - they have been vetoed and should pick a new random nodenum (filtering against - whatever it knows about the nodedb) and rebroadcast their User. - A few nodenums are reserved and will never be requested: - 0xff - broadcast - 0 through 3 - for future use */ -typedef struct _User { - /* A globally unique ID string for this user. - In the case of Signal that would mean +16504442323, for the default macaddr derived id it would be !<8 hexidecimal bytes>. - Note: app developers are encouraged to also use the following standard - node IDs "^all" (for broadcast), "^local" (for the locally connected node) */ - char id[16]; - /* A full name for this user, i.e. "Kevin Hester" */ - char long_name[40]; - /* A VERY short name, ideally two characters. - Suitable for a tiny OLED screen */ - char short_name[5]; - /* This is the addr of the radio. - Not populated by the phone, but added by the esp32 when broadcasting */ - pb_byte_t macaddr[6]; - /* TBEAM, HELTEC, etc... - Starting in 1.2.11 moved to hw_model enum in the NodeInfo object. - Apps will still need the string here for older builds - (so OTA update can find the right image), but if the enum is available it will be used instead. */ - HardwareModel hw_model; - /* In some regions Ham radio operators have different bandwidth limitations than others. - If this user is a licensed operator, set this flag. - Also, "long_name" should be their licence number. */ - bool is_licensed; -} User; - -/* A message used in our Dynamic Source Routing protocol (RFC 4728 based) */ -typedef struct _RouteDiscovery { - /* The list of nodenums this packet has visited so far */ - pb_size_t route_count; - uint32_t route[8]; -} RouteDiscovery; - -/* A Routing control Data packet handled by the routing module */ -typedef struct _Routing { - pb_size_t which_variant; - union { - /* A route request going from the requester */ - RouteDiscovery route_request; - /* A route reply */ - RouteDiscovery route_reply; - /* A failure in delivering a message (usually used for routing control messages, but might be provided - in addition to ack.fail_id to provide details on the type of failure). */ - Routing_Error error_reason; - }; -} Routing; - -typedef PB_BYTES_ARRAY_T(237) Data_payload_t; -/* (Formerly called SubPacket) - The payload portion fo a packet, this is the actual bytes that are sent - inside a radio packet (because from/to are broken out by the comms library) */ -typedef struct _Data { - /* Formerly named typ and of type Type */ - PortNum portnum; - /* TODO: REPLACE */ - Data_payload_t payload; - /* Not normally used, but for testing a sender can request that recipient - responds in kind (i.e. if it received a position, it should unicast back it's position). - Note: that if you set this on a broadcast you will receive many replies. */ - bool want_response; - /* The address of the destination node. - This field is is filled in by the mesh radio device software, application - layer software should never need it. - RouteDiscovery messages _must_ populate this. - Other message types might need to if they are doing multihop routing. */ - uint32_t dest; - /* The address of the original sender for this message. - This field should _only_ be populated for reliable multihop packets (to keep - packets small). */ - uint32_t source; - /* Only used in routing or response messages. - Indicates the original message ID that this message is reporting failure on. (formerly called original_id) */ - uint32_t request_id; - /* If set, this message is intened to be a reply to a previously sent message with the defined id. */ - uint32_t reply_id; - /* Defaults to false. If true, then what is in the payload should be treated as an emoji like giving - a message a heart or poop emoji. */ - uint32_t emoji; -} Data; - -/* Waypoint message, used to share arbitrary locations across the mesh */ -typedef struct _Waypoint { - /* Id of the waypoint */ - uint32_t id; - /* latitude_i */ - int32_t latitude_i; - /* longitude_i */ - int32_t longitude_i; - /* Time the waypoint is to expire (epoch) */ - uint32_t expire; - /* If greater than zero, treat the value as a nodenum only allowing them to update the waypoint. - If zero, the waypoint is open to be edited by any member of the mesh. */ - uint32_t locked_to; - /* Name of the waypoint - max 30 chars */ - char name[30]; - /* Description of the waypoint - max 100 chars */ - char description[100]; - /* Designator icon for the waypoint in the form of a unicode emoji */ - uint32_t icon; -} Waypoint; - -typedef PB_BYTES_ARRAY_T(256) MeshPacket_encrypted_t; -/* A packet envelope sent/received over the mesh - only payload_variant is sent in the payload portion of the LORA packet. - The other fields are either not sent at all, or sent in the special 16 byte LORA header. */ -typedef struct _MeshPacket { - /* The sending node number. - Note: Our crypto implementation uses this field as well. - See [crypto](/docs/overview/encryption) for details. - FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. */ - uint32_t from; - /* The (immediatSee Priority description for more details.y should be fixed32 instead, this encoding only - hurts the ble link though. */ - uint32_t to; - /* (Usually) If set, this indicates the index in the secondary_channels table that this packet was sent/received on. - If unset, packet was on the primary channel. - A particular node might know only a subset of channels in use on the mesh. - Therefore channel_index is inherently a local concept and meaningless to send between nodes. - Very briefly, while sending and receiving deep inside the device Router code, this field instead - contains the 'channel hash' instead of the index. - This 'trick' is only used while the payload_variant is an 'encrypted'. */ - uint8_t channel; - pb_size_t which_payload_variant; - union { - /* TODO: REPLACE */ - Data decoded; - /* TODO: REPLACE */ - MeshPacket_encrypted_t encrypted; - }; - /* A unique ID for this packet. - Always 0 for no-ack packets or non broadcast packets (and therefore take zero bytes of space). - Otherwise a unique ID for this packet, useful for flooding algorithms. - ID only needs to be unique on a _per sender_ basis, and it only - needs to be unique for a few minutes (long enough to last for the length of - any ACK or the completion of a mesh broadcast flood). - Note: Our crypto implementation uses this id as well. - See [crypto](/docs/overview/encryption) for details. - FIXME - really should be fixed32 instead, this encoding only - hurts the ble link though. */ - uint32_t id; - /* The time this message was received by the esp32 (secs since 1970). - Note: this field is _never_ sent on the radio link itself (to save space) Times - are typically not sent over the mesh, but they will be added to any Packet - (chain of SubPacket) sent to the phone (so the phone can know exact time of reception) */ - uint32_t rx_time; - /* *Never* sent over the radio links. - Set during reception to indicate the SNR of this packet. - Used to collect statistics on current link quality. */ - float rx_snr; - /* If unset treated as zero (no forwarding, send to adjacent nodes only) - if 1, allow hopping through one node, etc... - For our usecase real world topologies probably have a max of about 3. - This field is normally placed into a few of bits in the header. */ - uint8_t hop_limit; - /* This packet is being sent as a reliable message, we would prefer it to arrive at the destination. - We would like to receive a ack packet in response. - Broadcasts messages treat this flag specially: Since acks for broadcasts would - rapidly flood the channel, the normal ack behavior is suppressed. - Instead, the original sender listens to see if at least one node is rebroadcasting this packet (because naive flooding algorithm). - If it hears that the odds (given typical LoRa topologies) the odds are very high that every node should eventually receive the message. - So FloodingRouter.cpp generates an implicit ack which is delivered to the original sender. - If after some time we don't hear anyone rebroadcast our packet, we will timeout and retransmit, using the regular resend logic. - Note: This flag is normally sent in a flag bit in the header when sent over the wire */ - bool want_ack; - /* The priority of this message for sending. - See MeshPacket.Priority description for more details. */ - MeshPacket_Priority priority; - /* rssi of received packet. Only sent to phone for dispay purposes. */ - int32_t rx_rssi; - /* Describe if this message is delayed */ - MeshPacket_Delayed delayed; -} MeshPacket; - -/* The bluetooth to device link: - Old BTLE protocol docs from TODO, merge in above and make real docs... - use protocol buffers, and NanoPB - messages from device to phone: - POSITION_UPDATE (..., time) - TEXT_RECEIVED(from, text, time) - OPAQUE_RECEIVED(from, payload, time) (for signal messages or other applications) - messages from phone to device: - SET_MYID(id, human readable long, human readable short) (send down the unique ID - string used for this node, a human readable string shown for that id, and a very - short human readable string suitable for oled screen) SEND_OPAQUE(dest, payload) - (for signal messages or other applications) SEND_TEXT(dest, text) Get all - nodes() (returns list of nodes, with full info, last time seen, loc, battery - level etc) SET_CONFIG (switches device to a new set of radio params and - preshared key, drops all existing nodes, force our node to rejoin this new group) - Full information about a node on the mesh */ -typedef struct _NodeInfo { - /* The node number */ - uint32_t num; - /* The user info for this node */ - bool has_user; - User user; - /* This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true. - Position.time now indicates the last time we received a POSITION from that node. */ - bool has_position; - Position position; - /* Returns the Signal-to-noise ratio (SNR) of the last received message, - as measured by the receiver. Return SNR of the last received message in dB */ - float snr; - /* Set to indicate the last time we received a packet from this node */ - uint32_t last_heard; - /* The latest device metrics for the node. */ - bool has_device_metrics; - DeviceMetrics device_metrics; -} NodeInfo; - -/* Unique local debugging info for this node - Note: we don't include position or the user info, because that will come in the - Sent to the phone in response to WantNodes. */ -typedef struct _MyNodeInfo { - /* Tells the phone what our node number is, default starting value is - lowbyte of macaddr, but it will be fixed if that is already in use */ - uint32_t my_node_num; - /* Note: This flag merely means we detected a hardware GPS in our node. - Not the same as UserPreferences.location_sharing */ - bool has_gps; - /* The maximum number of 'software' channels that can be set on this node. */ - uint32_t max_channels; - /* 0.0.5 etc... */ - char firmware_version[18]; - /* An error message we'd like to report back to the mothership through analytics. - It indicates a serious bug occurred on the device, the device coped with it, - but we still want to tell the devs about the bug. - This field will be cleared after the phone reads MyNodeInfo - (i.e. it will only be reported once) - a numeric error code to go with error message, zero means no error */ - CriticalErrorCode error_code; - /* A numeric error address (nonzero if available) */ - uint32_t error_address; - /* The total number of errors this node has ever encountered - (well - since the last time we discarded preferences) */ - uint32_t error_count; - /* The total number of reboots this node has ever encountered - (well - since the last time we discarded preferences) */ - uint32_t reboot_count; - /* Calculated bitrate of the current channel (in Bytes Per Second) */ - float bitrate; - /* How long before we consider a message abandoned and we can clear our - caches of any messages in flight Normally quite large to handle the worst case - message delivery time, 5 minutes. - Formerly called FLOOD_EXPIRE_TIME in the device code */ - uint32_t message_timeout_msec; - /* The minimum app version that can talk to this device. - Phone/PC apps should compare this to their build number and if too low tell the user they must update their app */ - uint32_t min_app_version; - /* 24 time windows of 1hr each with the airtime transmitted out of the device per hour. */ - pb_size_t air_period_tx_count; - uint32_t air_period_tx[8]; - /* 24 time windows of 1hr each with the airtime of valid packets for your mesh. */ - pb_size_t air_period_rx_count; - uint32_t air_period_rx[8]; - /* Is the device wifi capable? */ - bool has_wifi; - /* Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise). */ - float channel_utilization; - /* Percent of airtime for transmission used within the last hour. */ - float air_util_tx; -} MyNodeInfo; - -/* Debug output from the device. - To minimize the size of records inside the device code, if a time/source/level is not set - on the message it is assumed to be a continuation of the previously sent message. - This allows the device code to use fixed maxlen 64 byte strings for messages, - and then extend as needed by emitting multiple records. */ -typedef struct _LogRecord { - /* Log levels, chosen to match python logging conventions. */ - char message[64]; - /* Seconds since 1970 - or 0 for unknown/unset */ - uint32_t time; - /* Usually based on thread name - if known */ - char source[8]; - /* Not yet set */ - LogRecord_Level level; -} LogRecord; - -typedef struct _QueueStatus { - /* Last attempt to queue status, ErrorCode */ - int8_t res; - /* Free entries in the outgoing queue */ - uint8_t free; - /* Maximum entries in the outgoing queue */ - uint8_t maxlen; - /* What was mesh packet id that generated this response? */ - uint32_t mesh_packet_id; -} QueueStatus; - -/* Packets from the radio to the phone will appear on the fromRadio characteristic. - It will support READ and NOTIFY. When a new packet arrives the device will BLE notify? - It will sit in that descriptor until consumed by the phone, - at which point the next item in the FIFO will be populated. */ -typedef struct _FromRadio { - /* The packet id, used to allow the phone to request missing read packets from the FIFO, - see our bluetooth docs */ - uint32_t id; - pb_size_t which_payload_variant; - union { - /* Log levels, chosen to match python logging conventions. */ - MeshPacket packet; - /* Tells the phone what our node number is, can be -1 if we've not yet joined a mesh. - NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps. */ - MyNodeInfo my_info; - /* One packet is sent for each node in the on radio DB - starts over with the first node in our DB */ - NodeInfo node_info; - /* Include a part of the config (was: RadioConfig radio) */ - Config config; - /* Set to send debug console output over our protobuf stream */ - LogRecord log_record; - /* Sent as true once the device has finished sending all of the responses to want_config - recipient should check if this ID matches our original request nonce, if - not, it means your config responses haven't started yet. - NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps. */ - uint32_t config_complete_id; - /* Sent to tell clients the radio has just rebooted. - Set to true if present. - Not used on all transports, currently just used for the serial console. - NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps. */ - bool rebooted; - /* Include module config */ - ModuleConfig moduleConfig; - /* One packet is sent for each channel */ - Channel channel; - /* Queue status info */ - QueueStatus queueStatus; - /* File Transfer Chunk */ - XModem xmodemPacket; - }; -} FromRadio; - -/* Packets/commands to the radio will be written (reliably) to the toRadio characteristic. - Once the write completes the phone can assume it is handled. */ -typedef struct _ToRadio { - pb_size_t which_payload_variant; - union { - /* Send this packet on the mesh */ - MeshPacket packet; - /* Phone wants radio to send full node db to the phone, This is - typically the first packet sent to the radio when the phone gets a - bluetooth connection. The radio will respond by sending back a - MyNodeInfo, a owner, a radio config and a series of - FromRadio.node_infos, and config_complete - the integer you write into this field will be reported back in the - config_complete_id response this allows clients to never be confused by - a stale old partially sent config. */ - uint32_t want_config_id; - /* Tell API server we are disconnecting now. - This is useful for serial links where there is no hardware/protocol based notification that the client has dropped the link. - (Sending this message is optional for clients) */ - bool disconnect; - /* File Transfer Chunk */ - XModem xmodemPacket; - }; -} ToRadio; - -typedef PB_BYTES_ARRAY_T(237) Compressed_data_t; -/* Compressed message payload */ -typedef struct _Compressed { - /* PortNum to determine the how to handle the compressed payload. */ - PortNum portnum; - /* Compressed data. */ - Compressed_data_t data; -} Compressed; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _HardwareModel_MIN HardwareModel_UNSET -#define _HardwareModel_MAX HardwareModel_PRIVATE_HW -#define _HardwareModel_ARRAYSIZE ((HardwareModel)(HardwareModel_PRIVATE_HW+1)) - -#define _Constants_MIN Constants_ZERO -#define _Constants_MAX Constants_DATA_PAYLOAD_LEN -#define _Constants_ARRAYSIZE ((Constants)(Constants_DATA_PAYLOAD_LEN+1)) - -#define _CriticalErrorCode_MIN CriticalErrorCode_NONE -#define _CriticalErrorCode_MAX CriticalErrorCode_RADIO_SPI_BUG -#define _CriticalErrorCode_ARRAYSIZE ((CriticalErrorCode)(CriticalErrorCode_RADIO_SPI_BUG+1)) - -#define _Position_LocSource_MIN Position_LocSource_LOC_UNSET -#define _Position_LocSource_MAX Position_LocSource_LOC_EXTERNAL -#define _Position_LocSource_ARRAYSIZE ((Position_LocSource)(Position_LocSource_LOC_EXTERNAL+1)) - -#define _Position_AltSource_MIN Position_AltSource_ALT_UNSET -#define _Position_AltSource_MAX Position_AltSource_ALT_BAROMETRIC -#define _Position_AltSource_ARRAYSIZE ((Position_AltSource)(Position_AltSource_ALT_BAROMETRIC+1)) - -#define _Routing_Error_MIN Routing_Error_NONE -#define _Routing_Error_MAX Routing_Error_NOT_AUTHORIZED -#define _Routing_Error_ARRAYSIZE ((Routing_Error)(Routing_Error_NOT_AUTHORIZED+1)) - -#define _MeshPacket_Priority_MIN MeshPacket_Priority_UNSET -#define _MeshPacket_Priority_MAX MeshPacket_Priority_MAX -#define _MeshPacket_Priority_ARRAYSIZE ((MeshPacket_Priority)(MeshPacket_Priority_MAX+1)) - -#define _MeshPacket_Delayed_MIN MeshPacket_Delayed_NO_DELAY -#define _MeshPacket_Delayed_MAX MeshPacket_Delayed_DELAYED_DIRECT -#define _MeshPacket_Delayed_ARRAYSIZE ((MeshPacket_Delayed)(MeshPacket_Delayed_DELAYED_DIRECT+1)) - -#define _LogRecord_Level_MIN LogRecord_Level_UNSET -#define _LogRecord_Level_MAX LogRecord_Level_CRITICAL -#define _LogRecord_Level_ARRAYSIZE ((LogRecord_Level)(LogRecord_Level_CRITICAL+1)) - -#define Position_location_source_ENUMTYPE Position_LocSource -#define Position_altitude_source_ENUMTYPE Position_AltSource - -#define User_hw_model_ENUMTYPE HardwareModel - - -#define Routing_variant_error_reason_ENUMTYPE Routing_Error - -#define Data_portnum_ENUMTYPE PortNum - - -#define MeshPacket_priority_ENUMTYPE MeshPacket_Priority -#define MeshPacket_delayed_ENUMTYPE MeshPacket_Delayed - - -#define MyNodeInfo_error_code_ENUMTYPE CriticalErrorCode - -#define LogRecord_level_ENUMTYPE LogRecord_Level - - - - -#define Compressed_portnum_ENUMTYPE PortNum - - -/* Initializer values for message structs */ -#define Position_init_default {0, 0, 0, 0, _Position_LocSource_MIN, _Position_AltSource_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -#define User_init_default {"", "", "", {0}, _HardwareModel_MIN, 0} -#define RouteDiscovery_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}} -#define Routing_init_default {0, {RouteDiscovery_init_default}} -#define Data_init_default {_PortNum_MIN, {0, {0}}, 0, 0, 0, 0, 0, 0} -#define Waypoint_init_default {0, 0, 0, 0, 0, "", "", 0} -#define MeshPacket_init_default {0, 0, 0, 0, {Data_init_default}, 0, 0, 0, 0, 0, _MeshPacket_Priority_MIN, 0, _MeshPacket_Delayed_MIN} -#define NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, 0, 0, false, DeviceMetrics_init_default} -#define MyNodeInfo_init_default {0, 0, 0, "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}, 0, {0, 0, 0, 0, 0, 0, 0, 0}, 0, 0, 0} -#define LogRecord_init_default {"", 0, "", _LogRecord_Level_MIN} -#define QueueStatus_init_default {0, 0, 0, 0} -#define FromRadio_init_default {0, 0, {MeshPacket_init_default}} -#define ToRadio_init_default {0, {MeshPacket_init_default}} -#define Compressed_init_default {_PortNum_MIN, {0, {0}}} -#define Position_init_zero {0, 0, 0, 0, _Position_LocSource_MIN, _Position_AltSource_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -#define User_init_zero {"", "", "", {0}, _HardwareModel_MIN, 0} -#define RouteDiscovery_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}} -#define Routing_init_zero {0, {RouteDiscovery_init_zero}} -#define Data_init_zero {_PortNum_MIN, {0, {0}}, 0, 0, 0, 0, 0, 0} -#define Waypoint_init_zero {0, 0, 0, 0, 0, "", "", 0} -#define MeshPacket_init_zero {0, 0, 0, 0, {Data_init_zero}, 0, 0, 0, 0, 0, _MeshPacket_Priority_MIN, 0, _MeshPacket_Delayed_MIN} -#define NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, 0, 0, false, DeviceMetrics_init_zero} -#define MyNodeInfo_init_zero {0, 0, 0, "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}, 0, {0, 0, 0, 0, 0, 0, 0, 0}, 0, 0, 0} -#define LogRecord_init_zero {"", 0, "", _LogRecord_Level_MIN} -#define QueueStatus_init_zero {0, 0, 0, 0} -#define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}} -#define ToRadio_init_zero {0, {MeshPacket_init_zero}} -#define Compressed_init_zero {_PortNum_MIN, {0, {0}}} - -/* Field tags (for use in manual encoding/decoding) */ -#define Position_latitude_i_tag 1 -#define Position_longitude_i_tag 2 -#define Position_altitude_tag 3 -#define Position_time_tag 4 -#define Position_location_source_tag 5 -#define Position_altitude_source_tag 6 -#define Position_timestamp_tag 7 -#define Position_timestamp_millis_adjust_tag 8 -#define Position_altitude_hae_tag 9 -#define Position_altitude_geoidal_separation_tag 10 -#define Position_PDOP_tag 11 -#define Position_HDOP_tag 12 -#define Position_VDOP_tag 13 -#define Position_gps_accuracy_tag 14 -#define Position_ground_speed_tag 15 -#define Position_ground_track_tag 16 -#define Position_fix_quality_tag 17 -#define Position_fix_type_tag 18 -#define Position_sats_in_view_tag 19 -#define Position_sensor_id_tag 20 -#define Position_next_update_tag 21 -#define Position_seq_number_tag 22 -#define User_id_tag 1 -#define User_long_name_tag 2 -#define User_short_name_tag 3 -#define User_macaddr_tag 4 -#define User_hw_model_tag 5 -#define User_is_licensed_tag 6 -#define RouteDiscovery_route_tag 1 -#define Routing_route_request_tag 1 -#define Routing_route_reply_tag 2 -#define Routing_error_reason_tag 3 -#define Data_portnum_tag 1 -#define Data_payload_tag 2 -#define Data_want_response_tag 3 -#define Data_dest_tag 4 -#define Data_source_tag 5 -#define Data_request_id_tag 6 -#define Data_reply_id_tag 7 -#define Data_emoji_tag 8 -#define Waypoint_id_tag 1 -#define Waypoint_latitude_i_tag 2 -#define Waypoint_longitude_i_tag 3 -#define Waypoint_expire_tag 4 -#define Waypoint_locked_to_tag 5 -#define Waypoint_name_tag 6 -#define Waypoint_description_tag 7 -#define Waypoint_icon_tag 8 -#define MeshPacket_from_tag 1 -#define MeshPacket_to_tag 2 -#define MeshPacket_channel_tag 3 -#define MeshPacket_decoded_tag 4 -#define MeshPacket_encrypted_tag 5 -#define MeshPacket_id_tag 6 -#define MeshPacket_rx_time_tag 7 -#define MeshPacket_rx_snr_tag 8 -#define MeshPacket_hop_limit_tag 9 -#define MeshPacket_want_ack_tag 10 -#define MeshPacket_priority_tag 11 -#define MeshPacket_rx_rssi_tag 12 -#define MeshPacket_delayed_tag 13 -#define NodeInfo_num_tag 1 -#define NodeInfo_user_tag 2 -#define NodeInfo_position_tag 3 -#define NodeInfo_snr_tag 4 -#define NodeInfo_last_heard_tag 5 -#define NodeInfo_device_metrics_tag 6 -#define MyNodeInfo_my_node_num_tag 1 -#define MyNodeInfo_has_gps_tag 2 -#define MyNodeInfo_max_channels_tag 3 -#define MyNodeInfo_firmware_version_tag 4 -#define MyNodeInfo_error_code_tag 5 -#define MyNodeInfo_error_address_tag 6 -#define MyNodeInfo_error_count_tag 7 -#define MyNodeInfo_reboot_count_tag 8 -#define MyNodeInfo_bitrate_tag 9 -#define MyNodeInfo_message_timeout_msec_tag 10 -#define MyNodeInfo_min_app_version_tag 11 -#define MyNodeInfo_air_period_tx_tag 12 -#define MyNodeInfo_air_period_rx_tag 13 -#define MyNodeInfo_has_wifi_tag 14 -#define MyNodeInfo_channel_utilization_tag 15 -#define MyNodeInfo_air_util_tx_tag 16 -#define LogRecord_message_tag 1 -#define LogRecord_time_tag 2 -#define LogRecord_source_tag 3 -#define LogRecord_level_tag 4 -#define QueueStatus_res_tag 1 -#define QueueStatus_free_tag 2 -#define QueueStatus_maxlen_tag 3 -#define QueueStatus_mesh_packet_id_tag 4 -#define FromRadio_id_tag 1 -#define FromRadio_packet_tag 2 -#define FromRadio_my_info_tag 3 -#define FromRadio_node_info_tag 4 -#define FromRadio_config_tag 5 -#define FromRadio_log_record_tag 6 -#define FromRadio_config_complete_id_tag 7 -#define FromRadio_rebooted_tag 8 -#define FromRadio_moduleConfig_tag 9 -#define FromRadio_channel_tag 10 -#define FromRadio_queueStatus_tag 11 -#define FromRadio_xmodemPacket_tag 12 -#define ToRadio_packet_tag 1 -#define ToRadio_want_config_id_tag 3 -#define ToRadio_disconnect_tag 4 -#define ToRadio_xmodemPacket_tag 5 -#define Compressed_portnum_tag 1 -#define Compressed_data_tag 2 - -/* Struct field encoding specification for nanopb */ -#define Position_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, SFIXED32, latitude_i, 1) \ -X(a, STATIC, SINGULAR, SFIXED32, longitude_i, 2) \ -X(a, STATIC, SINGULAR, INT32, altitude, 3) \ -X(a, STATIC, SINGULAR, FIXED32, time, 4) \ -X(a, STATIC, SINGULAR, UENUM, location_source, 5) \ -X(a, STATIC, SINGULAR, UENUM, altitude_source, 6) \ -X(a, STATIC, SINGULAR, FIXED32, timestamp, 7) \ -X(a, STATIC, SINGULAR, INT32, timestamp_millis_adjust, 8) \ -X(a, STATIC, SINGULAR, SINT32, altitude_hae, 9) \ -X(a, STATIC, SINGULAR, SINT32, altitude_geoidal_separation, 10) \ -X(a, STATIC, SINGULAR, UINT32, PDOP, 11) \ -X(a, STATIC, SINGULAR, UINT32, HDOP, 12) \ -X(a, STATIC, SINGULAR, UINT32, VDOP, 13) \ -X(a, STATIC, SINGULAR, UINT32, gps_accuracy, 14) \ -X(a, STATIC, SINGULAR, UINT32, ground_speed, 15) \ -X(a, STATIC, SINGULAR, UINT32, ground_track, 16) \ -X(a, STATIC, SINGULAR, UINT32, fix_quality, 17) \ -X(a, STATIC, SINGULAR, UINT32, fix_type, 18) \ -X(a, STATIC, SINGULAR, UINT32, sats_in_view, 19) \ -X(a, STATIC, SINGULAR, UINT32, sensor_id, 20) \ -X(a, STATIC, SINGULAR, UINT32, next_update, 21) \ -X(a, STATIC, SINGULAR, UINT32, seq_number, 22) -#define Position_CALLBACK NULL -#define Position_DEFAULT NULL - -#define User_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, STRING, id, 1) \ -X(a, STATIC, SINGULAR, STRING, long_name, 2) \ -X(a, STATIC, SINGULAR, STRING, short_name, 3) \ -X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, macaddr, 4) \ -X(a, STATIC, SINGULAR, UENUM, hw_model, 5) \ -X(a, STATIC, SINGULAR, BOOL, is_licensed, 6) -#define User_CALLBACK NULL -#define User_DEFAULT NULL - -#define RouteDiscovery_FIELDLIST(X, a) \ -X(a, STATIC, REPEATED, FIXED32, route, 1) -#define RouteDiscovery_CALLBACK NULL -#define RouteDiscovery_DEFAULT NULL - -#define Routing_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,route_request,route_request), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,route_reply,route_reply), 2) \ -X(a, STATIC, ONEOF, UENUM, (variant,error_reason,error_reason), 3) -#define Routing_CALLBACK NULL -#define Routing_DEFAULT NULL -#define Routing_variant_route_request_MSGTYPE RouteDiscovery -#define Routing_variant_route_reply_MSGTYPE RouteDiscovery - -#define Data_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, portnum, 1) \ -X(a, STATIC, SINGULAR, BYTES, payload, 2) \ -X(a, STATIC, SINGULAR, BOOL, want_response, 3) \ -X(a, STATIC, SINGULAR, FIXED32, dest, 4) \ -X(a, STATIC, SINGULAR, FIXED32, source, 5) \ -X(a, STATIC, SINGULAR, FIXED32, request_id, 6) \ -X(a, STATIC, SINGULAR, FIXED32, reply_id, 7) \ -X(a, STATIC, SINGULAR, FIXED32, emoji, 8) -#define Data_CALLBACK NULL -#define Data_DEFAULT NULL - -#define Waypoint_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, id, 1) \ -X(a, STATIC, SINGULAR, SFIXED32, latitude_i, 2) \ -X(a, STATIC, SINGULAR, SFIXED32, longitude_i, 3) \ -X(a, STATIC, SINGULAR, UINT32, expire, 4) \ -X(a, STATIC, SINGULAR, UINT32, locked_to, 5) \ -X(a, STATIC, SINGULAR, STRING, name, 6) \ -X(a, STATIC, SINGULAR, STRING, description, 7) \ -X(a, STATIC, SINGULAR, FIXED32, icon, 8) -#define Waypoint_CALLBACK NULL -#define Waypoint_DEFAULT NULL - -#define MeshPacket_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FIXED32, from, 1) \ -X(a, STATIC, SINGULAR, FIXED32, to, 2) \ -X(a, STATIC, SINGULAR, UINT32, channel, 3) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,decoded,decoded), 4) \ -X(a, STATIC, ONEOF, BYTES, (payload_variant,encrypted,encrypted), 5) \ -X(a, STATIC, SINGULAR, FIXED32, id, 6) \ -X(a, STATIC, SINGULAR, FIXED32, rx_time, 7) \ -X(a, STATIC, SINGULAR, FLOAT, rx_snr, 8) \ -X(a, STATIC, SINGULAR, UINT32, hop_limit, 9) \ -X(a, STATIC, SINGULAR, BOOL, want_ack, 10) \ -X(a, STATIC, SINGULAR, UENUM, priority, 11) \ -X(a, STATIC, SINGULAR, INT32, rx_rssi, 12) \ -X(a, STATIC, SINGULAR, UENUM, delayed, 13) -#define MeshPacket_CALLBACK NULL -#define MeshPacket_DEFAULT NULL -#define MeshPacket_payload_variant_decoded_MSGTYPE Data - -#define NodeInfo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, num, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, user, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, position, 3) \ -X(a, STATIC, SINGULAR, FLOAT, snr, 4) \ -X(a, STATIC, SINGULAR, FIXED32, last_heard, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, device_metrics, 6) -#define NodeInfo_CALLBACK NULL -#define NodeInfo_DEFAULT NULL -#define NodeInfo_user_MSGTYPE User -#define NodeInfo_position_MSGTYPE Position -#define NodeInfo_device_metrics_MSGTYPE DeviceMetrics - -#define MyNodeInfo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, my_node_num, 1) \ -X(a, STATIC, SINGULAR, BOOL, has_gps, 2) \ -X(a, STATIC, SINGULAR, UINT32, max_channels, 3) \ -X(a, STATIC, SINGULAR, STRING, firmware_version, 4) \ -X(a, STATIC, SINGULAR, UENUM, error_code, 5) \ -X(a, STATIC, SINGULAR, UINT32, error_address, 6) \ -X(a, STATIC, SINGULAR, UINT32, error_count, 7) \ -X(a, STATIC, SINGULAR, UINT32, reboot_count, 8) \ -X(a, STATIC, SINGULAR, FLOAT, bitrate, 9) \ -X(a, STATIC, SINGULAR, UINT32, message_timeout_msec, 10) \ -X(a, STATIC, SINGULAR, UINT32, min_app_version, 11) \ -X(a, STATIC, REPEATED, UINT32, air_period_tx, 12) \ -X(a, STATIC, REPEATED, UINT32, air_period_rx, 13) \ -X(a, STATIC, SINGULAR, BOOL, has_wifi, 14) \ -X(a, STATIC, SINGULAR, FLOAT, channel_utilization, 15) \ -X(a, STATIC, SINGULAR, FLOAT, air_util_tx, 16) -#define MyNodeInfo_CALLBACK NULL -#define MyNodeInfo_DEFAULT NULL - -#define LogRecord_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, STRING, message, 1) \ -X(a, STATIC, SINGULAR, FIXED32, time, 2) \ -X(a, STATIC, SINGULAR, STRING, source, 3) \ -X(a, STATIC, SINGULAR, UENUM, level, 4) -#define LogRecord_CALLBACK NULL -#define LogRecord_DEFAULT NULL - -#define QueueStatus_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, INT32, res, 1) \ -X(a, STATIC, SINGULAR, UINT32, free, 2) \ -X(a, STATIC, SINGULAR, UINT32, maxlen, 3) \ -X(a, STATIC, SINGULAR, UINT32, mesh_packet_id, 4) -#define QueueStatus_CALLBACK NULL -#define QueueStatus_DEFAULT NULL - -#define FromRadio_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, id, 1) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,packet,packet), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,my_info,my_info), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,node_info,node_info), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,config,config), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,log_record,log_record), 6) \ -X(a, STATIC, ONEOF, UINT32, (payload_variant,config_complete_id,config_complete_id), 7) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,rebooted,rebooted), 8) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,moduleConfig,moduleConfig), 9) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,channel,channel), 10) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,queueStatus,queueStatus), 11) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,xmodemPacket,xmodemPacket), 12) -#define FromRadio_CALLBACK NULL -#define FromRadio_DEFAULT NULL -#define FromRadio_payload_variant_packet_MSGTYPE MeshPacket -#define FromRadio_payload_variant_my_info_MSGTYPE MyNodeInfo -#define FromRadio_payload_variant_node_info_MSGTYPE NodeInfo -#define FromRadio_payload_variant_config_MSGTYPE Config -#define FromRadio_payload_variant_log_record_MSGTYPE LogRecord -#define FromRadio_payload_variant_moduleConfig_MSGTYPE ModuleConfig -#define FromRadio_payload_variant_channel_MSGTYPE Channel -#define FromRadio_payload_variant_queueStatus_MSGTYPE QueueStatus -#define FromRadio_payload_variant_xmodemPacket_MSGTYPE XModem - -#define ToRadio_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,packet,packet), 1) \ -X(a, STATIC, ONEOF, UINT32, (payload_variant,want_config_id,want_config_id), 3) \ -X(a, STATIC, ONEOF, BOOL, (payload_variant,disconnect,disconnect), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,xmodemPacket,xmodemPacket), 5) -#define ToRadio_CALLBACK NULL -#define ToRadio_DEFAULT NULL -#define ToRadio_payload_variant_packet_MSGTYPE MeshPacket -#define ToRadio_payload_variant_xmodemPacket_MSGTYPE XModem - -#define Compressed_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, portnum, 1) \ -X(a, STATIC, SINGULAR, BYTES, data, 2) -#define Compressed_CALLBACK NULL -#define Compressed_DEFAULT NULL - -extern const pb_msgdesc_t Position_msg; -extern const pb_msgdesc_t User_msg; -extern const pb_msgdesc_t RouteDiscovery_msg; -extern const pb_msgdesc_t Routing_msg; -extern const pb_msgdesc_t Data_msg; -extern const pb_msgdesc_t Waypoint_msg; -extern const pb_msgdesc_t MeshPacket_msg; -extern const pb_msgdesc_t NodeInfo_msg; -extern const pb_msgdesc_t MyNodeInfo_msg; -extern const pb_msgdesc_t LogRecord_msg; -extern const pb_msgdesc_t QueueStatus_msg; -extern const pb_msgdesc_t FromRadio_msg; -extern const pb_msgdesc_t ToRadio_msg; -extern const pb_msgdesc_t Compressed_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define Position_fields &Position_msg -#define User_fields &User_msg -#define RouteDiscovery_fields &RouteDiscovery_msg -#define Routing_fields &Routing_msg -#define Data_fields &Data_msg -#define Waypoint_fields &Waypoint_msg -#define MeshPacket_fields &MeshPacket_msg -#define NodeInfo_fields &NodeInfo_msg -#define MyNodeInfo_fields &MyNodeInfo_msg -#define LogRecord_fields &LogRecord_msg -#define QueueStatus_fields &QueueStatus_msg -#define FromRadio_fields &FromRadio_msg -#define ToRadio_fields &ToRadio_msg -#define Compressed_fields &Compressed_msg - -/* Maximum encoded size of messages (where known) */ -#define Compressed_size 243 -#define Data_size 270 -#define FromRadio_size 330 -#define LogRecord_size 81 -#define MeshPacket_size 321 -#define MyNodeInfo_size 179 -#define NodeInfo_size 258 -#define Position_size 137 -#define QueueStatus_size 23 -#define RouteDiscovery_size 40 -#define Routing_size 42 -#define ToRadio_size 324 -#define User_size 77 -#define Waypoint_size 165 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/module_config.pb.c b/src/mesh/generated/module_config.pb.c deleted file mode 100644 index eb22a5ec3..000000000 --- a/src/mesh/generated/module_config.pb.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "module_config.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ModuleConfig, ModuleConfig, AUTO) - - -PB_BIND(ModuleConfig_MQTTConfig, ModuleConfig_MQTTConfig, AUTO) - - -PB_BIND(ModuleConfig_RemoteHardwareConfig, ModuleConfig_RemoteHardwareConfig, AUTO) - - -PB_BIND(ModuleConfig_AudioConfig, ModuleConfig_AudioConfig, AUTO) - - -PB_BIND(ModuleConfig_SerialConfig, ModuleConfig_SerialConfig, AUTO) - - -PB_BIND(ModuleConfig_ExternalNotificationConfig, ModuleConfig_ExternalNotificationConfig, AUTO) - - -PB_BIND(ModuleConfig_StoreForwardConfig, ModuleConfig_StoreForwardConfig, AUTO) - - -PB_BIND(ModuleConfig_RangeTestConfig, ModuleConfig_RangeTestConfig, AUTO) - - -PB_BIND(ModuleConfig_TelemetryConfig, ModuleConfig_TelemetryConfig, AUTO) - - -PB_BIND(ModuleConfig_CannedMessageConfig, ModuleConfig_CannedMessageConfig, AUTO) - - - - - - - diff --git a/src/mesh/generated/module_config.pb.h b/src/mesh/generated/module_config.pb.h deleted file mode 100644 index bd4e90832..000000000 --- a/src/mesh/generated/module_config.pb.h +++ /dev/null @@ -1,568 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_MODULE_CONFIG_PB_H_INCLUDED -#define PB_MODULE_CONFIG_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* Baudrate for codec2 voice */ -typedef enum _ModuleConfig_AudioConfig_Audio_Baud { - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_DEFAULT = 0, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_3200 = 1, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_2400 = 2, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_1600 = 3, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_1400 = 4, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_1300 = 5, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_1200 = 6, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_700 = 7, - ModuleConfig_AudioConfig_Audio_Baud_CODEC2_700B = 8 -} ModuleConfig_AudioConfig_Audio_Baud; - -/* TODO: REPLACE */ -typedef enum _ModuleConfig_SerialConfig_Serial_Baud { - ModuleConfig_SerialConfig_Serial_Baud_BAUD_DEFAULT = 0, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_110 = 1, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_300 = 2, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_600 = 3, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_1200 = 4, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_2400 = 5, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_4800 = 6, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_9600 = 7, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_19200 = 8, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_38400 = 9, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_57600 = 10, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_115200 = 11, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_230400 = 12, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_460800 = 13, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_576000 = 14, - ModuleConfig_SerialConfig_Serial_Baud_BAUD_921600 = 15 -} ModuleConfig_SerialConfig_Serial_Baud; - -/* TODO: REPLACE */ -typedef enum _ModuleConfig_SerialConfig_Serial_Mode { - ModuleConfig_SerialConfig_Serial_Mode_DEFAULT = 0, - ModuleConfig_SerialConfig_Serial_Mode_SIMPLE = 1, - ModuleConfig_SerialConfig_Serial_Mode_PROTO = 2, - ModuleConfig_SerialConfig_Serial_Mode_TEXTMSG = 3, - ModuleConfig_SerialConfig_Serial_Mode_NMEA = 4 -} ModuleConfig_SerialConfig_Serial_Mode; - -/* TODO: REPLACE */ -typedef enum _ModuleConfig_CannedMessageConfig_InputEventChar { - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_NONE = 0, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_UP = 17, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_DOWN = 18, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_LEFT = 19, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_RIGHT = 20, - /* '\n' */ - ModuleConfig_CannedMessageConfig_InputEventChar_SELECT = 10, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_BACK = 27, - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig_InputEventChar_CANCEL = 24 -} ModuleConfig_CannedMessageConfig_InputEventChar; - -/* Struct definitions */ -/* MQTT Client Config */ -typedef struct _ModuleConfig_MQTTConfig { - /* If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as - is_uplink_enabled or is_downlink_enabled. */ - bool enabled; - /* The server to use for our MQTT global message gateway feature. - If not set, the default server will be used */ - char address[64]; - /* MQTT username to use (most useful for a custom MQTT server). - If using a custom server, this will be honoured even if empty. - If using the default server, this will only be honoured if set, otherwise the device will use the default username */ - char username[64]; - /* MQTT password to use (most useful for a custom MQTT server). - If using a custom server, this will be honoured even if empty. - If using the default server, this will only be honoured if set, otherwise the device will use the default password */ - char password[64]; - /* Whether to send encrypted or decrypted packets to MQTT. - This parameter is only honoured if you also set server - (the default official mqtt.meshtastic.org server can handle encrypted packets) - Decrypted packets may be useful for external systems that want to consume meshtastic packets */ - bool encryption_enabled; - /* Whether to send / consume json packets on MQTT */ - bool json_enabled; -} ModuleConfig_MQTTConfig; - -/* RemoteHardwareModule Config */ -typedef struct _ModuleConfig_RemoteHardwareConfig { - /* Whether the Module is enabled */ - bool enabled; -} ModuleConfig_RemoteHardwareConfig; - -/* Audio Config for codec2 voice */ -typedef struct _ModuleConfig_AudioConfig { - /* Whether Audio is enabled */ - bool codec2_enabled; - /* PTT Pin */ - uint8_t ptt_pin; - /* The audio sample rate to use for codec2 */ - ModuleConfig_AudioConfig_Audio_Baud bitrate; - /* I2S Word Select */ - uint8_t i2s_ws; - /* I2S Data IN */ - uint8_t i2s_sd; - /* I2S Data OUT */ - uint8_t i2s_din; - /* I2S Clock */ - uint8_t i2s_sck; -} ModuleConfig_AudioConfig; - -/* Serial Config */ -typedef struct _ModuleConfig_SerialConfig { - /* Preferences for the SerialModule - FIXME - Move this out of UserPreferences and into a section for module configuration. */ - bool enabled; - /* TODO: REPLACE */ - bool echo; - /* TODO: REPLACE */ - uint32_t rxd; - /* TODO: REPLACE */ - uint32_t txd; - /* TODO: REPLACE */ - ModuleConfig_SerialConfig_Serial_Baud baud; - /* TODO: REPLACE */ - uint32_t timeout; - /* TODO: REPLACE */ - ModuleConfig_SerialConfig_Serial_Mode mode; -} ModuleConfig_SerialConfig; - -/* External Notifications Config */ -typedef struct _ModuleConfig_ExternalNotificationConfig { - /* Enable the ExternalNotificationModule */ - bool enabled; - /* When using in On/Off mode, keep the output on for this many - milliseconds. Default 1000ms (1 second). */ - uint32_t output_ms; - /* Define the output pin GPIO setting Defaults to - EXT_NOTIFY_OUT if set for the board. - In standalone devices this pin should drive the LED to match the UI. */ - uint32_t output; - /* IF this is true, the 'output' Pin will be pulled active high, false - means active low. */ - bool active; - /* True: Alert when a text message arrives (output) */ - bool alert_message; - /* True: Alert when the bell character is received (output) */ - bool alert_bell; - /* use a PWM output instead of a simple on/off output. This will ignore - the 'output', 'output_ms' and 'active' settings and use the - device.buzzer_gpio instead. */ - bool use_pwm; - /* Optional: Define a secondary output pin for a vibra motor - This is used in standalone devices to match the UI. */ - uint8_t output_vibra; - /* Optional: Define a tertiary output pin for an active buzzer - This is used in standalone devices to to match the UI. */ - uint8_t output_buzzer; - /* True: Alert when a text message arrives (output_vibra) */ - bool alert_message_vibra; - /* True: Alert when a text message arrives (output_buzzer) */ - bool alert_message_buzzer; - /* True: Alert when the bell character is received (output_vibra) */ - bool alert_bell_vibra; - /* True: Alert when the bell character is received (output_buzzer) */ - bool alert_bell_buzzer; - /* The notification will toggle with 'output_ms' for this time of seconds. - Default is 0 which means don't repeat at all. 60 would mean blink - and/or beep for 60 seconds */ - uint16_t nag_timeout; -} ModuleConfig_ExternalNotificationConfig; - -/* Store and Forward Module Config */ -typedef struct _ModuleConfig_StoreForwardConfig { - /* Enable the Store and Forward Module */ - bool enabled; - /* TODO: REPLACE */ - bool heartbeat; - /* TODO: REPLACE */ - uint32_t records; - /* TODO: REPLACE */ - uint32_t history_return_max; - /* TODO: REPLACE */ - uint32_t history_return_window; -} ModuleConfig_StoreForwardConfig; - -/* Preferences for the RangeTestModule */ -typedef struct _ModuleConfig_RangeTestConfig { - /* Enable the Range Test Module */ - bool enabled; - /* Send out range test messages from this node */ - uint32_t sender; - /* Bool value indicating that this node should save a RangeTest.csv file. - ESP32 Only */ - bool save; -} ModuleConfig_RangeTestConfig; - -/* Configuration for both device and environment metrics */ -typedef struct _ModuleConfig_TelemetryConfig { - /* Interval in seconds of how often we should try to send our - device metrics to the mesh */ - uint32_t device_update_interval; - uint32_t environment_update_interval; - /* Preferences for the Telemetry Module (Environment) - Enable/Disable the telemetry measurement module measurement collection */ - bool environment_measurement_enabled; - /* Enable/Disable the telemetry measurement module on-device display */ - bool environment_screen_enabled; - /* We'll always read the sensor in Celsius, but sometimes we might want to - display the results in Fahrenheit as a "user preference". */ - bool environment_display_fahrenheit; -} ModuleConfig_TelemetryConfig; - -/* TODO: REPLACE */ -typedef struct _ModuleConfig_CannedMessageConfig { - /* Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating. */ - bool rotary1_enabled; - /* GPIO pin for rotary encoder A port. */ - uint32_t inputbroker_pin_a; - /* GPIO pin for rotary encoder B port. */ - uint32_t inputbroker_pin_b; - /* GPIO pin for rotary encoder Press port. */ - uint32_t inputbroker_pin_press; - /* Generate input event on CW of this kind. */ - ModuleConfig_CannedMessageConfig_InputEventChar inputbroker_event_cw; - /* Generate input event on CCW of this kind. */ - ModuleConfig_CannedMessageConfig_InputEventChar inputbroker_event_ccw; - /* Generate input event on Press of this kind. */ - ModuleConfig_CannedMessageConfig_InputEventChar inputbroker_event_press; - /* Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker. */ - bool updown1_enabled; - /* Enable/disable CannedMessageModule. */ - bool enabled; - /* Input event origin accepted by the canned message module. - Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any" */ - char allow_input_source[16]; - /* CannedMessageModule also sends a bell character with the messages. - ExternalNotificationModule can benefit from this feature. */ - bool send_bell; -} ModuleConfig_CannedMessageConfig; - -/* Module Config */ -typedef struct _ModuleConfig { - pb_size_t which_payload_variant; - union { - /* TODO: REPLACE */ - ModuleConfig_MQTTConfig mqtt; - /* TODO: REPLACE */ - ModuleConfig_SerialConfig serial; - /* TODO: REPLACE */ - ModuleConfig_ExternalNotificationConfig external_notification; - /* TODO: REPLACE */ - ModuleConfig_StoreForwardConfig store_forward; - /* TODO: REPLACE */ - ModuleConfig_RangeTestConfig range_test; - /* TODO: REPLACE */ - ModuleConfig_TelemetryConfig telemetry; - /* TODO: REPLACE */ - ModuleConfig_CannedMessageConfig canned_message; - /* TODO: REPLACE */ - ModuleConfig_AudioConfig audio; - /* TODO: REPLACE */ - ModuleConfig_RemoteHardwareConfig remote_hardware; - } payload_variant; -} ModuleConfig; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _ModuleConfig_AudioConfig_Audio_Baud_MIN ModuleConfig_AudioConfig_Audio_Baud_CODEC2_DEFAULT -#define _ModuleConfig_AudioConfig_Audio_Baud_MAX ModuleConfig_AudioConfig_Audio_Baud_CODEC2_700B -#define _ModuleConfig_AudioConfig_Audio_Baud_ARRAYSIZE ((ModuleConfig_AudioConfig_Audio_Baud)(ModuleConfig_AudioConfig_Audio_Baud_CODEC2_700B+1)) - -#define _ModuleConfig_SerialConfig_Serial_Baud_MIN ModuleConfig_SerialConfig_Serial_Baud_BAUD_DEFAULT -#define _ModuleConfig_SerialConfig_Serial_Baud_MAX ModuleConfig_SerialConfig_Serial_Baud_BAUD_921600 -#define _ModuleConfig_SerialConfig_Serial_Baud_ARRAYSIZE ((ModuleConfig_SerialConfig_Serial_Baud)(ModuleConfig_SerialConfig_Serial_Baud_BAUD_921600+1)) - -#define _ModuleConfig_SerialConfig_Serial_Mode_MIN ModuleConfig_SerialConfig_Serial_Mode_DEFAULT -#define _ModuleConfig_SerialConfig_Serial_Mode_MAX ModuleConfig_SerialConfig_Serial_Mode_NMEA -#define _ModuleConfig_SerialConfig_Serial_Mode_ARRAYSIZE ((ModuleConfig_SerialConfig_Serial_Mode)(ModuleConfig_SerialConfig_Serial_Mode_NMEA+1)) - -#define _ModuleConfig_CannedMessageConfig_InputEventChar_MIN ModuleConfig_CannedMessageConfig_InputEventChar_NONE -#define _ModuleConfig_CannedMessageConfig_InputEventChar_MAX ModuleConfig_CannedMessageConfig_InputEventChar_BACK -#define _ModuleConfig_CannedMessageConfig_InputEventChar_ARRAYSIZE ((ModuleConfig_CannedMessageConfig_InputEventChar)(ModuleConfig_CannedMessageConfig_InputEventChar_BACK+1)) - - - - -#define ModuleConfig_AudioConfig_bitrate_ENUMTYPE ModuleConfig_AudioConfig_Audio_Baud - -#define ModuleConfig_SerialConfig_baud_ENUMTYPE ModuleConfig_SerialConfig_Serial_Baud -#define ModuleConfig_SerialConfig_mode_ENUMTYPE ModuleConfig_SerialConfig_Serial_Mode - - - - - -#define ModuleConfig_CannedMessageConfig_inputbroker_event_cw_ENUMTYPE ModuleConfig_CannedMessageConfig_InputEventChar -#define ModuleConfig_CannedMessageConfig_inputbroker_event_ccw_ENUMTYPE ModuleConfig_CannedMessageConfig_InputEventChar -#define ModuleConfig_CannedMessageConfig_inputbroker_event_press_ENUMTYPE ModuleConfig_CannedMessageConfig_InputEventChar - - -/* Initializer values for message structs */ -#define ModuleConfig_init_default {0, {ModuleConfig_MQTTConfig_init_default}} -#define ModuleConfig_MQTTConfig_init_default {0, "", "", "", 0, 0} -#define ModuleConfig_RemoteHardwareConfig_init_default {0} -#define ModuleConfig_AudioConfig_init_default {0, 0, _ModuleConfig_AudioConfig_Audio_Baud_MIN, 0, 0, 0, 0} -#define ModuleConfig_SerialConfig_init_default {0, 0, 0, 0, _ModuleConfig_SerialConfig_Serial_Baud_MIN, 0, _ModuleConfig_SerialConfig_Serial_Mode_MIN} -#define ModuleConfig_ExternalNotificationConfig_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -#define ModuleConfig_StoreForwardConfig_init_default {0, 0, 0, 0, 0} -#define ModuleConfig_RangeTestConfig_init_default {0, 0, 0} -#define ModuleConfig_TelemetryConfig_init_default {0, 0, 0, 0, 0} -#define ModuleConfig_CannedMessageConfig_init_default {0, 0, 0, 0, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, 0, 0, "", 0} -#define ModuleConfig_init_zero {0, {ModuleConfig_MQTTConfig_init_zero}} -#define ModuleConfig_MQTTConfig_init_zero {0, "", "", "", 0, 0} -#define ModuleConfig_RemoteHardwareConfig_init_zero {0} -#define ModuleConfig_AudioConfig_init_zero {0, 0, _ModuleConfig_AudioConfig_Audio_Baud_MIN, 0, 0, 0, 0} -#define ModuleConfig_SerialConfig_init_zero {0, 0, 0, 0, _ModuleConfig_SerialConfig_Serial_Baud_MIN, 0, _ModuleConfig_SerialConfig_Serial_Mode_MIN} -#define ModuleConfig_ExternalNotificationConfig_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -#define ModuleConfig_StoreForwardConfig_init_zero {0, 0, 0, 0, 0} -#define ModuleConfig_RangeTestConfig_init_zero {0, 0, 0} -#define ModuleConfig_TelemetryConfig_init_zero {0, 0, 0, 0, 0} -#define ModuleConfig_CannedMessageConfig_init_zero {0, 0, 0, 0, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _ModuleConfig_CannedMessageConfig_InputEventChar_MIN, 0, 0, "", 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define ModuleConfig_MQTTConfig_enabled_tag 1 -#define ModuleConfig_MQTTConfig_address_tag 2 -#define ModuleConfig_MQTTConfig_username_tag 3 -#define ModuleConfig_MQTTConfig_password_tag 4 -#define ModuleConfig_MQTTConfig_encryption_enabled_tag 5 -#define ModuleConfig_MQTTConfig_json_enabled_tag 6 -#define ModuleConfig_RemoteHardwareConfig_enabled_tag 1 -#define ModuleConfig_AudioConfig_codec2_enabled_tag 1 -#define ModuleConfig_AudioConfig_ptt_pin_tag 2 -#define ModuleConfig_AudioConfig_bitrate_tag 3 -#define ModuleConfig_AudioConfig_i2s_ws_tag 4 -#define ModuleConfig_AudioConfig_i2s_sd_tag 5 -#define ModuleConfig_AudioConfig_i2s_din_tag 6 -#define ModuleConfig_AudioConfig_i2s_sck_tag 7 -#define ModuleConfig_SerialConfig_enabled_tag 1 -#define ModuleConfig_SerialConfig_echo_tag 2 -#define ModuleConfig_SerialConfig_rxd_tag 3 -#define ModuleConfig_SerialConfig_txd_tag 4 -#define ModuleConfig_SerialConfig_baud_tag 5 -#define ModuleConfig_SerialConfig_timeout_tag 6 -#define ModuleConfig_SerialConfig_mode_tag 7 -#define ModuleConfig_ExternalNotificationConfig_enabled_tag 1 -#define ModuleConfig_ExternalNotificationConfig_output_ms_tag 2 -#define ModuleConfig_ExternalNotificationConfig_output_tag 3 -#define ModuleConfig_ExternalNotificationConfig_active_tag 4 -#define ModuleConfig_ExternalNotificationConfig_alert_message_tag 5 -#define ModuleConfig_ExternalNotificationConfig_alert_bell_tag 6 -#define ModuleConfig_ExternalNotificationConfig_use_pwm_tag 7 -#define ModuleConfig_ExternalNotificationConfig_output_vibra_tag 8 -#define ModuleConfig_ExternalNotificationConfig_output_buzzer_tag 9 -#define ModuleConfig_ExternalNotificationConfig_alert_message_vibra_tag 10 -#define ModuleConfig_ExternalNotificationConfig_alert_message_buzzer_tag 11 -#define ModuleConfig_ExternalNotificationConfig_alert_bell_vibra_tag 12 -#define ModuleConfig_ExternalNotificationConfig_alert_bell_buzzer_tag 13 -#define ModuleConfig_ExternalNotificationConfig_nag_timeout_tag 14 -#define ModuleConfig_StoreForwardConfig_enabled_tag 1 -#define ModuleConfig_StoreForwardConfig_heartbeat_tag 2 -#define ModuleConfig_StoreForwardConfig_records_tag 3 -#define ModuleConfig_StoreForwardConfig_history_return_max_tag 4 -#define ModuleConfig_StoreForwardConfig_history_return_window_tag 5 -#define ModuleConfig_RangeTestConfig_enabled_tag 1 -#define ModuleConfig_RangeTestConfig_sender_tag 2 -#define ModuleConfig_RangeTestConfig_save_tag 3 -#define ModuleConfig_TelemetryConfig_device_update_interval_tag 1 -#define ModuleConfig_TelemetryConfig_environment_update_interval_tag 2 -#define ModuleConfig_TelemetryConfig_environment_measurement_enabled_tag 3 -#define ModuleConfig_TelemetryConfig_environment_screen_enabled_tag 4 -#define ModuleConfig_TelemetryConfig_environment_display_fahrenheit_tag 5 -#define ModuleConfig_CannedMessageConfig_rotary1_enabled_tag 1 -#define ModuleConfig_CannedMessageConfig_inputbroker_pin_a_tag 2 -#define ModuleConfig_CannedMessageConfig_inputbroker_pin_b_tag 3 -#define ModuleConfig_CannedMessageConfig_inputbroker_pin_press_tag 4 -#define ModuleConfig_CannedMessageConfig_inputbroker_event_cw_tag 5 -#define ModuleConfig_CannedMessageConfig_inputbroker_event_ccw_tag 6 -#define ModuleConfig_CannedMessageConfig_inputbroker_event_press_tag 7 -#define ModuleConfig_CannedMessageConfig_updown1_enabled_tag 8 -#define ModuleConfig_CannedMessageConfig_enabled_tag 9 -#define ModuleConfig_CannedMessageConfig_allow_input_source_tag 10 -#define ModuleConfig_CannedMessageConfig_send_bell_tag 11 -#define ModuleConfig_mqtt_tag 1 -#define ModuleConfig_serial_tag 2 -#define ModuleConfig_external_notification_tag 3 -#define ModuleConfig_store_forward_tag 4 -#define ModuleConfig_range_test_tag 5 -#define ModuleConfig_telemetry_tag 6 -#define ModuleConfig_canned_message_tag 7 -#define ModuleConfig_audio_tag 8 -#define ModuleConfig_remote_hardware_tag 9 - -/* Struct field encoding specification for nanopb */ -#define ModuleConfig_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,mqtt,payload_variant.mqtt), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,serial,payload_variant.serial), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,external_notification,payload_variant.external_notification), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,store_forward,payload_variant.store_forward), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,range_test,payload_variant.range_test), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,telemetry,payload_variant.telemetry), 6) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,canned_message,payload_variant.canned_message), 7) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,audio,payload_variant.audio), 8) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,remote_hardware,payload_variant.remote_hardware), 9) -#define ModuleConfig_CALLBACK NULL -#define ModuleConfig_DEFAULT NULL -#define ModuleConfig_payload_variant_mqtt_MSGTYPE ModuleConfig_MQTTConfig -#define ModuleConfig_payload_variant_serial_MSGTYPE ModuleConfig_SerialConfig -#define ModuleConfig_payload_variant_external_notification_MSGTYPE ModuleConfig_ExternalNotificationConfig -#define ModuleConfig_payload_variant_store_forward_MSGTYPE ModuleConfig_StoreForwardConfig -#define ModuleConfig_payload_variant_range_test_MSGTYPE ModuleConfig_RangeTestConfig -#define ModuleConfig_payload_variant_telemetry_MSGTYPE ModuleConfig_TelemetryConfig -#define ModuleConfig_payload_variant_canned_message_MSGTYPE ModuleConfig_CannedMessageConfig -#define ModuleConfig_payload_variant_audio_MSGTYPE ModuleConfig_AudioConfig -#define ModuleConfig_payload_variant_remote_hardware_MSGTYPE ModuleConfig_RemoteHardwareConfig - -#define ModuleConfig_MQTTConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ -X(a, STATIC, SINGULAR, STRING, address, 2) \ -X(a, STATIC, SINGULAR, STRING, username, 3) \ -X(a, STATIC, SINGULAR, STRING, password, 4) \ -X(a, STATIC, SINGULAR, BOOL, encryption_enabled, 5) \ -X(a, STATIC, SINGULAR, BOOL, json_enabled, 6) -#define ModuleConfig_MQTTConfig_CALLBACK NULL -#define ModuleConfig_MQTTConfig_DEFAULT NULL - -#define ModuleConfig_RemoteHardwareConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) -#define ModuleConfig_RemoteHardwareConfig_CALLBACK NULL -#define ModuleConfig_RemoteHardwareConfig_DEFAULT NULL - -#define ModuleConfig_AudioConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, codec2_enabled, 1) \ -X(a, STATIC, SINGULAR, UINT32, ptt_pin, 2) \ -X(a, STATIC, SINGULAR, UENUM, bitrate, 3) \ -X(a, STATIC, SINGULAR, UINT32, i2s_ws, 4) \ -X(a, STATIC, SINGULAR, UINT32, i2s_sd, 5) \ -X(a, STATIC, SINGULAR, UINT32, i2s_din, 6) \ -X(a, STATIC, SINGULAR, UINT32, i2s_sck, 7) -#define ModuleConfig_AudioConfig_CALLBACK NULL -#define ModuleConfig_AudioConfig_DEFAULT NULL - -#define ModuleConfig_SerialConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ -X(a, STATIC, SINGULAR, BOOL, echo, 2) \ -X(a, STATIC, SINGULAR, UINT32, rxd, 3) \ -X(a, STATIC, SINGULAR, UINT32, txd, 4) \ -X(a, STATIC, SINGULAR, UENUM, baud, 5) \ -X(a, STATIC, SINGULAR, UINT32, timeout, 6) \ -X(a, STATIC, SINGULAR, UENUM, mode, 7) -#define ModuleConfig_SerialConfig_CALLBACK NULL -#define ModuleConfig_SerialConfig_DEFAULT NULL - -#define ModuleConfig_ExternalNotificationConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ -X(a, STATIC, SINGULAR, UINT32, output_ms, 2) \ -X(a, STATIC, SINGULAR, UINT32, output, 3) \ -X(a, STATIC, SINGULAR, BOOL, active, 4) \ -X(a, STATIC, SINGULAR, BOOL, alert_message, 5) \ -X(a, STATIC, SINGULAR, BOOL, alert_bell, 6) \ -X(a, STATIC, SINGULAR, BOOL, use_pwm, 7) \ -X(a, STATIC, SINGULAR, UINT32, output_vibra, 8) \ -X(a, STATIC, SINGULAR, UINT32, output_buzzer, 9) \ -X(a, STATIC, SINGULAR, BOOL, alert_message_vibra, 10) \ -X(a, STATIC, SINGULAR, BOOL, alert_message_buzzer, 11) \ -X(a, STATIC, SINGULAR, BOOL, alert_bell_vibra, 12) \ -X(a, STATIC, SINGULAR, BOOL, alert_bell_buzzer, 13) \ -X(a, STATIC, SINGULAR, UINT32, nag_timeout, 14) -#define ModuleConfig_ExternalNotificationConfig_CALLBACK NULL -#define ModuleConfig_ExternalNotificationConfig_DEFAULT NULL - -#define ModuleConfig_StoreForwardConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ -X(a, STATIC, SINGULAR, BOOL, heartbeat, 2) \ -X(a, STATIC, SINGULAR, UINT32, records, 3) \ -X(a, STATIC, SINGULAR, UINT32, history_return_max, 4) \ -X(a, STATIC, SINGULAR, UINT32, history_return_window, 5) -#define ModuleConfig_StoreForwardConfig_CALLBACK NULL -#define ModuleConfig_StoreForwardConfig_DEFAULT NULL - -#define ModuleConfig_RangeTestConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ -X(a, STATIC, SINGULAR, UINT32, sender, 2) \ -X(a, STATIC, SINGULAR, BOOL, save, 3) -#define ModuleConfig_RangeTestConfig_CALLBACK NULL -#define ModuleConfig_RangeTestConfig_DEFAULT NULL - -#define ModuleConfig_TelemetryConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, device_update_interval, 1) \ -X(a, STATIC, SINGULAR, UINT32, environment_update_interval, 2) \ -X(a, STATIC, SINGULAR, BOOL, environment_measurement_enabled, 3) \ -X(a, STATIC, SINGULAR, BOOL, environment_screen_enabled, 4) \ -X(a, STATIC, SINGULAR, BOOL, environment_display_fahrenheit, 5) -#define ModuleConfig_TelemetryConfig_CALLBACK NULL -#define ModuleConfig_TelemetryConfig_DEFAULT NULL - -#define ModuleConfig_CannedMessageConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BOOL, rotary1_enabled, 1) \ -X(a, STATIC, SINGULAR, UINT32, inputbroker_pin_a, 2) \ -X(a, STATIC, SINGULAR, UINT32, inputbroker_pin_b, 3) \ -X(a, STATIC, SINGULAR, UINT32, inputbroker_pin_press, 4) \ -X(a, STATIC, SINGULAR, UENUM, inputbroker_event_cw, 5) \ -X(a, STATIC, SINGULAR, UENUM, inputbroker_event_ccw, 6) \ -X(a, STATIC, SINGULAR, UENUM, inputbroker_event_press, 7) \ -X(a, STATIC, SINGULAR, BOOL, updown1_enabled, 8) \ -X(a, STATIC, SINGULAR, BOOL, enabled, 9) \ -X(a, STATIC, SINGULAR, STRING, allow_input_source, 10) \ -X(a, STATIC, SINGULAR, BOOL, send_bell, 11) -#define ModuleConfig_CannedMessageConfig_CALLBACK NULL -#define ModuleConfig_CannedMessageConfig_DEFAULT NULL - -extern const pb_msgdesc_t ModuleConfig_msg; -extern const pb_msgdesc_t ModuleConfig_MQTTConfig_msg; -extern const pb_msgdesc_t ModuleConfig_RemoteHardwareConfig_msg; -extern const pb_msgdesc_t ModuleConfig_AudioConfig_msg; -extern const pb_msgdesc_t ModuleConfig_SerialConfig_msg; -extern const pb_msgdesc_t ModuleConfig_ExternalNotificationConfig_msg; -extern const pb_msgdesc_t ModuleConfig_StoreForwardConfig_msg; -extern const pb_msgdesc_t ModuleConfig_RangeTestConfig_msg; -extern const pb_msgdesc_t ModuleConfig_TelemetryConfig_msg; -extern const pb_msgdesc_t ModuleConfig_CannedMessageConfig_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ModuleConfig_fields &ModuleConfig_msg -#define ModuleConfig_MQTTConfig_fields &ModuleConfig_MQTTConfig_msg -#define ModuleConfig_RemoteHardwareConfig_fields &ModuleConfig_RemoteHardwareConfig_msg -#define ModuleConfig_AudioConfig_fields &ModuleConfig_AudioConfig_msg -#define ModuleConfig_SerialConfig_fields &ModuleConfig_SerialConfig_msg -#define ModuleConfig_ExternalNotificationConfig_fields &ModuleConfig_ExternalNotificationConfig_msg -#define ModuleConfig_StoreForwardConfig_fields &ModuleConfig_StoreForwardConfig_msg -#define ModuleConfig_RangeTestConfig_fields &ModuleConfig_RangeTestConfig_msg -#define ModuleConfig_TelemetryConfig_fields &ModuleConfig_TelemetryConfig_msg -#define ModuleConfig_CannedMessageConfig_fields &ModuleConfig_CannedMessageConfig_msg - -/* Maximum encoded size of messages (where known) */ -#define ModuleConfig_AudioConfig_size 19 -#define ModuleConfig_CannedMessageConfig_size 49 -#define ModuleConfig_ExternalNotificationConfig_size 40 -#define ModuleConfig_MQTTConfig_size 201 -#define ModuleConfig_RangeTestConfig_size 10 -#define ModuleConfig_RemoteHardwareConfig_size 2 -#define ModuleConfig_SerialConfig_size 26 -#define ModuleConfig_StoreForwardConfig_size 22 -#define ModuleConfig_TelemetryConfig_size 18 -#define ModuleConfig_size 204 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/mqtt.pb.c b/src/mesh/generated/mqtt.pb.c deleted file mode 100644 index 9c2a7eb63..000000000 --- a/src/mesh/generated/mqtt.pb.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "mqtt.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ServiceEnvelope, ServiceEnvelope, AUTO) - - - diff --git a/src/mesh/generated/mqtt.pb.h b/src/mesh/generated/mqtt.pb.h deleted file mode 100644 index 36de161cc..000000000 --- a/src/mesh/generated/mqtt.pb.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_MQTT_PB_H_INCLUDED -#define PB_MQTT_PB_H_INCLUDED -#include -#include "mesh.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* This message wraps a MeshPacket with extra metadata about the sender and how it arrived. */ -typedef struct _ServiceEnvelope { - /* The (probably encrypted) packet */ - struct _MeshPacket *packet; - /* The global channel ID it was sent on */ - char *channel_id; - /* The sending gateway node ID. Can we use this to authenticate/prevent fake - nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as - the globally trusted nodenum */ - char *gateway_id; -} ServiceEnvelope; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ServiceEnvelope_init_default {NULL, NULL, NULL} -#define ServiceEnvelope_init_zero {NULL, NULL, NULL} - -/* Field tags (for use in manual encoding/decoding) */ -#define ServiceEnvelope_packet_tag 1 -#define ServiceEnvelope_channel_id_tag 2 -#define ServiceEnvelope_gateway_id_tag 3 - -/* Struct field encoding specification for nanopb */ -#define ServiceEnvelope_FIELDLIST(X, a) \ -X(a, POINTER, OPTIONAL, MESSAGE, packet, 1) \ -X(a, POINTER, SINGULAR, STRING, channel_id, 2) \ -X(a, POINTER, SINGULAR, STRING, gateway_id, 3) -#define ServiceEnvelope_CALLBACK NULL -#define ServiceEnvelope_DEFAULT NULL -#define ServiceEnvelope_packet_MSGTYPE MeshPacket - -extern const pb_msgdesc_t ServiceEnvelope_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ServiceEnvelope_fields &ServiceEnvelope_msg - -/* Maximum encoded size of messages (where known) */ -/* ServiceEnvelope_size depends on runtime parameters */ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/portnums.pb.c b/src/mesh/generated/portnums.pb.c deleted file mode 100644 index 4e674aac5..000000000 --- a/src/mesh/generated/portnums.pb.c +++ /dev/null @@ -1,10 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "portnums.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - - - diff --git a/src/mesh/generated/portnums.pb.h b/src/mesh/generated/portnums.pb.h deleted file mode 100644 index 9e6a0b5b4..000000000 --- a/src/mesh/generated/portnums.pb.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_PORTNUMS_PB_H_INCLUDED -#define PB_PORTNUMS_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a - unique 'portnum' for their application. - If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this - master table. - PortNums should be assigned in the following range: - 0-63 Core Meshtastic use, do not use for third party apps - 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application - 256-511 Use one of these portnums for your private applications that you don't want to register publically - All other values are reserved. - Note: This was formerly a Type enum named 'typ' with the same id # - We have change to this 'portnum' based scheme for specifying app handlers for particular payloads. - This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically. */ -typedef enum _PortNum { - /* Deprecated: do not use in new code (formerly called OPAQUE) - A message sent from a device outside of the mesh, in a form the mesh does not understand - NOTE: This must be 0, because it is documented in IMeshService.aidl to be so */ - PortNum_UNKNOWN_APP = 0, - /* A simple UTF-8 text message, which even the little micros in the mesh - can understand and show on their screen eventually in some circumstances - even signal might send messages in this form (see below) */ - PortNum_TEXT_MESSAGE_APP = 1, - /* Reserved for built-in GPIO/example app. - See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number */ - PortNum_REMOTE_HARDWARE_APP = 2, - /* The built-in position messaging app. - Payload is a [Position](/docs/developers/protobufs/api#position) message */ - PortNum_POSITION_APP = 3, - /* The built-in user info app. - Payload is a [User](/docs/developers/protobufs/api#user) message */ - PortNum_NODEINFO_APP = 4, - /* Protocol control packets for mesh protocol use. - Payload is a [Routing](/docs/developers/protobufs/api#routing) message */ - PortNum_ROUTING_APP = 5, - /* Admin control packets. - Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message */ - PortNum_ADMIN_APP = 6, - /* Compressed TEXT_MESSAGE payloads. */ - PortNum_TEXT_MESSAGE_COMPRESSED_APP = 7, - /* Waypoint payloads. - Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message */ - PortNum_WAYPOINT_APP = 8, - /* Audio Payloads. - Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now */ - PortNum_AUDIO_APP = 9, - /* Provides a 'ping' service that replies to any packet it receives. - Also serves as a small example module. */ - PortNum_REPLY_APP = 32, - /* Used for the python IP tunnel feature */ - PortNum_IP_TUNNEL_APP = 33, - /* Provides a hardware serial interface to send and receive from the Meshtastic network. - Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic - network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network. - Maximum packet size of 240 bytes. - Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp. */ - PortNum_SERIAL_APP = 64, - /* STORE_FORWARD_APP (Work in Progress) - Maintained by Jm Casler (MC Hamster) : jm@casler.org */ - PortNum_STORE_FORWARD_APP = 65, - /* Optional port for messages for the range test module. */ - PortNum_RANGE_TEST_APP = 66, - /* Provides a format to send and receive telemetry data from the Meshtastic network. - Maintained by Charles Crossan (crossan007) : crossan007@gmail.com */ - PortNum_TELEMETRY_APP = 67, - /* Experimental tools for estimating node position without a GPS - Maintained by Github user a-f-G-U-C (a Meshtastic contributor) - Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS */ - PortNum_ZPS_APP = 68, - /* Used to let multiple instances of Linux native applications communicate - as if they did using their LoRa chip. - Maintained by GitHub user GUVWAF. - Project files at https://github.com/GUVWAF/Meshtasticator */ - PortNum_SIMULATOR_APP = 69, - /* Provides a traceroute functionality to show the route a packet towards - a certain destination would take on the mesh. */ - PortNum_TRACEROUTE_APP = 70, - /* Private applications should use portnums >= 256. - To simplify initial development and testing you can use "PRIVATE_APP" - in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh)) */ - PortNum_PRIVATE_APP = 256, - /* ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder */ - PortNum_ATAK_FORWARDER = 257, - /* Currently we limit port nums to no higher than this value */ - PortNum_MAX = 511 -} PortNum; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _PortNum_MIN PortNum_UNKNOWN_APP -#define _PortNum_MAX PortNum_MAX -#define _PortNum_ARRAYSIZE ((PortNum)(PortNum_MAX+1)) - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/remote_hardware.pb.c b/src/mesh/generated/remote_hardware.pb.c deleted file mode 100644 index de6c4dc4b..000000000 --- a/src/mesh/generated/remote_hardware.pb.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "remote_hardware.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(HardwareMessage, HardwareMessage, AUTO) - - - - diff --git a/src/mesh/generated/remote_hardware.pb.h b/src/mesh/generated/remote_hardware.pb.h deleted file mode 100644 index 6c09809c5..000000000 --- a/src/mesh/generated/remote_hardware.pb.h +++ /dev/null @@ -1,93 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_REMOTE_HARDWARE_PB_H_INCLUDED -#define PB_REMOTE_HARDWARE_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* TODO: REPLACE */ -typedef enum _HardwareMessage_Type { - /* Unset/unused */ - HardwareMessage_Type_UNSET = 0, - /* Set gpio gpios based on gpio_mask/gpio_value */ - HardwareMessage_Type_WRITE_GPIOS = 1, - /* We are now interested in watching the gpio_mask gpios. - If the selected gpios change, please broadcast GPIOS_CHANGED. - Will implicitly change the gpios requested to be INPUT gpios. */ - HardwareMessage_Type_WATCH_GPIOS = 2, - /* The gpios listed in gpio_mask have changed, the new values are listed in gpio_value */ - HardwareMessage_Type_GPIOS_CHANGED = 3, - /* Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated */ - HardwareMessage_Type_READ_GPIOS = 4, - /* A reply to READ_GPIOS. gpio_mask and gpio_value will be populated */ - HardwareMessage_Type_READ_GPIOS_REPLY = 5 -} HardwareMessage_Type; - -/* Struct definitions */ -/* An example app to show off the module system. This message is used for - REMOTE_HARDWARE_APP PortNums. - Also provides easy remote access to any GPIO. - In the future other remote hardware operations can be added based on user interest - (i.e. serial output, spi/i2c input/output). - FIXME - currently this feature is turned on by default which is dangerous - because no security yet (beyond the channel mechanism). - It should be off by default and then protected based on some TBD mechanism - (a special channel once multichannel support is included?) */ -typedef struct _HardwareMessage { - /* What type of HardwareMessage is this? */ - HardwareMessage_Type type; - /* What gpios are we changing. Not used for all MessageTypes, see MessageType for details */ - uint64_t gpio_mask; - /* For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios. - Not used for all MessageTypes, see MessageType for details */ - uint64_t gpio_value; -} HardwareMessage; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _HardwareMessage_Type_MIN HardwareMessage_Type_UNSET -#define _HardwareMessage_Type_MAX HardwareMessage_Type_READ_GPIOS_REPLY -#define _HardwareMessage_Type_ARRAYSIZE ((HardwareMessage_Type)(HardwareMessage_Type_READ_GPIOS_REPLY+1)) - -#define HardwareMessage_type_ENUMTYPE HardwareMessage_Type - - -/* Initializer values for message structs */ -#define HardwareMessage_init_default {_HardwareMessage_Type_MIN, 0, 0} -#define HardwareMessage_init_zero {_HardwareMessage_Type_MIN, 0, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define HardwareMessage_type_tag 1 -#define HardwareMessage_gpio_mask_tag 2 -#define HardwareMessage_gpio_value_tag 3 - -/* Struct field encoding specification for nanopb */ -#define HardwareMessage_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, type, 1) \ -X(a, STATIC, SINGULAR, UINT64, gpio_mask, 2) \ -X(a, STATIC, SINGULAR, UINT64, gpio_value, 3) -#define HardwareMessage_CALLBACK NULL -#define HardwareMessage_DEFAULT NULL - -extern const pb_msgdesc_t HardwareMessage_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define HardwareMessage_fields &HardwareMessage_msg - -/* Maximum encoded size of messages (where known) */ -#define HardwareMessage_size 24 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/rtttl.pb.c b/src/mesh/generated/rtttl.pb.c deleted file mode 100644 index 960d1ebcd..000000000 --- a/src/mesh/generated/rtttl.pb.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "rtttl.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(RTTTLConfig, RTTTLConfig, AUTO) - - - diff --git a/src/mesh/generated/rtttl.pb.h b/src/mesh/generated/rtttl.pb.h deleted file mode 100644 index 7c4de8f73..000000000 --- a/src/mesh/generated/rtttl.pb.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_RTTTL_PB_H_INCLUDED -#define PB_RTTTL_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* Canned message module configuration. */ -typedef struct _RTTTLConfig { - /* Ringtone for PWM Buzzer in RTTTL Format. */ - char ringtone[230]; -} RTTTLConfig; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define RTTTLConfig_init_default {""} -#define RTTTLConfig_init_zero {""} - -/* Field tags (for use in manual encoding/decoding) */ -#define RTTTLConfig_ringtone_tag 1 - -/* Struct field encoding specification for nanopb */ -#define RTTTLConfig_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, STRING, ringtone, 1) -#define RTTTLConfig_CALLBACK NULL -#define RTTTLConfig_DEFAULT NULL - -extern const pb_msgdesc_t RTTTLConfig_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define RTTTLConfig_fields &RTTTLConfig_msg - -/* Maximum encoded size of messages (where known) */ -#define RTTTLConfig_size 232 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/storeforward.pb.c b/src/mesh/generated/storeforward.pb.c deleted file mode 100644 index 69db0e3bf..000000000 --- a/src/mesh/generated/storeforward.pb.c +++ /dev/null @@ -1,22 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "storeforward.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(StoreAndForward, StoreAndForward, AUTO) - - -PB_BIND(StoreAndForward_Statistics, StoreAndForward_Statistics, AUTO) - - -PB_BIND(StoreAndForward_History, StoreAndForward_History, AUTO) - - -PB_BIND(StoreAndForward_Heartbeat, StoreAndForward_Heartbeat, AUTO) - - - - diff --git a/src/mesh/generated/storeforward.pb.h b/src/mesh/generated/storeforward.pb.h deleted file mode 100644 index 0f0761949..000000000 --- a/src/mesh/generated/storeforward.pb.h +++ /dev/null @@ -1,213 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_STOREFORWARD_PB_H_INCLUDED -#define PB_STOREFORWARD_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* 001 - 063 = From Router - 064 - 127 = From Client */ -typedef enum _StoreAndForward_RequestResponse { - /* Unset/unused */ - StoreAndForward_RequestResponse_UNSET = 0, - /* Router is an in error state. */ - StoreAndForward_RequestResponse_ROUTER_ERROR = 1, - /* Router heartbeat */ - StoreAndForward_RequestResponse_ROUTER_HEARTBEAT = 2, - /* Router has requested the client respond. This can work as a - "are you there" message. */ - StoreAndForward_RequestResponse_ROUTER_PING = 3, - /* The response to a "Ping" */ - StoreAndForward_RequestResponse_ROUTER_PONG = 4, - /* Router is currently busy. Please try again later. */ - StoreAndForward_RequestResponse_ROUTER_BUSY = 5, - /* Router is responding to a request for history. */ - StoreAndForward_RequestResponse_ROUTER_HISTORY = 6, - /* Router is responding to a request for stats. */ - StoreAndForward_RequestResponse_ROUTER_STATS = 7, - /* Client is an in error state. */ - StoreAndForward_RequestResponse_CLIENT_ERROR = 64, - /* Client has requested a replay from the router. */ - StoreAndForward_RequestResponse_CLIENT_HISTORY = 65, - /* Client has requested stats from the router. */ - StoreAndForward_RequestResponse_CLIENT_STATS = 66, - /* Client has requested the router respond. This can work as a - "are you there" message. */ - StoreAndForward_RequestResponse_CLIENT_PING = 67, - /* The response to a "Ping" */ - StoreAndForward_RequestResponse_CLIENT_PONG = 68, - /* Client has requested that the router abort processing the client's request */ - StoreAndForward_RequestResponse_CLIENT_ABORT = 106 -} StoreAndForward_RequestResponse; - -/* Struct definitions */ -/* TODO: REPLACE */ -typedef struct _StoreAndForward_Statistics { - /* Number of messages we have ever seen */ - uint32_t messages_total; - /* Number of messages we have currently saved our history. */ - uint32_t messages_saved; - /* Maximum number of messages we will save */ - uint32_t messages_max; - /* Router uptime in seconds */ - uint32_t up_time; - /* Number of times any client sent a request to the S&F. */ - uint32_t requests; - /* Number of times the history was requested. */ - uint32_t requests_history; - /* Is the heartbeat enabled on the server? */ - bool heartbeat; - /* Is the heartbeat enabled on the server? */ - uint32_t return_max; - /* Is the heartbeat enabled on the server? */ - uint32_t return_window; -} StoreAndForward_Statistics; - -/* TODO: REPLACE */ -typedef struct _StoreAndForward_History { - /* Number of that will be sent to the client */ - uint32_t history_messages; - /* The window of messages that was used to filter the history client requested */ - uint32_t window; - /* The window of messages that was used to filter the history client requested */ - uint32_t last_request; -} StoreAndForward_History; - -/* TODO: REPLACE */ -typedef struct _StoreAndForward_Heartbeat { - /* Number of that will be sent to the client */ - uint32_t period; - /* If set, this is not the primary Store & Forward router on the mesh */ - uint32_t secondary; -} StoreAndForward_Heartbeat; - -/* TODO: REPLACE */ -typedef struct _StoreAndForward { - /* TODO: REPLACE */ - StoreAndForward_RequestResponse rr; - pb_size_t which_variant; - union { - /* TODO: REPLACE */ - StoreAndForward_Statistics stats; - /* TODO: REPLACE */ - StoreAndForward_History history; - /* TODO: REPLACE */ - StoreAndForward_Heartbeat heartbeat; - /* Empty Payload */ - bool empty; - } variant; -} StoreAndForward; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _StoreAndForward_RequestResponse_MIN StoreAndForward_RequestResponse_UNSET -#define _StoreAndForward_RequestResponse_MAX StoreAndForward_RequestResponse_CLIENT_ABORT -#define _StoreAndForward_RequestResponse_ARRAYSIZE ((StoreAndForward_RequestResponse)(StoreAndForward_RequestResponse_CLIENT_ABORT+1)) - -#define StoreAndForward_rr_ENUMTYPE StoreAndForward_RequestResponse - - - - - -/* Initializer values for message structs */ -#define StoreAndForward_init_default {_StoreAndForward_RequestResponse_MIN, 0, {StoreAndForward_Statistics_init_default}} -#define StoreAndForward_Statistics_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0} -#define StoreAndForward_History_init_default {0, 0, 0} -#define StoreAndForward_Heartbeat_init_default {0, 0} -#define StoreAndForward_init_zero {_StoreAndForward_RequestResponse_MIN, 0, {StoreAndForward_Statistics_init_zero}} -#define StoreAndForward_Statistics_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0} -#define StoreAndForward_History_init_zero {0, 0, 0} -#define StoreAndForward_Heartbeat_init_zero {0, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define StoreAndForward_Statistics_messages_total_tag 1 -#define StoreAndForward_Statistics_messages_saved_tag 2 -#define StoreAndForward_Statistics_messages_max_tag 3 -#define StoreAndForward_Statistics_up_time_tag 4 -#define StoreAndForward_Statistics_requests_tag 5 -#define StoreAndForward_Statistics_requests_history_tag 6 -#define StoreAndForward_Statistics_heartbeat_tag 7 -#define StoreAndForward_Statistics_return_max_tag 8 -#define StoreAndForward_Statistics_return_window_tag 9 -#define StoreAndForward_History_history_messages_tag 1 -#define StoreAndForward_History_window_tag 2 -#define StoreAndForward_History_last_request_tag 3 -#define StoreAndForward_Heartbeat_period_tag 1 -#define StoreAndForward_Heartbeat_secondary_tag 2 -#define StoreAndForward_rr_tag 1 -#define StoreAndForward_stats_tag 2 -#define StoreAndForward_history_tag 3 -#define StoreAndForward_heartbeat_tag 4 -#define StoreAndForward_empty_tag 5 - -/* Struct field encoding specification for nanopb */ -#define StoreAndForward_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, rr, 1) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,stats,variant.stats), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,history,variant.history), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,heartbeat,variant.heartbeat), 4) \ -X(a, STATIC, ONEOF, BOOL, (variant,empty,variant.empty), 5) -#define StoreAndForward_CALLBACK NULL -#define StoreAndForward_DEFAULT NULL -#define StoreAndForward_variant_stats_MSGTYPE StoreAndForward_Statistics -#define StoreAndForward_variant_history_MSGTYPE StoreAndForward_History -#define StoreAndForward_variant_heartbeat_MSGTYPE StoreAndForward_Heartbeat - -#define StoreAndForward_Statistics_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, messages_total, 1) \ -X(a, STATIC, SINGULAR, UINT32, messages_saved, 2) \ -X(a, STATIC, SINGULAR, UINT32, messages_max, 3) \ -X(a, STATIC, SINGULAR, UINT32, up_time, 4) \ -X(a, STATIC, SINGULAR, UINT32, requests, 5) \ -X(a, STATIC, SINGULAR, UINT32, requests_history, 6) \ -X(a, STATIC, SINGULAR, BOOL, heartbeat, 7) \ -X(a, STATIC, SINGULAR, UINT32, return_max, 8) \ -X(a, STATIC, SINGULAR, UINT32, return_window, 9) -#define StoreAndForward_Statistics_CALLBACK NULL -#define StoreAndForward_Statistics_DEFAULT NULL - -#define StoreAndForward_History_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, history_messages, 1) \ -X(a, STATIC, SINGULAR, UINT32, window, 2) \ -X(a, STATIC, SINGULAR, UINT32, last_request, 3) -#define StoreAndForward_History_CALLBACK NULL -#define StoreAndForward_History_DEFAULT NULL - -#define StoreAndForward_Heartbeat_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, period, 1) \ -X(a, STATIC, SINGULAR, UINT32, secondary, 2) -#define StoreAndForward_Heartbeat_CALLBACK NULL -#define StoreAndForward_Heartbeat_DEFAULT NULL - -extern const pb_msgdesc_t StoreAndForward_msg; -extern const pb_msgdesc_t StoreAndForward_Statistics_msg; -extern const pb_msgdesc_t StoreAndForward_History_msg; -extern const pb_msgdesc_t StoreAndForward_Heartbeat_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define StoreAndForward_fields &StoreAndForward_msg -#define StoreAndForward_Statistics_fields &StoreAndForward_Statistics_msg -#define StoreAndForward_History_fields &StoreAndForward_History_msg -#define StoreAndForward_Heartbeat_fields &StoreAndForward_Heartbeat_msg - -/* Maximum encoded size of messages (where known) */ -#define StoreAndForward_Heartbeat_size 12 -#define StoreAndForward_History_size 18 -#define StoreAndForward_Statistics_size 50 -#define StoreAndForward_size 54 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/telemetry.pb.c b/src/mesh/generated/telemetry.pb.c deleted file mode 100644 index 50202f4d6..000000000 --- a/src/mesh/generated/telemetry.pb.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "telemetry.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(DeviceMetrics, DeviceMetrics, AUTO) - - -PB_BIND(EnvironmentMetrics, EnvironmentMetrics, AUTO) - - -PB_BIND(Telemetry, Telemetry, AUTO) - - - - diff --git a/src/mesh/generated/telemetry.pb.h b/src/mesh/generated/telemetry.pb.h deleted file mode 100644 index e5c71a2b7..000000000 --- a/src/mesh/generated/telemetry.pb.h +++ /dev/null @@ -1,172 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_TELEMETRY_PB_H_INCLUDED -#define PB_TELEMETRY_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -/* TODO: REPLACE */ -typedef enum _TelemetrySensorType { - /* No external telemetry sensor explicitly set */ - TelemetrySensorType_SENSOR_UNSET = 0, - /* High accuracy temperature, pressure, humidity */ - TelemetrySensorType_BME280 = 1, - /* High accuracy temperature, pressure, humidity, and air resistance */ - TelemetrySensorType_BME680 = 2, - /* Very high accuracy temperature */ - TelemetrySensorType_MCP9808 = 3, - /* Moderate accuracy current and voltage */ - TelemetrySensorType_INA260 = 4, - /* Moderate accuracy current and voltage */ - TelemetrySensorType_INA219 = 5, - /* High accuracy temperature and pressure */ - TelemetrySensorType_BMP280 = 6, - /* High accuracy temperature and humidity */ - TelemetrySensorType_SHTC3 = 7, - /* High accuracy pressure */ - TelemetrySensorType_LPS22 = 8, - /* 3-Axis magnetic sensor */ - TelemetrySensorType_QMC6310 = 9, - /* 6-Axis inertial measurement sensor */ - TelemetrySensorType_QMI8658 = 10, - /* 3-Axis magnetic sensor */ - TelemetrySensorType_QMC5883L = 11, - /* High accuracy temperature and humidity */ - TelemetrySensorType_SHT31 = 12 -} TelemetrySensorType; - -/* Struct definitions */ -/* Key native device metrics such as battery level */ -typedef struct _DeviceMetrics { - /* 1-100 (0 means powered) */ - uint32_t battery_level; - /* Voltage measured */ - float voltage; - /* Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise). */ - float channel_utilization; - /* Percent of airtime for transmission used within the last hour. */ - float air_util_tx; -} DeviceMetrics; - -/* Weather station or other environmental metrics */ -typedef struct _EnvironmentMetrics { - /* Temperature measured */ - float temperature; - /* Relative humidity percent measured */ - float relative_humidity; - /* Barometric pressure in hPA measured */ - float barometric_pressure; - /* Gas resistance in mOhm measured */ - float gas_resistance; - /* Voltage measured */ - float voltage; - /* Current measured */ - float current; -} EnvironmentMetrics; - -/* Types of Measurements the telemetry module is equipped to handle */ -typedef struct _Telemetry { - /* This is usually not sent over the mesh (to save space), but it is sent - from the phone so that the local device can set its RTC If it is sent over - the mesh (because there are devices on the mesh without GPS), it will only - be sent by devices which has a hardware GPS clock (IE Mobile Phone). - seconds since 1970 */ - uint32_t time; - pb_size_t which_variant; - union { - /* Key native device metrics such as battery level */ - DeviceMetrics device_metrics; - /* Weather station or other environmental metrics */ - EnvironmentMetrics environment_metrics; - } variant; -} Telemetry; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _TelemetrySensorType_MIN TelemetrySensorType_SENSOR_UNSET -#define _TelemetrySensorType_MAX TelemetrySensorType_SHT31 -#define _TelemetrySensorType_ARRAYSIZE ((TelemetrySensorType)(TelemetrySensorType_SHT31+1)) - - - - - -/* Initializer values for message structs */ -#define DeviceMetrics_init_default {0, 0, 0, 0} -#define EnvironmentMetrics_init_default {0, 0, 0, 0, 0, 0} -#define Telemetry_init_default {0, 0, {DeviceMetrics_init_default}} -#define DeviceMetrics_init_zero {0, 0, 0, 0} -#define EnvironmentMetrics_init_zero {0, 0, 0, 0, 0, 0} -#define Telemetry_init_zero {0, 0, {DeviceMetrics_init_zero}} - -/* Field tags (for use in manual encoding/decoding) */ -#define DeviceMetrics_battery_level_tag 1 -#define DeviceMetrics_voltage_tag 2 -#define DeviceMetrics_channel_utilization_tag 3 -#define DeviceMetrics_air_util_tx_tag 4 -#define EnvironmentMetrics_temperature_tag 1 -#define EnvironmentMetrics_relative_humidity_tag 2 -#define EnvironmentMetrics_barometric_pressure_tag 3 -#define EnvironmentMetrics_gas_resistance_tag 4 -#define EnvironmentMetrics_voltage_tag 5 -#define EnvironmentMetrics_current_tag 6 -#define Telemetry_time_tag 1 -#define Telemetry_device_metrics_tag 2 -#define Telemetry_environment_metrics_tag 3 - -/* Struct field encoding specification for nanopb */ -#define DeviceMetrics_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, battery_level, 1) \ -X(a, STATIC, SINGULAR, FLOAT, voltage, 2) \ -X(a, STATIC, SINGULAR, FLOAT, channel_utilization, 3) \ -X(a, STATIC, SINGULAR, FLOAT, air_util_tx, 4) -#define DeviceMetrics_CALLBACK NULL -#define DeviceMetrics_DEFAULT NULL - -#define EnvironmentMetrics_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FLOAT, temperature, 1) \ -X(a, STATIC, SINGULAR, FLOAT, relative_humidity, 2) \ -X(a, STATIC, SINGULAR, FLOAT, barometric_pressure, 3) \ -X(a, STATIC, SINGULAR, FLOAT, gas_resistance, 4) \ -X(a, STATIC, SINGULAR, FLOAT, voltage, 5) \ -X(a, STATIC, SINGULAR, FLOAT, current, 6) -#define EnvironmentMetrics_CALLBACK NULL -#define EnvironmentMetrics_DEFAULT NULL - -#define Telemetry_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FIXED32, time, 1) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,device_metrics,variant.device_metrics), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (variant,environment_metrics,variant.environment_metrics), 3) -#define Telemetry_CALLBACK NULL -#define Telemetry_DEFAULT NULL -#define Telemetry_variant_device_metrics_MSGTYPE DeviceMetrics -#define Telemetry_variant_environment_metrics_MSGTYPE EnvironmentMetrics - -extern const pb_msgdesc_t DeviceMetrics_msg; -extern const pb_msgdesc_t EnvironmentMetrics_msg; -extern const pb_msgdesc_t Telemetry_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define DeviceMetrics_fields &DeviceMetrics_msg -#define EnvironmentMetrics_fields &EnvironmentMetrics_msg -#define Telemetry_fields &Telemetry_msg - -/* Maximum encoded size of messages (where known) */ -#define DeviceMetrics_size 21 -#define EnvironmentMetrics_size 30 -#define Telemetry_size 37 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/src/mesh/generated/xmodem.pb.c b/src/mesh/generated/xmodem.pb.c deleted file mode 100644 index f210380fe..000000000 --- a/src/mesh/generated/xmodem.pb.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.7 */ - -#include "xmodem.pb.h" -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(XModem, XModem, AUTO) - - - - diff --git a/src/mesh/generated/xmodem.pb.h b/src/mesh/generated/xmodem.pb.h deleted file mode 100644 index 453c8ce7c..000000000 --- a/src/mesh/generated/xmodem.pb.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.7 */ - -#ifndef PB_XMODEM_PB_H_INCLUDED -#define PB_XMODEM_PB_H_INCLUDED -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -typedef enum _XModem_Control { - XModem_Control_NUL = 0, - XModem_Control_SOH = 1, - XModem_Control_STX = 2, - XModem_Control_EOT = 4, - XModem_Control_ACK = 6, - XModem_Control_NAK = 21, - XModem_Control_CAN = 24, - XModem_Control_CTRLZ = 26 -} XModem_Control; - -/* Struct definitions */ -typedef PB_BYTES_ARRAY_T(128) XModem_buffer_t; -typedef struct _XModem { - XModem_Control control; - uint16_t seq; - uint16_t crc16; - XModem_buffer_t buffer; -} XModem; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Helper constants for enums */ -#define _XModem_Control_MIN XModem_Control_NUL -#define _XModem_Control_MAX XModem_Control_CTRLZ -#define _XModem_Control_ARRAYSIZE ((XModem_Control)(XModem_Control_CTRLZ+1)) - -#define XModem_control_ENUMTYPE XModem_Control - - -/* Initializer values for message structs */ -#define XModem_init_default {_XModem_Control_MIN, 0, 0, {0, {0}}} -#define XModem_init_zero {_XModem_Control_MIN, 0, 0, {0, {0}}} - -/* Field tags (for use in manual encoding/decoding) */ -#define XModem_control_tag 1 -#define XModem_seq_tag 2 -#define XModem_crc16_tag 3 -#define XModem_buffer_tag 4 - -/* Struct field encoding specification for nanopb */ -#define XModem_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, control, 1) \ -X(a, STATIC, SINGULAR, UINT32, seq, 2) \ -X(a, STATIC, SINGULAR, UINT32, crc16, 3) \ -X(a, STATIC, SINGULAR, BYTES, buffer, 4) -#define XModem_CALLBACK NULL -#define XModem_DEFAULT NULL - -extern const pb_msgdesc_t XModem_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define XModem_fields &XModem_msg - -/* Maximum encoded size of messages (where known) */ -#define XModem_size 141 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif