Merge branch 'master' into SX1262-Power

1.2-legacy
Solanaceae 2021-12-02 21:50:37 -07:00 zatwierdzone przez GitHub
commit b7eaeb8c31
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
10 zmienionych plików z 148 dodań i 81 usunięć

Wyświetl plik

@ -6,6 +6,10 @@ VERSION=`bin/buildinfo.py long`
# Must have a V prefix to trigger github # Must have a V prefix to trigger github
git tag "v${VERSION}" git tag "v${VERSION}"
git push root "v${VERSION}" # push the tag
# Commented out per https://github.com/meshtastic/Meshtastic-device/issues/947
#git push root "v${VERSION}" # push the tag
git push origin "v${VERSION}" # push the tag
echo "Tag ${VERSION} pushed to github, github actions should now be building the draft release. If it seems good, click to publish it" echo "Tag ${VERSION} pushed to github, github actions should now be building the draft release. If it seems good, click to publish it"

Wyświetl plik

@ -0,0 +1,2 @@
@echo off
if [%1]==[] (echo "Please specify a platformio NRF target (i.e. rak4631) as the first argument.") else (python3 .\bin\uf2conv.py .\.pio\build\%1\firmware.hex -c -o .\.pio\build\%1\firmware.uf2 -f 0xADA52840)

2
proto

@ -1 +1 @@
Subproject commit 0de53c84a26a42ce9405109e392ca1143de86f58 Subproject commit 3ba36ec5db702ef0875128271ba20bf8558508a2

Wyświetl plik

@ -4,9 +4,9 @@
#ifndef PB_ADMIN_PB_H_INCLUDED #ifndef PB_ADMIN_PB_H_INCLUDED
#define PB_ADMIN_PB_H_INCLUDED #define PB_ADMIN_PB_H_INCLUDED
#include <pb.h> #include <pb.h>
#include "channel.pb.h"
#include "mesh.pb.h" #include "mesh.pb.h"
#include "radioconfig.pb.h" #include "radioconfig.pb.h"
#include "channel.pb.h"
#if PB_PROTO_HEADER_VERSION != 40 #if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator. #error Regenerate this file with the current version of nanopb generator.

Wyświetl plik

@ -4,8 +4,8 @@
#ifndef PB_DEVICEONLY_PB_H_INCLUDED #ifndef PB_DEVICEONLY_PB_H_INCLUDED
#define PB_DEVICEONLY_PB_H_INCLUDED #define PB_DEVICEONLY_PB_H_INCLUDED
#include <pb.h> #include <pb.h>
#include "mesh.pb.h"
#include "channel.pb.h" #include "channel.pb.h"
#include "mesh.pb.h"
#include "radioconfig.pb.h" #include "radioconfig.pb.h"
#if PB_PROTO_HEADER_VERSION != 40 #if PB_PROTO_HEADER_VERSION != 40

Wyświetl plik

@ -6,13 +6,13 @@
#error Regenerate this file with the current version of nanopb generator. #error Regenerate this file with the current version of nanopb generator.
#endif #endif
PB_BIND(StoreAndForwardMessage, StoreAndForwardMessage, AUTO) PB_BIND(StoreAndForward, StoreAndForward, AUTO)
PB_BIND(StoreAndForwardMessage_Statistics, StoreAndForwardMessage_Statistics, AUTO) PB_BIND(StoreAndForward_Statistics, StoreAndForward_Statistics, AUTO)
PB_BIND(StoreAndForwardMessage_History, StoreAndForwardMessage_History, AUTO) PB_BIND(StoreAndForward_History, StoreAndForward_History, AUTO)

Wyświetl plik

