Crashes after 7 seconds.

This commit is contained in:
Jm 2021-02-28 19:35:00 -08:00
parent ef32ac5cd4
commit 2cf704abe0

View File

@ -26,26 +26,23 @@ int32_t StoreForwardPlugin::runOnce()
without having to configure it from the PythonAPI or WebUI. without having to configure it from the PythonAPI or WebUI.
*/ */
// radioConfig.preferences.store_forward_plugin_enabled = 1; radioConfig.preferences.store_forward_plugin_enabled = 1;
// radioConfig.preferences.is_router = 1; radioConfig.preferences.is_router = 0;
if (radioConfig.preferences.store_forward_plugin_enabled) { if (radioConfig.preferences.store_forward_plugin_enabled) {
if (firstTime) { if (firstTime) {
/* firstTime = 0;
*/
if (radioConfig.preferences.is_router) { if (radioConfig.preferences.is_router) {
DEBUG_MSG("Initializing Store & Forward Plugin - Enabled\n"); DEBUG_MSG("Initializing Store & Forward Plugin - Enabled as Router\n");
// Router // Router
if (ESP.getPsramSize()) { if (ESP.getPsramSize()) {
if (ESP.getFreePsram() >= 2048 * 1024) { if (ESP.getFreePsram() >= 2048 * 1024) {
// Do the startup here // Do the startup here
storeForwardPluginRadio = new StoreForwardPluginRadio(); storeForwardPluginRadio = new StoreForwardPluginRadio();
firstTime = 0;
this->populatePSRAM(); this->populatePSRAM();
// packetHistory[0].bytes; // packetHistory[0].bytes;
@ -66,22 +63,30 @@ int32_t StoreForwardPlugin::runOnce()
} }
} else { } else {
/* DEBUG_MSG("Initializing Store & Forward Plugin - Enabled as Client\n");
* If the plugin is turned on and is_router is not enabled, then we'll send a heartbeat every return (5 * 1000);
* few minutes.
*/
storeForwardPluginRadio->sendPayloadHeartbeat();
return (3 * 60 * 1000);
} }
} else { } else {
// What do we do if it's not our first time?
// Maybe some cleanup functions? if (radioConfig.preferences.is_router) {
this->sawNodeReport(); // Maybe some cleanup functions?
this->historyReport(); this->sawNodeReport();
return (10 * 1000); 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 { } else {
@ -221,24 +226,32 @@ void StoreForwardPlugin::sawNodeReport()
MeshPacket *StoreForwardPluginRadio::allocReply() MeshPacket *StoreForwardPluginRadio::allocReply()
{ {
//auto reply = allocDataPacket(); // Allocate a packet for sending
auto reply = allocDataPacket(); // Allocate a packet for sending //return reply;
return reply;
} }
void StoreForwardPluginRadio::sendPayload(NodeNum dest, bool wantReplies) void StoreForwardPluginRadio::sendPayload(NodeNum dest, bool wantReplies)
{ {
MeshPacket *p = allocReply(); MeshPacket *p = this->allocReply();
/*
p->to = dest; p->to = dest;
p->decoded.want_response = wantReplies; p->decoded.want_response = wantReplies;
service.sendToMesh(p); 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) void StoreForwardPluginRadio::sendPayloadHeartbeat(NodeNum dest, bool wantReplies)
{ {
MeshPacket *p = allocReply(); DEBUG_MSG("Sending S&F Heartbeat\n");
MeshPacket *p = this->allocReply();
p->to = dest; p->to = dest;
p->decoded.want_response = wantReplies; p->decoded.want_response = wantReplies;