Merge remote-tracking branch 'root/master' into eink

1.2-legacy
Kevin Hester 2021-03-10 15:30:51 +08:00
commit 0df01f2586
4 zmienionych plików z 71 dodań i 30 usunięć

Wyświetl plik

@ -7,11 +7,12 @@ jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Checkout submodules
uses: textbook/git-checkout-submodule-action@master
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: true
- name: Setup Python
uses: actions/setup-python@master
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install Platform IO
@ -31,4 +32,4 @@ jobs:
- name: Build for lora-relay-v1
run: platformio run -e lora-relay-v1
- name: Build for linux
run: platformio run -e linux
run: platformio run -e linux

Wyświetl plik

@ -45,6 +45,18 @@ Recommended settings for a sender at different radio settings:
Medium ... range_test_plugin_sender = 15
Short Fast ... range_test_plugin_sender = 15
## Python API Examples
### Sender
meshtastic --set range_test_plugin_enabled 1
meshtastic --set range_test_plugin_sender 60
### Receiver
meshtastic --set range_test_plugin_enabled 1
meshtastic --set range_test_plugin_save 1
## Other things to keep in mind
Be sure to turn off either the plugin configured as a sender or the device where the plugin setup as sender when not in use. This will use a lot of time on air and will spam your channel.

Wyświetl plik

@ -26,26 +26,23 @@ int32_t StoreForwardPlugin::runOnce()
without having to configure it from the PythonAPI or WebUI.
*/
// radioConfig.preferences.store_forward_plugin_enabled = 1;
// radioConfig.preferences.is_router = 1;
radioConfig.preferences.store_forward_plugin_enabled = 1;
radioConfig.preferences.is_router = 0;
if (radioConfig.preferences.store_forward_plugin_enabled) {
if (firstTime) {
/*
*/
firstTime = 0;
if (radioConfig.preferences.is_router) {
DEBUG_MSG("Initializing Store & Forward Plugin - Enabled\n");
DEBUG_MSG("Initializing Store & Forward Plugin - Enabled as Router\n");
// Router
if (ESP.getPsramSize()) {
if (ESP.getFreePsram() >= 2048 * 1024) {
// Do the startup here
storeForwardPluginRadio = new StoreForwardPluginRadio();
firstTime = 0;
this->populatePSRAM();
// packetHistory[0].bytes;
@ -66,21 +63,30 @@ int32_t StoreForwardPlugin::runOnce()
}
} else {
DEBUG_MSG("Initializing Store & Forward Plugin - Enabled but is_router is not turned on.\n");
DEBUG_MSG(
"Initializing Store & Forward Plugin - If you want to use this plugin, you must also turn on is_router.\n");
// Non-Router
return (30 * 1000);
DEBUG_MSG("Initializing Store & Forward Plugin - Enabled as Client\n");
return (5 * 1000);
}
} else {
// What do we do if it's not our first time?
// Maybe some cleanup functions?
this->sawNodeReport();
this->historyReport();
return (10 * 1000);
if (radioConfig.preferences.is_router) {
// Maybe some cleanup functions?
this->sawNodeReport();
this->historyReport();
return (10 * 1000);
} else {
/*
* If the plugin is turned on and is_router is not enabled, then we'll send a heartbeat every
* few minutes.
*/
DEBUG_MSG("Store & Forward Plugin - Sending heartbeat\n");
// storeForwardPluginRadio->sendPayloadHeartbeat();
storeForwardPluginRadio->sendPayload();
return (1 * 60 * 1000);
}
}
} else {
@ -220,15 +226,32 @@ void StoreForwardPlugin::sawNodeReport()
MeshPacket *StoreForwardPluginRadio::allocReply()
{
auto reply = allocDataPacket(); // Allocate a packet for sending
return reply;
//auto reply = allocDataPacket(); // Allocate a packet for sending
//return reply;
}
void StoreForwardPluginRadio::sendPayload(NodeNum dest, bool wantReplies)
{
MeshPacket *p = allocReply();
MeshPacket *p = this->allocReply();
/*
p->to = dest;
p->decoded.want_response = wantReplies;
p->want_ack = true;
*/
// static char heartbeatString[20];
// snprintf(heartbeatString, sizeof(heartbeatString), "1");
// p->decoded.data.payload.size = strlen(heartbeatString); // You must specify how many bytes are in the reply
// memcpy(p->decoded.data.payload.bytes, "1", 1);
// service.sendToMesh(p);
}
void StoreForwardPluginRadio::sendPayloadHeartbeat(NodeNum dest, bool wantReplies)
{
DEBUG_MSG("Sending S&F Heartbeat\n");
MeshPacket *p = this->allocReply();
p->to = dest;
p->decoded.want_response = wantReplies;
@ -282,8 +305,8 @@ bool StoreForwardPluginRadio::handleReceived(const MeshPacket &mp)
}
if ((millis() - sawTime) > STOREFORWARD_SEND_HISTORY_SHORT) {
// Node has been away for a while.
storeForwardPlugin->historySend(sawTime, getFrom(&mp));
// Node has been away for a while.
storeForwardPlugin->historySend(sawTime, mp.from);
}
}

Wyświetl plik

@ -63,6 +63,11 @@ class StoreForwardPluginRadio : public SinglePortPlugin
*/
void sendPayload(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
/**
* Send our payload into the mesh
*/
void sendPayloadHeartbeat(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
protected:
virtual MeshPacket *allocReply();