diff --git a/proto b/proto index 23d43efaf..0277a6dd4 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 23d43efaf119c19e9e7c5a0839560778d5ac20a3 +Subproject commit 0277a6dd4f0c2469a56cef758434904eb4d1d0f1 diff --git a/src/mesh/generated/mesh.pb.c b/src/mesh/generated/mesh.pb.c index 1bb9c51ae..8aa1f540a 100644 --- a/src/mesh/generated/mesh.pb.c +++ b/src/mesh/generated/mesh.pb.c @@ -45,6 +45,9 @@ PB_BIND(ToRadio, ToRadio, 2) PB_BIND(ToRadio_PeerInfo, ToRadio_PeerInfo, AUTO) +PB_BIND(Compressed, Compressed, AUTO) + + diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index e76eb83f7..88f3268ed 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -65,6 +65,10 @@ typedef enum _HardwareModel { HardwareModel_NANO_G1 = 41, /* nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/ */ HardwareModel_NRF52840_PCA10059 = 42, + /* Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3 */ + HardwareModel_DR_DEV = 43, + /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ */ + HardwareModel_M5STACK = 44, /* 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; @@ -231,6 +235,11 @@ typedef enum _LogRecord_Level { } LogRecord_Level; /* Struct definitions */ +typedef struct _Compressed { + PortNum portnum; + pb_callback_t data; +} Compressed; + /* Location of a waypoint to associate with a message */ typedef struct _Location { /* Id of the location */ @@ -397,8 +406,11 @@ typedef struct _RouteDiscovery { uint32_t route[8]; } RouteDiscovery; +/* Compressed message payload */ typedef struct _ToRadio_PeerInfo { + /* PortNum to determine the how to handle the compressed payload. */ uint32_t app_version; + /* Compressed data. */ bool mqtt_gateway; } ToRadio_PeerInfo; @@ -707,6 +719,7 @@ extern "C" { #define FromRadio_init_default {0, 0, {MyNodeInfo_init_default}} #define ToRadio_init_default {0, {MeshPacket_init_default}} #define ToRadio_PeerInfo_init_default {0, 0} +#define Compressed_init_default {_PortNum_MIN, {{NULL}, NULL}} #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, 0, 0, 0} #define RouteDiscovery_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}} @@ -720,8 +733,11 @@ extern "C" { #define FromRadio_init_zero {0, 0, {MyNodeInfo_init_zero}} #define ToRadio_init_zero {0, {MeshPacket_init_zero}} #define ToRadio_PeerInfo_init_zero {0, 0} +#define Compressed_init_zero {_PortNum_MIN, {{NULL}, NULL}} /* Field tags (for use in manual encoding/decoding) */ +#define Compressed_portnum_tag 1 +#define Compressed_data_tag 2 #define Location_id_tag 1 #define Location_latitude_i_tag 2 #define Location_longitude_i_tag 3 @@ -995,6 +1011,12 @@ X(a, STATIC, SINGULAR, BOOL, mqtt_gateway, 2) #define ToRadio_PeerInfo_CALLBACK NULL #define ToRadio_PeerInfo_DEFAULT NULL +#define Compressed_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, UENUM, portnum, 1) \ +X(a, CALLBACK, SINGULAR, BYTES, data, 2) +#define Compressed_CALLBACK pb_default_field_callback +#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; @@ -1008,6 +1030,7 @@ extern const pb_msgdesc_t LogRecord_msg; extern const pb_msgdesc_t FromRadio_msg; extern const pb_msgdesc_t ToRadio_msg; extern const pb_msgdesc_t ToRadio_PeerInfo_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 @@ -1023,8 +1046,10 @@ extern const pb_msgdesc_t ToRadio_PeerInfo_msg; #define FromRadio_fields &FromRadio_msg #define ToRadio_fields &ToRadio_msg #define ToRadio_PeerInfo_fields &ToRadio_PeerInfo_msg +#define Compressed_fields &Compressed_msg /* Maximum encoded size of messages (where known) */ +/* Compressed_size depends on runtime parameters */ #define Data_size 296 #define FromRadio_size 356 #define Location_size 24 diff --git a/src/mesh/generated/portnums.pb.h b/src/mesh/generated/portnums.pb.h index 47cfbe16d..f824ce769 100644 --- a/src/mesh/generated/portnums.pb.h +++ b/src/mesh/generated/portnums.pb.h @@ -29,8 +29,7 @@ typedef enum _PortNum { 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) - Formerly called CLEAR_TEXT */ + 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 */ @@ -70,6 +69,8 @@ typedef enum _PortNum { 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, + /* Compressed payloads. */ + PortNum_COMPRESSION_APP = 69, /* 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/Meshtastic-device/blob/master/bin/regen-protos.sh)) */