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
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"

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
#define PB_ADMIN_PB_H_INCLUDED
#include <pb.h>
#include "channel.pb.h"
#include "mesh.pb.h"
#include "radioconfig.pb.h"
#include "channel.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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