@ -10,28 +10,27 @@
#endif #endif
/* Enum definitions */ /* Enum definitions */
typedef enum _StoreAndForwardMessage_RequestResponse { typedef enum _StoreAndForward_RequestResponse {
StoreAndForwardMessage_RequestResponse_UNSET = 0, StoreAndForward_RequestResponse_UNSET = 0,
StoreAndForwardMessage_RequestResponse_ROUTER_ERROR = 1, StoreAndForward_RequestResponse_ROUTER_ERROR = 1,
StoreAndForwardMessage_RequestResponse_ROUTER_HEARTBEAT = 2, StoreAndForward_RequestResponse_ROUTER_HEARTBEAT = 2,
StoreAndForwardMessage_RequestResponse_ROUTER_PING = 3, StoreAndForward_RequestResponse_ROUTER_PING = 3,
StoreAndForwardMessage_RequestResponse_ROUTER_PONG = 4, StoreAndForward_RequestResponse_ROUTER_PONG = 4,
StoreAndForwardMessage_RequestResponse_ROUTER_BUSY = 5, StoreAndForward_RequestResponse_ROUTER_BUSY = 5,
StoreAndForwardMessage_RequestResponse_CLIENT_ERROR = 101, StoreAndForward_RequestResponse_CLIENT_ERROR = 101,
StoreAndForwardMessage_RequestResponse_CLIENT_HISTORY = 102, StoreAndForward_RequestResponse_CLIENT_HISTORY = 102,
StoreAndForwardMessage_RequestResponse_CLIENT_STATS = 103, StoreAndForward_RequestResponse_CLIENT_STATS = 103,
StoreAndForwardMessage_RequestResponse_CLIENT_PING = 104, StoreAndForward_RequestResponse_CLIENT_PING = 104,
StoreAndForwardMessage_RequestResponse_CLIENT_PONG = 105, StoreAndForward_RequestResponse_CLIENT_PONG = 105
StoreAndForwardMessage_RequestResponse_MAX = 255 } StoreAndForward_RequestResponse;
} StoreAndForwardMessage_RequestResponse;
/* Struct definitions */ /* Struct definitions */
typedef struct _StoreAndForwardMessage_History { typedef struct _StoreAndForward_History {
uint32_t HistoryMessages; uint32_t HistoryMessages;
uint32_t Window; uint32_t Window;
} StoreAndForwardMessage_History; } StoreAndForward_History;
typedef struct _StoreAndForwardMessage_Statistics { typedef struct _StoreAndForward_Statistics {
uint32_t MessagesTotal; uint32_t MessagesTotal;
uint32_t MessagesSaved; uint32_t MessagesSaved;
uint32_t MessagesMax; uint32_t MessagesMax;
@ -41,21 +40,21 @@ typedef struct _StoreAndForwardMessage_Statistics {
bool Heartbeat; bool Heartbeat;
uint32_t ReturnMax; uint32_t ReturnMax;
uint32_t ReturnWindow; uint32_t ReturnWindow;
} StoreAndForwardMessage_Statistics; } StoreAndForward_Statistics;
typedef struct _StoreAndForwardMessage { typedef struct _StoreAndForward {
StoreAndForwardMessage_RequestResponse rr; StoreAndForward_RequestResponse rr;
bool has_stats; bool has_stats;
StoreAndForwardMessage_Statistics stats; StoreAndForward_Statistics stats;
bool has_history; bool has_history;
StoreAndForwardMessage_History history; StoreAndForward_History history;
} StoreAndForwardMessage; } StoreAndForward;
/* Helper constants for enums */ /* Helper constants for enums */
#define _StoreAndForwardMessage_RequestResponse_MIN StoreAndForwardMessage_RequestResponse_UNSET #define _StoreAndForward_RequestResponse_MIN StoreAndForward_RequestResponse_UNSET
#define _StoreAndForwardMessage_RequestResponse_MAX StoreAndForwardMessage_RequestResponse_MAX #define _StoreAndForward_RequestResponse_MAX StoreAndForward_RequestResponse_CLIENT_PONG
#define _StoreAndForwardMessage_RequestResponse_ARRAYSIZE ((StoreAndForwardMessage_RequestResponse)(StoreAndForwardMessage_RequestResponse_MAX+1)) #define _StoreAndForward_RequestResponse_ARRAYSIZE ((StoreAndForward_RequestResponse)(StoreAndForward_RequestResponse_CLIENT_PONG+1))
#ifdef __cplusplus #ifdef __cplusplus
@ -63,40 +62,40 @@ extern "C" {
#endif #endif
/* Initializer values for message structs */ /* Initializer values for message structs */
#define StoreAndForwardMessage_init_default {_StoreAndForwardMessage_RequestResponse_MIN, false, StoreAndForwardMessage_Statistics_init_default, false, StoreAndForwardMessage_History_init_default} #define StoreAndForward_init_default {_StoreAndForward_RequestResponse_MIN, false, StoreAndForward_Statistics_init_default, false, StoreAndForward_History_init_default}
#define StoreAndForwardMessage_Statistics_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0} #define StoreAndForward_Statistics_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0}
#define StoreAndForwardMessage_History_init_default {0, 0} #define StoreAndForward_History_init_default {0, 0}
#define StoreAndForwardMessage_init_zero {_StoreAndForwardMessage_RequestResponse_MIN, false, StoreAndForwardMessage_Statistics_init_zero, false, StoreAndForwardMessage_History_init_zero} #define StoreAndForward_init_zero {_StoreAndForward_RequestResponse_MIN, false, StoreAndForward_Statistics_init_zero, false, StoreAndForward_History_init_zero}
#define StoreAndForwardMessage_Statistics_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0} #define StoreAndForward_Statistics_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0}
#define StoreAndForwardMessage_History_init_zero {0, 0} #define StoreAndForward_History_init_zero {0, 0}
/* Field tags (for use in manual encoding/decoding) */ /* Field tags (for use in manual encoding/decoding) */
#define StoreAndForwardMessage_History_HistoryMessages_tag 1 #define StoreAndForward_History_HistoryMessages_tag 1
#define StoreAndForwardMessage_History_Window_tag 2 #define StoreAndForward_History_Window_tag 2
#define StoreAndForwardMessage_Statistics_MessagesTotal_tag 1 #define StoreAndForward_Statistics_MessagesTotal_tag 1
#define StoreAndForwardMessage_Statistics_MessagesSaved_tag 2 #define StoreAndForward_Statistics_MessagesSaved_tag 2
#define StoreAndForwardMessage_Statistics_MessagesMax_tag 3 #define StoreAndForward_Statistics_MessagesMax_tag 3
#define StoreAndForwardMessage_Statistics_UpTime_tag 4 #define StoreAndForward_Statistics_UpTime_tag 4
#define StoreAndForwardMessage_Statistics_Requests_tag 5 #define StoreAndForward_Statistics_Requests_tag 5
#define StoreAndForwardMessage_Statistics_RequestsHistory_tag 6 #define StoreAndForward_Statistics_RequestsHistory_tag 6
#define StoreAndForwardMessage_Statistics_Heartbeat_tag 7 #define StoreAndForward_Statistics_Heartbeat_tag 7
#define StoreAndForwardMessage_Statistics_ReturnMax_tag 8 #define StoreAndForward_Statistics_ReturnMax_tag 8
#define StoreAndForwardMessage_Statistics_ReturnWindow_tag 9 #define StoreAndForward_Statistics_ReturnWindow_tag 9
#define StoreAndForwardMessage_rr_tag 1 #define StoreAndForward_rr_tag 1
#define StoreAndForwardMessage_stats_tag 2 #define StoreAndForward_stats_tag 2
#define StoreAndForwardMessage_history_tag 3 #define StoreAndForward_history_tag 3
/* Struct field encoding specification for nanopb */ /* Struct field encoding specification for nanopb */
#define StoreAndForwardMessage_FIELDLIST(X, a) \ #define StoreAndForward_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UENUM, rr, 1) \ X(a, STATIC, SINGULAR, UENUM, rr, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, stats, 2) \ X(a, STATIC, OPTIONAL, MESSAGE, stats, 2) \
X(a, STATIC, OPTIONAL, MESSAGE, history, 3) X(a, STATIC, OPTIONAL, MESSAGE, history, 3)
#define StoreAndForwardMessage_CALLBACK NULL #define StoreAndForward_CALLBACK NULL
#define StoreAndForwardMessage_DEFAULT NULL #define StoreAndForward_DEFAULT NULL
#define StoreAndForwardMessage_stats_MSGTYPE StoreAndForwardMessage_Statistics #define StoreAndForward_stats_MSGTYPE StoreAndForward_Statistics
#define StoreAndForwardMessage_history_MSGTYPE StoreAndForwardMessage_History #define StoreAndForward_history_MSGTYPE StoreAndForward_History
#define StoreAndForwardMessage_Statistics_FIELDLIST(X, a) \ #define StoreAndForward_Statistics_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, MessagesTotal, 1) \ X(a, STATIC, SINGULAR, UINT32, MessagesTotal, 1) \
X(a, STATIC, SINGULAR, UINT32, MessagesSaved, 2) \ X(a, STATIC, SINGULAR, UINT32, MessagesSaved, 2) \
X(a, STATIC, SINGULAR, UINT32, MessagesMax, 3) \ X(a, STATIC, SINGULAR, UINT32, MessagesMax, 3) \
@ -106,28 +105,28 @@ X(a, STATIC, SINGULAR, UINT32, RequestsHistory, 6) \
X(a, STATIC, SINGULAR, BOOL, Heartbeat, 7) \ X(a, STATIC, SINGULAR, BOOL, Heartbeat, 7) \
X(a, STATIC, SINGULAR, UINT32, ReturnMax, 8) \ X(a, STATIC, SINGULAR, UINT32, ReturnMax, 8) \
X(a, STATIC, SINGULAR, UINT32, ReturnWindow, 9) X(a, STATIC, SINGULAR, UINT32, ReturnWindow, 9)
#define StoreAndForwardMessage_Statistics_CALLBACK NULL #define StoreAndForward_Statistics_CALLBACK NULL
#define StoreAndForwardMessage_Statistics_DEFAULT NULL #define StoreAndForward_Statistics_DEFAULT NULL
#define StoreAndForwardMessage_History_FIELDLIST(X, a) \ #define StoreAndForward_History_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, HistoryMessages, 1) \ X(a, STATIC, SINGULAR, UINT32, HistoryMessages, 1) \
X(a, STATIC, SINGULAR, UINT32, Window, 2) X(a, STATIC, SINGULAR, UINT32, Window, 2)
#define StoreAndForwardMessage_History_CALLBACK NULL #define StoreAndForward_History_CALLBACK NULL
#define StoreAndForwardMessage_History_DEFAULT NULL #define StoreAndForward_History_DEFAULT NULL
extern const pb_msgdesc_t StoreAndForwardMessage_msg; extern const pb_msgdesc_t StoreAndForward_msg;
extern const pb_msgdesc_t StoreAndForwardMessage_Statistics_msg; extern const pb_msgdesc_t StoreAndForward_Statistics_msg;
extern const pb_msgdesc_t StoreAndForwardMessage_History_msg; extern const pb_msgdesc_t StoreAndForward_History_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ /* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define StoreAndForwardMessage_fields &StoreAndForwardMessage_msg #define StoreAndForward_fields &StoreAndForward_msg
#define StoreAndForwardMessage_Statistics_fields &StoreAndForwardMessage_Statistics_msg #define StoreAndForward_Statistics_fields &StoreAndForward_Statistics_msg
#define StoreAndForwardMessage_History_fields &StoreAndForwardMessage_History_msg #define StoreAndForward_History_fields &StoreAndForward_History_msg
/* Maximum encoded size of messages (where known) */ /* Maximum encoded size of messages (where known) */
#define StoreAndForwardMessage_size 69 #define StoreAndForward_size 68
#define StoreAndForwardMessage_Statistics_size 50 #define StoreAndForward_Statistics_size 50
#define StoreAndForwardMessage_History_size 12 #define StoreAndForward_History_size 12
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */

Wyświetl plik

@ -145,7 +145,7 @@ int32_t PositionPlugin::runOnce()
DEBUG_MSG("Sending pos@%x:6 to mesh (wantReplies=%d)\n", node->position.pos_timestamp, requestReplies); DEBUG_MSG("Sending pos@%x:6 to mesh (wantReplies=%d)\n", node->position.pos_timestamp, requestReplies);
sendOurPosition(NODENUM_BROADCAST, requestReplies); sendOurPosition(NODENUM_BROADCAST, requestReplies);
} else if (radioConfig.preferences.position_broadcast_smart == true) { } else if (radioConfig.preferences.position_broadcast_smart == true) {
// NodeInfo *node = service.refreshMyNodeInfo(); // should guarantee there is now a position NodeInfo *node = service.refreshMyNodeInfo(); // should guarantee there is now a position
if (node->has_position && (node->position.latitude_i != 0 || node->position.longitude_i != 0)) { if (node->has_position && (node->position.latitude_i != 0 || node->position.longitude_i != 0)) {
float distance = GeoCoord::latLongToMeter(lastGpsLatitude * 1e-7, lastGpsLongitude * 1e-7, float distance = GeoCoord::latLongToMeter(lastGpsLatitude * 1e-7, lastGpsLongitude * 1e-7,
@ -170,6 +170,11 @@ int32_t PositionPlugin::runOnce()
DEBUG_MSG("Sending smart pos@%x:6 to mesh (wantReplies=%d)\n", node->position.pos_timestamp, requestReplies); DEBUG_MSG("Sending smart pos@%x:6 to mesh (wantReplies=%d)\n", node->position.pos_timestamp, requestReplies);
sendOurPosition(NODENUM_BROADCAST, requestReplies); sendOurPosition(NODENUM_BROADCAST, requestReplies);
/* Update lastGpsSend to now. This means if the device is stationary, then
getPref_position_broadcast_secs will still apply.
*/
lastGpsSend = now;
} }
} }
} }

