diff --git a/protobufs b/protobufs index 03314e639..f680aace2 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 03314e63950bda910695eaeb4ba8169dae0425ef +Subproject commit f680aace29ebd3234291db3d260c72eba39c5a26 diff --git a/src/mesh/generated/meshtastic/deviceonly.pb.h b/src/mesh/generated/meshtastic/deviceonly.pb.h index 5bd116730..c838dc21d 100644 --- a/src/mesh/generated/meshtastic/deviceonly.pb.h +++ b/src/mesh/generated/meshtastic/deviceonly.pb.h @@ -452,7 +452,7 @@ extern const pb_msgdesc_t meshtastic_BackupPreferences_msg; /* Maximum encoded size of messages (where known) */ /* meshtastic_NodeDatabase_size depends on runtime parameters */ #define MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_MAX_SIZE meshtastic_BackupPreferences_size -#define meshtastic_BackupPreferences_size 2410 +#define meshtastic_BackupPreferences_size 2738 #define meshtastic_ChannelFile_size 718 #define meshtastic_DeviceState_size 1944 #define meshtastic_NodeEnvironmentEntry_size 170 diff --git a/src/mesh/generated/meshtastic/localonly.pb.h b/src/mesh/generated/meshtastic/localonly.pb.h index 3cb4a5a57..6fcaed306 100644 --- a/src/mesh/generated/meshtastic/localonly.pb.h +++ b/src/mesh/generated/meshtastic/localonly.pb.h @@ -96,6 +96,9 @@ typedef struct _meshtastic_LocalModuleConfig { /* TAK Config */ bool has_tak; meshtastic_ModuleConfig_TAKConfig tak; + /* MeshBeacon Config */ + bool has_mesh_beacon; + meshtastic_ModuleConfig_MeshBeaconConfig mesh_beacon; } meshtastic_LocalModuleConfig; @@ -105,9 +108,9 @@ extern "C" { /* Initializer values for message structs */ #define meshtastic_LocalConfig_init_default {false, meshtastic_Config_DeviceConfig_init_default, false, meshtastic_Config_PositionConfig_init_default, false, meshtastic_Config_PowerConfig_init_default, false, meshtastic_Config_NetworkConfig_init_default, false, meshtastic_Config_DisplayConfig_init_default, false, meshtastic_Config_LoRaConfig_init_default, false, meshtastic_Config_BluetoothConfig_init_default, 0, false, meshtastic_Config_SecurityConfig_init_default} -#define meshtastic_LocalModuleConfig_init_default {false, meshtastic_ModuleConfig_MQTTConfig_init_default, false, meshtastic_ModuleConfig_SerialConfig_init_default, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_default, false, meshtastic_ModuleConfig_StoreForwardConfig_init_default, false, meshtastic_ModuleConfig_RangeTestConfig_init_default, false, meshtastic_ModuleConfig_TelemetryConfig_init_default, false, meshtastic_ModuleConfig_CannedMessageConfig_init_default, 0, false, meshtastic_ModuleConfig_AudioConfig_init_default, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_default, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_default, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_default, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_default, false, meshtastic_ModuleConfig_PaxcounterConfig_init_default, false, meshtastic_ModuleConfig_StatusMessageConfig_init_default, false, meshtastic_ModuleConfig_TrafficManagementConfig_init_default, false, meshtastic_ModuleConfig_TAKConfig_init_default} +#define meshtastic_LocalModuleConfig_init_default {false, meshtastic_ModuleConfig_MQTTConfig_init_default, false, meshtastic_ModuleConfig_SerialConfig_init_default, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_default, false, meshtastic_ModuleConfig_StoreForwardConfig_init_default, false, meshtastic_ModuleConfig_RangeTestConfig_init_default, false, meshtastic_ModuleConfig_TelemetryConfig_init_default, false, meshtastic_ModuleConfig_CannedMessageConfig_init_default, 0, false, meshtastic_ModuleConfig_AudioConfig_init_default, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_default, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_default, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_default, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_default, false, meshtastic_ModuleConfig_PaxcounterConfig_init_default, false, meshtastic_ModuleConfig_StatusMessageConfig_init_default, false, meshtastic_ModuleConfig_TrafficManagementConfig_init_default, false, meshtastic_ModuleConfig_TAKConfig_init_default, false, meshtastic_ModuleConfig_MeshBeaconConfig_init_default} #define meshtastic_LocalConfig_init_zero {false, meshtastic_Config_DeviceConfig_init_zero, false, meshtastic_Config_PositionConfig_init_zero, false, meshtastic_Config_PowerConfig_init_zero, false, meshtastic_Config_NetworkConfig_init_zero, false, meshtastic_Config_DisplayConfig_init_zero, false, meshtastic_Config_LoRaConfig_init_zero, false, meshtastic_Config_BluetoothConfig_init_zero, 0, false, meshtastic_Config_SecurityConfig_init_zero} -#define meshtastic_LocalModuleConfig_init_zero {false, meshtastic_ModuleConfig_MQTTConfig_init_zero, false, meshtastic_ModuleConfig_SerialConfig_init_zero, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_zero, false, meshtastic_ModuleConfig_StoreForwardConfig_init_zero, false, meshtastic_ModuleConfig_RangeTestConfig_init_zero, false, meshtastic_ModuleConfig_TelemetryConfig_init_zero, false, meshtastic_ModuleConfig_CannedMessageConfig_init_zero, 0, false, meshtastic_ModuleConfig_AudioConfig_init_zero, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_zero, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_zero, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_zero, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_zero, false, meshtastic_ModuleConfig_PaxcounterConfig_init_zero, false, meshtastic_ModuleConfig_StatusMessageConfig_init_zero, false, meshtastic_ModuleConfig_TrafficManagementConfig_init_zero, false, meshtastic_ModuleConfig_TAKConfig_init_zero} +#define meshtastic_LocalModuleConfig_init_zero {false, meshtastic_ModuleConfig_MQTTConfig_init_zero, false, meshtastic_ModuleConfig_SerialConfig_init_zero, false, meshtastic_ModuleConfig_ExternalNotificationConfig_init_zero, false, meshtastic_ModuleConfig_StoreForwardConfig_init_zero, false, meshtastic_ModuleConfig_RangeTestConfig_init_zero, false, meshtastic_ModuleConfig_TelemetryConfig_init_zero, false, meshtastic_ModuleConfig_CannedMessageConfig_init_zero, 0, false, meshtastic_ModuleConfig_AudioConfig_init_zero, false, meshtastic_ModuleConfig_RemoteHardwareConfig_init_zero, false, meshtastic_ModuleConfig_NeighborInfoConfig_init_zero, false, meshtastic_ModuleConfig_AmbientLightingConfig_init_zero, false, meshtastic_ModuleConfig_DetectionSensorConfig_init_zero, false, meshtastic_ModuleConfig_PaxcounterConfig_init_zero, false, meshtastic_ModuleConfig_StatusMessageConfig_init_zero, false, meshtastic_ModuleConfig_TrafficManagementConfig_init_zero, false, meshtastic_ModuleConfig_TAKConfig_init_zero, false, meshtastic_ModuleConfig_MeshBeaconConfig_init_zero} /* Field tags (for use in manual encoding/decoding) */ #define meshtastic_LocalConfig_device_tag 1 @@ -136,6 +139,7 @@ extern "C" { #define meshtastic_LocalModuleConfig_statusmessage_tag 15 #define meshtastic_LocalModuleConfig_traffic_management_tag 16 #define meshtastic_LocalModuleConfig_tak_tag 17 +#define meshtastic_LocalModuleConfig_mesh_beacon_tag 18 /* Struct field encoding specification for nanopb */ #define meshtastic_LocalConfig_FIELDLIST(X, a) \ @@ -176,7 +180,8 @@ X(a, STATIC, OPTIONAL, MESSAGE, detection_sensor, 13) \ X(a, STATIC, OPTIONAL, MESSAGE, paxcounter, 14) \ X(a, STATIC, OPTIONAL, MESSAGE, statusmessage, 15) \ X(a, STATIC, OPTIONAL, MESSAGE, traffic_management, 16) \ -X(a, STATIC, OPTIONAL, MESSAGE, tak, 17) +X(a, STATIC, OPTIONAL, MESSAGE, tak, 17) \ +X(a, STATIC, OPTIONAL, MESSAGE, mesh_beacon, 18) #define meshtastic_LocalModuleConfig_CALLBACK NULL #define meshtastic_LocalModuleConfig_DEFAULT NULL #define meshtastic_LocalModuleConfig_mqtt_MSGTYPE meshtastic_ModuleConfig_MQTTConfig @@ -195,6 +200,7 @@ X(a, STATIC, OPTIONAL, MESSAGE, tak, 17) #define meshtastic_LocalModuleConfig_statusmessage_MSGTYPE meshtastic_ModuleConfig_StatusMessageConfig #define meshtastic_LocalModuleConfig_traffic_management_MSGTYPE meshtastic_ModuleConfig_TrafficManagementConfig #define meshtastic_LocalModuleConfig_tak_MSGTYPE meshtastic_ModuleConfig_TAKConfig +#define meshtastic_LocalModuleConfig_mesh_beacon_MSGTYPE meshtastic_ModuleConfig_MeshBeaconConfig extern const pb_msgdesc_t meshtastic_LocalConfig_msg; extern const pb_msgdesc_t meshtastic_LocalModuleConfig_msg; @@ -206,7 +212,7 @@ extern const pb_msgdesc_t meshtastic_LocalModuleConfig_msg; /* Maximum encoded size of messages (where known) */ #define MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_MAX_SIZE meshtastic_LocalModuleConfig_size #define meshtastic_LocalConfig_size 757 -#define meshtastic_LocalModuleConfig_size 798 +#define meshtastic_LocalModuleConfig_size 1126 #ifdef __cplusplus } /* extern "C" */ diff --git a/src/mesh/generated/meshtastic/mesh.pb.cpp b/src/mesh/generated/meshtastic/mesh.pb.cpp index ac991c580..4cf8e980c 100644 --- a/src/mesh/generated/meshtastic/mesh.pb.cpp +++ b/src/mesh/generated/meshtastic/mesh.pb.cpp @@ -30,6 +30,9 @@ PB_BIND(meshtastic_StoreForwardPlusPlus, meshtastic_StoreForwardPlusPlus, 2) PB_BIND(meshtastic_RemoteShell, meshtastic_RemoteShell, AUTO) +PB_BIND(meshtastic_BoundingBox, meshtastic_BoundingBox, AUTO) + + PB_BIND(meshtastic_Waypoint, meshtastic_Waypoint, AUTO) diff --git a/src/mesh/generated/meshtastic/mesh.pb.h b/src/mesh/generated/meshtastic/mesh.pb.h index ce92d81f1..78107f116 100644 --- a/src/mesh/generated/meshtastic/mesh.pb.h +++ b/src/mesh/generated/meshtastic/mesh.pb.h @@ -78,10 +78,10 @@ typedef enum _meshtastic_HardwareModel { meshtastic_HardwareModel_STATION_G1 = 25, /* RAK11310 (RP2040 + SX1262) */ meshtastic_HardwareModel_RAK11310 = 26, - /* Makerfabs SenseLoRA Receiver (RP2040 + RFM96) */ - meshtastic_HardwareModel_SENSELORA_RP2040 = 27, - /* Makerfabs SenseLoRA Industrial Monitor (ESP32-S3 + RFM96) */ - meshtastic_HardwareModel_SENSELORA_S3 = 28, + /* Makerfabs Tracker Reserved */ + meshtastic_HardwareModel_MAKERFABS_TRACKER = 27, + /* Makerfabs Reserved */ + meshtastic_HardwareModel_MAKERFABS_RESERVED = 28, /* Canary Radio Company - CanaryOne: https://canaryradio.io/products/canaryone */ meshtastic_HardwareModel_CANARYONE = 29, /* Waveshare RP2040 LoRa - https://www.waveshare.com/rp2040-lora.htm */ @@ -948,6 +948,23 @@ typedef struct _meshtastic_RemoteShell { uint32_t last_rx_seq; } meshtastic_RemoteShell; +/* A rectangular, axis-aligned geographic bounding box. + Used to define a rectangular geofence region for a Waypoint. + Fields are ordered west, south, east, north to match the standard bounding box + convention used by GeoJSON and PMTiles (min longitude, min latitude, max longitude, max latitude), + so the box can drive an offline map extract directly. + All coordinates are in degrees scaled by 1e-7 (same convention as Position and Waypoint). */ +typedef struct _meshtastic_BoundingBox { + /* Western edge of the box - minimum longitude (south-west corner) */ + int32_t longitude_west_i; + /* Southern edge of the box - minimum latitude (south-west corner) */ + int32_t latitude_south_i; + /* Eastern edge of the box - maximum longitude (north-east corner) */ + int32_t longitude_east_i; + /* Northern edge of the box - maximum latitude (north-east corner) */ + int32_t latitude_north_i; +} meshtastic_BoundingBox; + /* Waypoint message, used to share arbitrary locations across the mesh */ typedef struct _meshtastic_Waypoint { /* Id of the waypoint */ @@ -969,6 +986,20 @@ typedef struct _meshtastic_Waypoint { char description[100]; /* Designator icon for the waypoint in the form of a unicode emoji */ uint32_t icon; + /* If greater than zero, defines a circular geofence centred on this waypoint's + location (latitude_i / longitude_i) with this radius in meters. + Zero means the waypoint has no circular geofence. */ + uint32_t geofence_radius; + /* Optional rectangular geofence region for this waypoint. + May be used instead of, or in addition to, geofence_radius. */ + bool has_bounding_box; + meshtastic_BoundingBox bounding_box; + /* If true, a notification should be raised when a tracked node enters this + waypoint's geofence (the circular radius and/or the bounding box). */ + bool notify_on_enter; + /* If true, a notification should be raised when a tracked node exits this + waypoint's geofence (the circular radius and/or the bounding box). */ + bool notify_on_exit; } meshtastic_Waypoint; /* Message for node status */ @@ -1628,6 +1659,7 @@ extern "C" { + #define meshtastic_MeshPacket_priority_ENUMTYPE meshtastic_MeshPacket_Priority #define meshtastic_MeshPacket_delayed_ENUMTYPE meshtastic_MeshPacket_Delayed #define meshtastic_MeshPacket_transport_mechanism_ENUMTYPE meshtastic_MeshPacket_TransportMechanism @@ -1678,7 +1710,8 @@ extern "C" { #define meshtastic_KeyVerification_init_default {0, {0, {0}}, {0, {0}}} #define meshtastic_StoreForwardPlusPlus_init_default {_meshtastic_StoreForwardPlusPlus_SFPP_message_type_MIN, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}}, 0, 0, 0, 0, 0} #define meshtastic_RemoteShell_init_default {_meshtastic_RemoteShell_OpCode_MIN, 0, 0, 0, {0, {0}}, 0, 0, 0, 0, 0} -#define meshtastic_Waypoint_init_default {0, false, 0, false, 0, 0, 0, "", "", 0} +#define meshtastic_BoundingBox_init_default {0, 0, 0, 0} +#define meshtastic_Waypoint_init_default {0, false, 0, false, 0, 0, 0, "", "", 0, 0, false, meshtastic_BoundingBox_init_default, 0, 0} #define meshtastic_StatusMessage_init_default {""} #define meshtastic_MqttClientProxyMessage_init_default {"", 0, {{0, {0}}}, 0} #define meshtastic_MeshPacket_init_default {0, 0, 0, 0, {meshtastic_Data_init_default}, 0, 0, 0, 0, 0, _meshtastic_MeshPacket_Priority_MIN, 0, _meshtastic_MeshPacket_Delayed_MIN, 0, 0, {0, {0}}, 0, 0, 0, 0, _meshtastic_MeshPacket_TransportMechanism_MIN, 0} @@ -1716,7 +1749,8 @@ extern "C" { #define meshtastic_KeyVerification_init_zero {0, {0, {0}}, {0, {0}}} #define meshtastic_StoreForwardPlusPlus_init_zero {_meshtastic_StoreForwardPlusPlus_SFPP_message_type_MIN, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}}, 0, 0, 0, 0, 0} #define meshtastic_RemoteShell_init_zero {_meshtastic_RemoteShell_OpCode_MIN, 0, 0, 0, {0, {0}}, 0, 0, 0, 0, 0} -#define meshtastic_Waypoint_init_zero {0, false, 0, false, 0, 0, 0, "", "", 0} +#define meshtastic_BoundingBox_init_zero {0, 0, 0, 0} +#define meshtastic_Waypoint_init_zero {0, false, 0, false, 0, 0, 0, "", "", 0, 0, false, meshtastic_BoundingBox_init_zero, 0, 0} #define meshtastic_StatusMessage_init_zero {""} #define meshtastic_MqttClientProxyMessage_init_zero {"", 0, {{0, {0}}}, 0} #define meshtastic_MeshPacket_init_zero {0, 0, 0, 0, {meshtastic_Data_init_zero}, 0, 0, 0, 0, 0, _meshtastic_MeshPacket_Priority_MIN, 0, _meshtastic_MeshPacket_Delayed_MIN, 0, 0, {0, {0}}, 0, 0, 0, 0, _meshtastic_MeshPacket_TransportMechanism_MIN, 0} @@ -1820,6 +1854,10 @@ extern "C" { #define meshtastic_RemoteShell_flags_tag 8 #define meshtastic_RemoteShell_last_tx_seq_tag 9 #define meshtastic_RemoteShell_last_rx_seq_tag 10 +#define meshtastic_BoundingBox_longitude_west_i_tag 1 +#define meshtastic_BoundingBox_latitude_south_i_tag 2 +#define meshtastic_BoundingBox_longitude_east_i_tag 3 +#define meshtastic_BoundingBox_latitude_north_i_tag 4 #define meshtastic_Waypoint_id_tag 1 #define meshtastic_Waypoint_latitude_i_tag 2 #define meshtastic_Waypoint_longitude_i_tag 3 @@ -1828,6 +1866,10 @@ extern "C" { #define meshtastic_Waypoint_name_tag 6 #define meshtastic_Waypoint_description_tag 7 #define meshtastic_Waypoint_icon_tag 8 +#define meshtastic_Waypoint_geofence_radius_tag 9 +#define meshtastic_Waypoint_bounding_box_tag 10 +#define meshtastic_Waypoint_notify_on_enter_tag 11 +#define meshtastic_Waypoint_notify_on_exit_tag 12 #define meshtastic_StatusMessage_status_tag 1 #define meshtastic_MqttClientProxyMessage_topic_tag 1 #define meshtastic_MqttClientProxyMessage_data_tag 2 @@ -2083,6 +2125,14 @@ X(a, STATIC, SINGULAR, UINT32, last_rx_seq, 10) #define meshtastic_RemoteShell_CALLBACK NULL #define meshtastic_RemoteShell_DEFAULT NULL +#define meshtastic_BoundingBox_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, SFIXED32, longitude_west_i, 1) \ +X(a, STATIC, SINGULAR, SFIXED32, latitude_south_i, 2) \ +X(a, STATIC, SINGULAR, SFIXED32, longitude_east_i, 3) \ +X(a, STATIC, SINGULAR, SFIXED32, latitude_north_i, 4) +#define meshtastic_BoundingBox_CALLBACK NULL +#define meshtastic_BoundingBox_DEFAULT NULL + #define meshtastic_Waypoint_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, id, 1) \ X(a, STATIC, OPTIONAL, SFIXED32, latitude_i, 2) \ @@ -2091,9 +2141,14 @@ 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) +X(a, STATIC, SINGULAR, FIXED32, icon, 8) \ +X(a, STATIC, SINGULAR, UINT32, geofence_radius, 9) \ +X(a, STATIC, OPTIONAL, MESSAGE, bounding_box, 10) \ +X(a, STATIC, SINGULAR, BOOL, notify_on_enter, 11) \ +X(a, STATIC, SINGULAR, BOOL, notify_on_exit, 12) #define meshtastic_Waypoint_CALLBACK NULL #define meshtastic_Waypoint_DEFAULT NULL +#define meshtastic_Waypoint_bounding_box_MSGTYPE meshtastic_BoundingBox #define meshtastic_StatusMessage_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, status, 1) @@ -2402,6 +2457,7 @@ extern const pb_msgdesc_t meshtastic_Data_msg; extern const pb_msgdesc_t meshtastic_KeyVerification_msg; extern const pb_msgdesc_t meshtastic_StoreForwardPlusPlus_msg; extern const pb_msgdesc_t meshtastic_RemoteShell_msg; +extern const pb_msgdesc_t meshtastic_BoundingBox_msg; extern const pb_msgdesc_t meshtastic_Waypoint_msg; extern const pb_msgdesc_t meshtastic_StatusMessage_msg; extern const pb_msgdesc_t meshtastic_MqttClientProxyMessage_msg; @@ -2442,6 +2498,7 @@ extern const pb_msgdesc_t meshtastic_ChunkedPayloadResponse_msg; #define meshtastic_KeyVerification_fields &meshtastic_KeyVerification_msg #define meshtastic_StoreForwardPlusPlus_fields &meshtastic_StoreForwardPlusPlus_msg #define meshtastic_RemoteShell_fields &meshtastic_RemoteShell_msg +#define meshtastic_BoundingBox_fields &meshtastic_BoundingBox_msg #define meshtastic_Waypoint_fields &meshtastic_Waypoint_msg #define meshtastic_StatusMessage_fields &meshtastic_StatusMessage_msg #define meshtastic_MqttClientProxyMessage_fields &meshtastic_MqttClientProxyMessage_msg @@ -2477,6 +2534,7 @@ extern const pb_msgdesc_t meshtastic_ChunkedPayloadResponse_msg; /* meshtastic_resend_chunks_size depends on runtime parameters */ /* meshtastic_ChunkedPayloadResponse_size depends on runtime parameters */ #define MESHTASTIC_MESHTASTIC_MESH_PB_H_MAX_SIZE meshtastic_FromRadio_size +#define meshtastic_BoundingBox_size 20 #define meshtastic_ChunkedPayload_size 245 #define meshtastic_ClientNotification_size 482 #define meshtastic_Compressed_size 239 @@ -2512,7 +2570,7 @@ extern const pb_msgdesc_t meshtastic_ChunkedPayloadResponse_msg; #define meshtastic_StoreForwardPlusPlus_size 377 #define meshtastic_ToRadio_size 504 #define meshtastic_User_size 115 -#define meshtastic_Waypoint_size 165 +#define meshtastic_Waypoint_size 197 #ifdef __cplusplus } /* extern "C" */ diff --git a/src/mesh/generated/meshtastic/mesh_beacon.pb.cpp b/src/mesh/generated/meshtastic/mesh_beacon.pb.cpp new file mode 100644 index 000000000..6a079b7a7 --- /dev/null +++ b/src/mesh/generated/meshtastic/mesh_beacon.pb.cpp @@ -0,0 +1,12 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-0.4.9.1 */ + +#include "meshtastic/mesh_beacon.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(meshtastic_MeshBeacon, meshtastic_MeshBeacon, AUTO) + + + diff --git a/src/mesh/generated/meshtastic/mesh_beacon.pb.h b/src/mesh/generated/meshtastic/mesh_beacon.pb.h new file mode 100644 index 000000000..028d8269f --- /dev/null +++ b/src/mesh/generated/meshtastic/mesh_beacon.pb.h @@ -0,0 +1,72 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-0.4.9.1 */ + +#ifndef PB_MESHTASTIC_MESHTASTIC_MESH_BEACON_PB_H_INCLUDED +#define PB_MESHTASTIC_MESHTASTIC_MESH_BEACON_PB_H_INCLUDED +#include +#include "meshtastic/channel.pb.h" +#include "meshtastic/config.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Payload for MESH_BEACON_APP packets. + Periodically broadcast by nodes in beacon mode. + Listeners deliver the text message to the local inbox and cache any offered + channel/preset for the client app to act on — the firmware never auto-applies them. */ +typedef struct _meshtastic_MeshBeacon { + /* Human-readable beacon message. Max 100 bytes enforced by firmware on send. */ + char message[101]; + /* Optional channel (name + PSK) being advertised to listening clients. + A client app may offer to switch the user to this channel; firmware never applies it automatically. */ + bool has_offer_channel; + meshtastic_ChannelSettings offer_channel; + /* Optional region being advertised alongside offer_preset. */ + meshtastic_Config_LoRaConfig_RegionCode offer_region; + /* Optional modem preset being advertised. + Combined with offer_region, tells a client "there is a mesh on this preset/region". */ + bool has_offer_preset; + meshtastic_Config_LoRaConfig_ModemPreset offer_preset; +} meshtastic_MeshBeacon; + + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define meshtastic_MeshBeacon_init_default {"", false, meshtastic_ChannelSettings_init_default, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN} +#define meshtastic_MeshBeacon_init_zero {"", false, meshtastic_ChannelSettings_init_zero, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN} + +/* Field tags (for use in manual encoding/decoding) */ +#define meshtastic_MeshBeacon_message_tag 1 +#define meshtastic_MeshBeacon_offer_channel_tag 2 +#define meshtastic_MeshBeacon_offer_region_tag 3 +#define meshtastic_MeshBeacon_offer_preset_tag 4 + +/* Struct field encoding specification for nanopb */ +#define meshtastic_MeshBeacon_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, STRING, message, 1) \ +X(a, STATIC, OPTIONAL, MESSAGE, offer_channel, 2) \ +X(a, STATIC, SINGULAR, UENUM, offer_region, 3) \ +X(a, STATIC, OPTIONAL, UENUM, offer_preset, 4) +#define meshtastic_MeshBeacon_CALLBACK NULL +#define meshtastic_MeshBeacon_DEFAULT NULL +#define meshtastic_MeshBeacon_offer_channel_MSGTYPE meshtastic_ChannelSettings + +extern const pb_msgdesc_t meshtastic_MeshBeacon_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define meshtastic_MeshBeacon_fields &meshtastic_MeshBeacon_msg + +/* Maximum encoded size of messages (where known) */ +#define MESHTASTIC_MESHTASTIC_MESH_BEACON_PB_H_MAX_SIZE meshtastic_MeshBeacon_size +#define meshtastic_MeshBeacon_size 180 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/src/mesh/generated/meshtastic/module_config.pb.cpp b/src/mesh/generated/meshtastic/module_config.pb.cpp index f2fe5d967..472d0b1e5 100644 --- a/src/mesh/generated/meshtastic/module_config.pb.cpp +++ b/src/mesh/generated/meshtastic/module_config.pb.cpp @@ -6,7 +6,7 @@ #error Regenerate this file with the current version of nanopb generator. #endif -PB_BIND(meshtastic_ModuleConfig, meshtastic_ModuleConfig, AUTO) +PB_BIND(meshtastic_ModuleConfig, meshtastic_ModuleConfig, 2) PB_BIND(meshtastic_ModuleConfig_MQTTConfig, meshtastic_ModuleConfig_MQTTConfig, AUTO) @@ -57,6 +57,12 @@ PB_BIND(meshtastic_ModuleConfig_AmbientLightingConfig, meshtastic_ModuleConfig_A PB_BIND(meshtastic_ModuleConfig_StatusMessageConfig, meshtastic_ModuleConfig_StatusMessageConfig, AUTO) +PB_BIND(meshtastic_ModuleConfig_MeshBeaconConfig, meshtastic_ModuleConfig_MeshBeaconConfig, 2) + + +PB_BIND(meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget, AUTO) + + PB_BIND(meshtastic_ModuleConfig_TAKConfig, meshtastic_ModuleConfig_TAKConfig, AUTO) @@ -76,3 +82,5 @@ PB_BIND(meshtastic_RemoteHardwarePin, meshtastic_RemoteHardwarePin, AUTO) + + diff --git a/src/mesh/generated/meshtastic/module_config.pb.h b/src/mesh/generated/meshtastic/module_config.pb.h index c7edfa0aa..b04c358fc 100644 --- a/src/mesh/generated/meshtastic/module_config.pb.h +++ b/src/mesh/generated/meshtastic/module_config.pb.h @@ -5,6 +5,8 @@ #define PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED #include #include "meshtastic/atak.pb.h" +#include "meshtastic/channel.pb.h" +#include "meshtastic/config.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. @@ -112,6 +114,23 @@ typedef enum _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar { meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_CANCEL = 24 } meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar; +/* Boolean options for the beacon module, packed into the `flags` bitfield below. + OR the FLAG_* values together; a flag is on when its bit is set. */ +typedef enum _meshtastic_ModuleConfig_MeshBeaconConfig_Flags { + /* No options enabled. */ + meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_NONE = 0, + /* Enable receiving MESH_BEACON_APP packets from other nodes. + The text portion is delivered to the local message inbox. + Offered channel/preset are stored for the client app to act on. */ + meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_LISTEN_ENABLED = 1, + /* Enable periodically broadcasting MESH_BEACON_APP packets from this node. */ + meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_BROADCAST_ENABLED = 2, + /* When both text and offer content are present, split the beacon into a separate + MESH_BEACON_APP (offer only) and TEXT_MESSAGE_APP (text only) packet, so firmware + that only decodes TEXT_MESSAGE_APP still receives the human-readable text. */ + meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_LEGACY_SPLIT = 4 +} meshtastic_ModuleConfig_MeshBeaconConfig_Flags; + /* Struct definitions */ /* Settings for reporting unencrypted information about our node to a map via MQTT */ typedef struct _meshtastic_ModuleConfig_MapReportSettings { @@ -438,6 +457,71 @@ typedef struct _meshtastic_ModuleConfig_StatusMessageConfig { char node_status[80]; } meshtastic_ModuleConfig_StatusMessageConfig; +/* One entry in the multi-target broadcast list. + The broadcaster transmits one beacon copy per entry, each on its own radio settings. */ +typedef struct _meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget { + /* Modem preset to use for this target. + Falls back to the running config preset if unset. */ + bool has_preset; + meshtastic_Config_LoRaConfig_ModemPreset preset; + /* Region to use for this target. UNSET means use the running config region. */ + meshtastic_Config_LoRaConfig_RegionCode region; + /* Index into the device's channel table (0..MAX_NUM_CHANNELS-1) of the channel to + transmit this target's beacon on. The referenced channel must already be configured + on the node (its key is needed to encrypt). If unset, the default channel for the + preset is used. */ + bool has_channel_index; + uint32_t channel_index; +} meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget; + +/* MeshBeacon module config */ +typedef struct _meshtastic_ModuleConfig_MeshBeaconConfig { + /* Bitwise-OR of Flags values (listen / broadcast / legacy-split toggles). */ + uint32_t flags; + /* Optional: node ID to send beacon messages AS. + When set, the `from` field of outgoing beacon packets is set to this node ID, + making beacons appear to originate from that node. + When unset (0), beacons are sent as the local node. + A remote admin can only set this field to their own node ID. */ + uint32_t broadcast_send_as_node; + /* Message to include in each beacon broadcast. Max 100 bytes enforced by firmware. */ + char broadcast_message[101]; + /* Optional channel (name + PSK) to advertise in the MeshBeacon offer_channel field. */ + bool has_broadcast_offer_channel; + meshtastic_ChannelSettings broadcast_offer_channel; + /* Optional region to advertise in the MeshBeacon offer_region field. */ + meshtastic_Config_LoRaConfig_RegionCode broadcast_offer_region; + /* Optional modem preset to advertise in the MeshBeacon offer_preset field. */ + bool has_broadcast_offer_preset; + meshtastic_Config_LoRaConfig_ModemPreset broadcast_offer_preset; + /* Single-target TX channel: channel settings (name + PSK) to send beacons on. + If unset, beacons go out on the primary channel. Used only when broadcast_targets is empty. + NOTE: the single-target path embeds the ChannelSettings inline here, whereas a + broadcast_targets entry references a channel-table slot by channel_index instead — see + BroadcastTarget. The two paths are equal, first-class options; only this representation differs. */ + bool has_broadcast_on_channel; + meshtastic_ChannelSettings broadcast_on_channel; + /* Region to use when sending beacons on broadcast_on_preset. */ + meshtastic_Config_LoRaConfig_RegionCode broadcast_on_region; + /* Modem preset to use when sending beacons. + If different from current config, the radio is temporarily switched for TX. */ + bool has_broadcast_on_preset; + meshtastic_Config_LoRaConfig_ModemPreset broadcast_on_preset; + /* How often to broadcast, in seconds. Min 3600 (1 h), default 3600. */ + uint32_t broadcast_interval_secs; + /* Multi-target broadcast list. + When non-empty the broadcaster transmits one beacon copy per entry in sequence, + each temporarily switching the radio to that entry's preset/region/channel. + When empty, the broadcaster uses the scalar broadcast_on_preset / broadcast_on_region / + broadcast_on_channel fields instead (the single-target path). + Single- and multi-target are equal, first-class options — neither is preferred or + deprecated. They differ only in how the TX channel is named: broadcast_on_channel embeds a + ChannelSettings inline, while a target references an existing channel-table slot by + channel_index (see BroadcastTarget). */ + pb_size_t broadcast_targets_count; + meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget broadcast_targets[4]; +} meshtastic_ModuleConfig_MeshBeaconConfig; + /* TAK team/role configuration */ typedef struct _meshtastic_ModuleConfig_TAKConfig { /* Team color. @@ -505,6 +589,8 @@ typedef struct _meshtastic_ModuleConfig { meshtastic_ModuleConfig_TrafficManagementConfig traffic_management; /* TAK team/role configuration for TAK_TRACKER */ meshtastic_ModuleConfig_TAKConfig tak; + /* MeshBeacon module config */ + meshtastic_ModuleConfig_MeshBeaconConfig mesh_beacon; } payload_variant; } meshtastic_ModuleConfig; @@ -538,6 +624,10 @@ extern "C" { #define _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MAX meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_BACK #define _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_ARRAYSIZE ((meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar)(meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_BACK+1)) +#define _meshtastic_ModuleConfig_MeshBeaconConfig_Flags_MIN meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_NONE +#define _meshtastic_ModuleConfig_MeshBeaconConfig_Flags_MAX meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_LEGACY_SPLIT +#define _meshtastic_ModuleConfig_MeshBeaconConfig_Flags_ARRAYSIZE ((meshtastic_ModuleConfig_MeshBeaconConfig_Flags)(meshtastic_ModuleConfig_MeshBeaconConfig_Flags_FLAG_LEGACY_SPLIT+1)) + @@ -562,6 +652,14 @@ extern "C" { +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_region_ENUMTYPE meshtastic_Config_LoRaConfig_RegionCode +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_preset_ENUMTYPE meshtastic_Config_LoRaConfig_ModemPreset +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_region_ENUMTYPE meshtastic_Config_LoRaConfig_RegionCode +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_preset_ENUMTYPE meshtastic_Config_LoRaConfig_ModemPreset + +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_preset_ENUMTYPE meshtastic_Config_LoRaConfig_ModemPreset +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_region_ENUMTYPE meshtastic_Config_LoRaConfig_RegionCode + #define meshtastic_ModuleConfig_TAKConfig_team_ENUMTYPE meshtastic_Team #define meshtastic_ModuleConfig_TAKConfig_role_ENUMTYPE meshtastic_MemberRole @@ -586,6 +684,8 @@ extern "C" { #define meshtastic_ModuleConfig_CannedMessageConfig_init_default {0, 0, 0, 0, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, 0, 0, "", 0} #define meshtastic_ModuleConfig_AmbientLightingConfig_init_default {0, 0, 0, 0, 0} #define meshtastic_ModuleConfig_StatusMessageConfig_init_default {""} +#define meshtastic_ModuleConfig_MeshBeaconConfig_init_default {0, 0, "", false, meshtastic_ChannelSettings_init_default, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, false, meshtastic_ChannelSettings_init_default, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, 0, 0, {meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_default, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_default, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_default, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_default}} +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_default {false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, 0} #define meshtastic_ModuleConfig_TAKConfig_init_default {_meshtastic_Team_MIN, _meshtastic_MemberRole_MIN} #define meshtastic_RemoteHardwarePin_init_default {0, "", _meshtastic_RemoteHardwarePinType_MIN} #define meshtastic_ModuleConfig_init_zero {0, {meshtastic_ModuleConfig_MQTTConfig_init_zero}} @@ -605,6 +705,8 @@ extern "C" { #define meshtastic_ModuleConfig_CannedMessageConfig_init_zero {0, 0, 0, 0, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, _meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_MIN, 0, 0, "", 0} #define meshtastic_ModuleConfig_AmbientLightingConfig_init_zero {0, 0, 0, 0, 0} #define meshtastic_ModuleConfig_StatusMessageConfig_init_zero {""} +#define meshtastic_ModuleConfig_MeshBeaconConfig_init_zero {0, 0, "", false, meshtastic_ChannelSettings_init_zero, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, false, meshtastic_ChannelSettings_init_zero, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, 0, 0, {meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_zero, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_zero, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_zero, meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_zero}} +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_init_zero {false, _meshtastic_Config_LoRaConfig_ModemPreset_MIN, _meshtastic_Config_LoRaConfig_RegionCode_MIN, false, 0} #define meshtastic_ModuleConfig_TAKConfig_init_zero {_meshtastic_Team_MIN, _meshtastic_MemberRole_MIN} #define meshtastic_RemoteHardwarePin_init_zero {0, "", _meshtastic_RemoteHardwarePinType_MIN} @@ -715,6 +817,20 @@ extern "C" { #define meshtastic_ModuleConfig_AmbientLightingConfig_green_tag 4 #define meshtastic_ModuleConfig_AmbientLightingConfig_blue_tag 5 #define meshtastic_ModuleConfig_StatusMessageConfig_node_status_tag 1 +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_preset_tag 1 +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_region_tag 2 +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_channel_index_tag 4 +#define meshtastic_ModuleConfig_MeshBeaconConfig_flags_tag 1 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_send_as_node_tag 3 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_message_tag 4 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_channel_tag 5 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_region_tag 6 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_preset_tag 7 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_channel_tag 8 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_region_tag 9 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_preset_tag 10 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_interval_secs_tag 11 +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_targets_tag 13 #define meshtastic_ModuleConfig_TAKConfig_team_tag 1 #define meshtastic_ModuleConfig_TAKConfig_role_tag 2 #define meshtastic_RemoteHardwarePin_gpio_pin_tag 1 @@ -739,6 +855,7 @@ extern "C" { #define meshtastic_ModuleConfig_statusmessage_tag 14 #define meshtastic_ModuleConfig_traffic_management_tag 15 #define meshtastic_ModuleConfig_tak_tag 16 +#define meshtastic_ModuleConfig_mesh_beacon_tag 17 /* Struct field encoding specification for nanopb */ #define meshtastic_ModuleConfig_FIELDLIST(X, a) \ @@ -757,7 +874,8 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,detection_sensor,payload_var X(a, STATIC, ONEOF, MESSAGE, (payload_variant,paxcounter,payload_variant.paxcounter), 13) \ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,statusmessage,payload_variant.statusmessage), 14) \ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,traffic_management,payload_variant.traffic_management), 15) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,tak,payload_variant.tak), 16) +X(a, STATIC, ONEOF, MESSAGE, (payload_variant,tak,payload_variant.tak), 16) \ +X(a, STATIC, ONEOF, MESSAGE, (payload_variant,mesh_beacon,payload_variant.mesh_beacon), 17) #define meshtastic_ModuleConfig_CALLBACK NULL #define meshtastic_ModuleConfig_DEFAULT NULL #define meshtastic_ModuleConfig_payload_variant_mqtt_MSGTYPE meshtastic_ModuleConfig_MQTTConfig @@ -776,6 +894,7 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,tak,payload_variant.tak), 1 #define meshtastic_ModuleConfig_payload_variant_statusmessage_MSGTYPE meshtastic_ModuleConfig_StatusMessageConfig #define meshtastic_ModuleConfig_payload_variant_traffic_management_MSGTYPE meshtastic_ModuleConfig_TrafficManagementConfig #define meshtastic_ModuleConfig_payload_variant_tak_MSGTYPE meshtastic_ModuleConfig_TAKConfig +#define meshtastic_ModuleConfig_payload_variant_mesh_beacon_MSGTYPE meshtastic_ModuleConfig_MeshBeaconConfig #define meshtastic_ModuleConfig_MQTTConfig_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, BOOL, enabled, 1) \ @@ -952,6 +1071,31 @@ X(a, STATIC, SINGULAR, STRING, node_status, 1) #define meshtastic_ModuleConfig_StatusMessageConfig_CALLBACK NULL #define meshtastic_ModuleConfig_StatusMessageConfig_DEFAULT NULL +#define meshtastic_ModuleConfig_MeshBeaconConfig_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, UINT32, flags, 1) \ +X(a, STATIC, SINGULAR, UINT32, broadcast_send_as_node, 3) \ +X(a, STATIC, SINGULAR, STRING, broadcast_message, 4) \ +X(a, STATIC, OPTIONAL, MESSAGE, broadcast_offer_channel, 5) \ +X(a, STATIC, SINGULAR, UENUM, broadcast_offer_region, 6) \ +X(a, STATIC, OPTIONAL, UENUM, broadcast_offer_preset, 7) \ +X(a, STATIC, OPTIONAL, MESSAGE, broadcast_on_channel, 8) \ +X(a, STATIC, SINGULAR, UENUM, broadcast_on_region, 9) \ +X(a, STATIC, OPTIONAL, UENUM, broadcast_on_preset, 10) \ +X(a, STATIC, SINGULAR, UINT32, broadcast_interval_secs, 11) \ +X(a, STATIC, REPEATED, MESSAGE, broadcast_targets, 13) +#define meshtastic_ModuleConfig_MeshBeaconConfig_CALLBACK NULL +#define meshtastic_ModuleConfig_MeshBeaconConfig_DEFAULT NULL +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_offer_channel_MSGTYPE meshtastic_ChannelSettings +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_on_channel_MSGTYPE meshtastic_ChannelSettings +#define meshtastic_ModuleConfig_MeshBeaconConfig_broadcast_targets_MSGTYPE meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget + +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_FIELDLIST(X, a) \ +X(a, STATIC, OPTIONAL, UENUM, preset, 1) \ +X(a, STATIC, SINGULAR, UENUM, region, 2) \ +X(a, STATIC, OPTIONAL, UINT32, channel_index, 4) +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_CALLBACK NULL +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_DEFAULT NULL + #define meshtastic_ModuleConfig_TAKConfig_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, team, 1) \ X(a, STATIC, SINGULAR, UENUM, role, 2) @@ -982,6 +1126,8 @@ extern const pb_msgdesc_t meshtastic_ModuleConfig_TelemetryConfig_msg; extern const pb_msgdesc_t meshtastic_ModuleConfig_CannedMessageConfig_msg; extern const pb_msgdesc_t meshtastic_ModuleConfig_AmbientLightingConfig_msg; extern const pb_msgdesc_t meshtastic_ModuleConfig_StatusMessageConfig_msg; +extern const pb_msgdesc_t meshtastic_ModuleConfig_MeshBeaconConfig_msg; +extern const pb_msgdesc_t meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_msg; extern const pb_msgdesc_t meshtastic_ModuleConfig_TAKConfig_msg; extern const pb_msgdesc_t meshtastic_RemoteHardwarePin_msg; @@ -1003,6 +1149,8 @@ extern const pb_msgdesc_t meshtastic_RemoteHardwarePin_msg; #define meshtastic_ModuleConfig_CannedMessageConfig_fields &meshtastic_ModuleConfig_CannedMessageConfig_msg #define meshtastic_ModuleConfig_AmbientLightingConfig_fields &meshtastic_ModuleConfig_AmbientLightingConfig_msg #define meshtastic_ModuleConfig_StatusMessageConfig_fields &meshtastic_ModuleConfig_StatusMessageConfig_msg +#define meshtastic_ModuleConfig_MeshBeaconConfig_fields &meshtastic_ModuleConfig_MeshBeaconConfig_msg +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_fields &meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_msg #define meshtastic_ModuleConfig_TAKConfig_fields &meshtastic_ModuleConfig_TAKConfig_msg #define meshtastic_RemoteHardwarePin_fields &meshtastic_RemoteHardwarePin_msg @@ -1015,6 +1163,8 @@ extern const pb_msgdesc_t meshtastic_RemoteHardwarePin_msg; #define meshtastic_ModuleConfig_ExternalNotificationConfig_size 42 #define meshtastic_ModuleConfig_MQTTConfig_size 224 #define meshtastic_ModuleConfig_MapReportSettings_size 14 +#define meshtastic_ModuleConfig_MeshBeaconConfig_BroadcastTarget_size 10 +#define meshtastic_ModuleConfig_MeshBeaconConfig_size 324 #define meshtastic_ModuleConfig_NeighborInfoConfig_size 10 #define meshtastic_ModuleConfig_PaxcounterConfig_size 30 #define meshtastic_ModuleConfig_RangeTestConfig_size 12 @@ -1025,7 +1175,7 @@ extern const pb_msgdesc_t meshtastic_RemoteHardwarePin_msg; #define meshtastic_ModuleConfig_TAKConfig_size 4 #define meshtastic_ModuleConfig_TelemetryConfig_size 50 #define meshtastic_ModuleConfig_TrafficManagementConfig_size 30 -#define meshtastic_ModuleConfig_size 227 +#define meshtastic_ModuleConfig_size 328 #define meshtastic_RemoteHardwarePin_size 21 #ifdef __cplusplus diff --git a/src/mesh/generated/meshtastic/portnums.pb.h b/src/mesh/generated/meshtastic/portnums.pb.h index 494ef4a54..2859d7c1f 100644 --- a/src/mesh/generated/meshtastic/portnums.pb.h +++ b/src/mesh/generated/meshtastic/portnums.pb.h @@ -98,6 +98,11 @@ typedef enum _meshtastic_PortNum { This module allows setting an extra string of status for a node. Broadcasts on change and on a timer, possibly once a day. */ meshtastic_PortNum_NODE_STATUS_APP = 36, + /* Beacon module broadcast packets. + ENCODING: protobuf + Periodically broadcast by nodes in beacon mode; received by nodes with MeshBeaconConfig.FLAG_LISTEN_ENABLED. + Carries a text message plus optional channel/preset offers for client apps. */ + meshtastic_PortNum_MESH_BEACON_APP = 37, /* 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.