From f4779bd93f9cee9fc02ba480472d2deff4899f0f Mon Sep 17 00:00:00 2001 From: caveman99 Date: Mon, 16 Jan 2023 16:50:57 +0000 Subject: [PATCH 1/6] [create-pull-request] automated change --- protobufs | 2 +- src/mesh/generated/config.pb.h | 10 +++-- src/mesh/generated/mesh.pb.h | 25 +++++++---- src/mesh/generated/xmodem.pb.c | 13 ++++++ src/mesh/generated/xmodem.pb.h | 77 ++++++++++++++++++++++++++++++++++ 5 files changed, 116 insertions(+), 11 deletions(-) create mode 100644 src/mesh/generated/xmodem.pb.c create mode 100644 src/mesh/generated/xmodem.pb.h diff --git a/protobufs b/protobufs index e00b5ba7d..1763fe4a3 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit e00b5ba7d06053d820f1123351881fc4fa9270d1 +Subproject commit 1763fe4a389f0864f153a9986699e1ea56e67fac diff --git a/src/mesh/generated/config.pb.h b/src/mesh/generated/config.pb.h index 38e53d0c8..a6c84306e 100644 --- a/src/mesh/generated/config.pb.h +++ b/src/mesh/generated/config.pb.h @@ -147,7 +147,11 @@ typedef enum _Config_LoRaConfig_RegionCode { /* Thailand */ Config_LoRaConfig_RegionCode_TH = 12, /* WLAN Band */ - Config_LoRaConfig_RegionCode_LORA_24 = 13 + 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 @@ -437,8 +441,8 @@ extern "C" { #define _Config_DisplayConfig_DisplayMode_ARRAYSIZE ((Config_DisplayConfig_DisplayMode)(Config_DisplayConfig_DisplayMode_COLOR+1)) #define _Config_LoRaConfig_RegionCode_MIN Config_LoRaConfig_RegionCode_UNSET -#define _Config_LoRaConfig_RegionCode_MAX Config_LoRaConfig_RegionCode_LORA_24 -#define _Config_LoRaConfig_RegionCode_ARRAYSIZE ((Config_LoRaConfig_RegionCode)(Config_LoRaConfig_RegionCode_LORA_24+1)) +#define _Config_LoRaConfig_RegionCode_MAX Config_LoRaConfig_RegionCode_UA_868 +#define _Config_LoRaConfig_RegionCode_ARRAYSIZE ((Config_LoRaConfig_RegionCode)(Config_LoRaConfig_RegionCode_UA_868+1)) #define _Config_LoRaConfig_ModemPreset_MIN Config_LoRaConfig_ModemPreset_LONG_FAST #define _Config_LoRaConfig_ModemPreset_MAX Config_LoRaConfig_ModemPreset_SHORT_FAST diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index 984ae33ee..2e0b66629 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -9,6 +9,7 @@ #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. @@ -437,8 +438,9 @@ typedef struct _Waypoint { int32_t longitude_i; /* Time the waypoint is to expire (epoch) */ uint32_t expire; - /* If true, only allow the original sender to update the waypoint. */ - bool locked; + /* 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 */ @@ -673,6 +675,8 @@ typedef struct _FromRadio { Channel channel; /* Queue status info */ QueueStatus queueStatus; + /* File Transfer Chunk */ + XModem xmodemPacket; }; } FromRadio; @@ -696,6 +700,7 @@ typedef struct _ToRadio { 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; + XModem xmodemPacket; }; } ToRadio; @@ -850,7 +855,7 @@ extern "C" { #define Waypoint_latitude_i_tag 2 #define Waypoint_longitude_i_tag 3 #define Waypoint_expire_tag 4 -#define Waypoint_locked_tag 5 +#define Waypoint_locked_to_tag 5 #define Waypoint_name_tag 6 #define Waypoint_description_tag 7 #define Waypoint_icon_tag 8 @@ -908,9 +913,11 @@ extern "C" { #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 @@ -982,7 +989,7 @@ 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, BOOL, locked, 5) \ +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) @@ -1067,7 +1074,8 @@ X(a, STATIC, ONEOF, UINT32, (payload_variant,config_complete_id,config_co 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,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 @@ -1078,14 +1086,17 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,queueStatus,queueStatus), 1 #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, 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) \ @@ -1138,7 +1149,7 @@ extern const pb_msgdesc_t Compressed_msg; #define Routing_size 42 #define ToRadio_size 324 #define User_size 77 -#define Waypoint_size 161 +#define Waypoint_size 165 #ifdef __cplusplus } /* extern "C" */ diff --git a/src/mesh/generated/xmodem.pb.c b/src/mesh/generated/xmodem.pb.c new file mode 100644 index 000000000..f210380fe --- /dev/null +++ b/src/mesh/generated/xmodem.pb.c @@ -0,0 +1,13 @@ +/* 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 new file mode 100644 index 000000000..453c8ce7c --- /dev/null +++ b/src/mesh/generated/xmodem.pb.h @@ -0,0 +1,77 @@ +/* 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 From 1cfda773569a883952b4e92336b2b45744803128 Mon Sep 17 00:00:00 2001 From: Krezalis Date: Thu, 12 Jan 2023 14:57:14 +0200 Subject: [PATCH 2/6] Add 868 MHz Ukrainian Band --- src/mesh/RadioInterface.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index 2e44b0ada..c6647e1fc 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -105,6 +105,12 @@ const RegionInfo regions[] = { This needs to be last. Same as US. */ RDEF(UNSET, 902.0f, 928.0f, 100, 0, 30, true, false, false) + + /* + 868,0-868,6 Mhz 25 mW + https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf + */ + RDEF(UA868, 868.1f, 868.5f, 100, 0, 20, true, false, false) }; From 49279e56d05a81e0df81d0a21d6629e2a0aedffe Mon Sep 17 00:00:00 2001 From: Krezalis Date: Thu, 12 Jan 2023 15:25:05 +0200 Subject: [PATCH 3/6] Update RadioInterface.cpp --- src/mesh/RadioInterface.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index c6647e1fc..1d18d5ef4 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -100,18 +100,24 @@ const RegionInfo regions[] = { */ RDEF(LORA_24, 2400.0f, 2483.5f, 100, 0, 10, true, false, true), - + + /* + 433,05-434,7 Mhz 10 mW + https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf + */ + RDEF(UA_433, 433.0f, 434.0f, 100, 0, 12, true, false, false), + + /* + 868,0-868,6 Mhz 25 mW + https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf + */ + RDEF(UA_868, 868.1f, 868.5f, 100, 0, 14, true, false, false), + /* This needs to be last. Same as US. */ RDEF(UNSET, 902.0f, 928.0f, 100, 0, 30, true, false, false) - /* - 868,0-868,6 Mhz 25 mW - https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf - */ - RDEF(UA868, 868.1f, 868.5f, 100, 0, 20, true, false, false) - }; const RegionInfo *myRegion; From 011013ab1a875d732174cf1dcc7c5e301e175cd1 Mon Sep 17 00:00:00 2001 From: Krezalis Date: Thu, 12 Jan 2023 15:27:20 +0200 Subject: [PATCH 4/6] Update RadioInterface.cpp --- src/mesh/RadioInterface.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index 1d18d5ef4..8b1261b51 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -100,24 +100,24 @@ const RegionInfo regions[] = { */ RDEF(LORA_24, 2400.0f, 2483.5f, 100, 0, 10, true, false, true), - + /* 433,05-434,7 Mhz 10 mW https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf */ RDEF(UA_433, 433.0f, 434.0f, 100, 0, 12, true, false, false), - + /* 868,0-868,6 Mhz 25 mW https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf */ RDEF(UA_868, 868.1f, 868.5f, 100, 0, 14, true, false, false), - + /* This needs to be last. Same as US. */ RDEF(UNSET, 902.0f, 928.0f, 100, 0, 30, true, false, false) - + }; const RegionInfo *myRegion; From efbdb273c3f2e7e2a76cb8cd46e8e031c4cbdcf4 Mon Sep 17 00:00:00 2001 From: Krezalis Date: Thu, 12 Jan 2023 15:47:05 +0200 Subject: [PATCH 5/6] Update RadioInterface.cpp --- src/mesh/RadioInterface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index 8b1261b51..b3f347def 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -105,13 +105,13 @@ const RegionInfo regions[] = { 433,05-434,7 Mhz 10 mW https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf */ - RDEF(UA_433, 433.0f, 434.0f, 100, 0, 12, true, false, false), + RDEF(UA_433, 433.0f, 434.7f, 10, 0, 10, true, false, false), /* 868,0-868,6 Mhz 25 mW https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf */ - RDEF(UA_868, 868.1f, 868.5f, 100, 0, 14, true, false, false), + RDEF(UA_868, 868.0f, 868.6f, 1, 0, 14, true, false, false), /* This needs to be last. Same as US. From d5a3acb83aad653f84f6d259f7d982e29c4de51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 16 Jan 2023 17:54:48 +0100 Subject: [PATCH 6/6] Trigger rebuild --- src/mesh/RadioInterface.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index b3f347def..37b929249 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -94,13 +94,7 @@ const RegionInfo regions[] = { https://lora-alliance.org/wp-content/uploads/2020/11/lorawan_regional_parameters_v1.0.3reva_0.pdf */ RDEF(TH, 920.0f, 925.0f, 100, 0, 16, true, false, false), - - /* - 2.4 GHZ WLAN Band equivalent. Only for SX128x chips. - */ - - RDEF(LORA_24, 2400.0f, 2483.5f, 100, 0, 10, true, false, true), - + /* 433,05-434,7 Mhz 10 mW https://nkrzi.gov.ua/images/upload/256/5810/PDF_UUZ_19_01_2016.pdf @@ -113,6 +107,12 @@ const RegionInfo regions[] = { */ RDEF(UA_868, 868.0f, 868.6f, 1, 0, 14, true, false, false), + /* + 2.4 GHZ WLAN Band equivalent. Only for SX128x chips. + */ + + RDEF(LORA_24, 2400.0f, 2483.5f, 100, 0, 10, true, false, true), + /* This needs to be last. Same as US. */