Wyświetl plik

@ -229,11 +229,12 @@ ProcessMessage StoreForwardPlugin::handleReceived(const MeshPacket &mp)
DEBUG_MSG("--- S&F Received something\n"); DEBUG_MSG("--- S&F Received something\n");
/*
StoreAndForwardMessage sfm = StoreAndForwardMessage_init_default; StoreAndForwardMessage sfm = StoreAndForwardMessage_init_default;
switch (sfm.rr) { switch (sfm.rr) {
} }
*/
auto &p = mp.decoded; auto &p = mp.decoded;
// The router node should not be sending messages as a client. // The router node should not be sending messages as a client.
@ -279,6 +280,66 @@ ProcessMessage StoreForwardPlugin::handleReceived(const MeshPacket &mp)
return ProcessMessage::CONTINUE; // Let others look at this message also if they want return ProcessMessage::CONTINUE; // Let others look at this message also if they want
} }
ProcessMessage StoreForwardPlugin::handleReceivedProtobuf(const MeshPacket &mp, StoreAndForward *p)
{
if (!radioConfig.preferences.store_forward_plugin_enabled) {
// If this plugin is not enabled in any capacity, don't handle the packet, and allow other plugins to consume
return ProcessMessage::CONTINUE;
}
//auto sfp = *p;
//auto p = *p;
// Advance states as needed
switch (p->rr) {
case StoreAndForward_RequestResponse_CLIENT_ERROR:
// Do nothing
break;
case StoreAndForward_RequestResponse_CLIENT_HISTORY:
// Do nothing
break;
case StoreAndForward_RequestResponse_CLIENT_PING:
// Do nothing
break;
case StoreAndForward_RequestResponse_CLIENT_PONG:
// Do nothing
break;
case StoreAndForward_RequestResponse_CLIENT_STATS:
// Do nothing
break;
case StoreAndForward_RequestResponse_ROUTER_BUSY:
// Do nothing
break;
case StoreAndForward_RequestResponse_ROUTER_ERROR:
// Do nothing
break;
case StoreAndForward_RequestResponse_ROUTER_HEARTBEAT:
// Do nothing
break;
case StoreAndForward_RequestResponse_ROUTER_PING:
// Do nothing
break;
case StoreAndForward_RequestResponse_ROUTER_PONG:
// Do nothing
break;
default:
assert(0); // unexpected state - FIXME, make an error code and reboot
}
return ProcessMessage::CONTINUE; // Let others look at this message also if they want
}
StoreForwardPlugin::StoreForwardPlugin() StoreForwardPlugin::StoreForwardPlugin()
: SinglePortPlugin("StoreForwardPlugin", PortNum_TEXT_MESSAGE_APP), concurrency::OSThread("StoreForwardPlugin") : SinglePortPlugin("StoreForwardPlugin", PortNum_TEXT_MESSAGE_APP), concurrency::OSThread("StoreForwardPlugin")
{ {
@ -311,12 +372,6 @@ StoreForwardPlugin::StoreForwardPlugin()
// Popupate PSRAM with our data structures. // Popupate PSRAM with our data structures.
this->populatePSRAM(); this->populatePSRAM();
// Calculate the packet time.
// this->packetTimeMax = RadioLibInterface::instance->getPacketTime(Constants_DATA_PAYLOAD_LEN);
// RadioLibInterface::instance->getPacketTime(Constants_DATA_PAYLOAD_LEN);
// RadioLibInterface::instance->getPacketTime(Constants_DATA_PAYLOAD_LEN);
// RadioInterface::getPacketTime(500)l
this->packetTimeMax = 2000; this->packetTimeMax = 2000;
} else { } else {

Wyświetl plik

@ -71,6 +71,8 @@ class StoreForwardPlugin : public SinglePortPlugin, private concurrency::OSThrea
it it
*/ */
virtual ProcessMessage handleReceived(const MeshPacket &mp); virtual ProcessMessage handleReceived(const MeshPacket &mp);
virtual ProcessMessage handleReceivedProtobuf(const MeshPacket &mp, StoreAndForward *p);
}; };
extern StoreForwardPlugin *storeForwardPlugin; extern StoreForwardPlugin *storeForwardPlugin;