add RF Bake

This commit is contained in:
Christoph Kottke 2021-05-24 15:12:31 +02:00
parent 6eb82b78bf
commit d82db93801
5 changed files with 28 additions and 6 deletions

View file

@ -25,19 +25,20 @@ String create_long_aprs(double lng);
TaskQueue<std::shared_ptr<APRSMessage>> toAprsIs;
TaskQueue<std::shared_ptr<APRSMessage>> fromModem;
TaskQueue<std::shared_ptr<APRSMessage>> toModem;
System LoRaSystem;
Configuration userConfig;
DisplayTask displayTask;
ModemTask modemTask(fromModem);
ModemTask modemTask(fromModem, toModem);
EthTask ethTask;
WifiTask wifiTask;
OTATask otaTask;
NTPTask ntpTask;
FTPTask ftpTask;
AprsIsTask aprsIsTask(toAprsIs);
RouterTask routerTask(fromModem, toAprsIs);
RouterTask routerTask(fromModem, toModem, toAprsIs);
// cppcheck-suppress unusedFunction
void setup() {

View file

@ -7,7 +7,8 @@
#include "TaskModem.h"
#include "project_configuration.h"
ModemTask::ModemTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem) : Task(TASK_MODEM, TaskModem), _fromModem(fromModem) {
ModemTask::ModemTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem, TaskQueue<std::shared_ptr<APRSMessage>> &toModem)
: Task(TASK_MODEM, TaskModem), _fromModem(fromModem), _toModem(toModem) {
}
ModemTask::~ModemTask() {
@ -51,5 +52,10 @@ bool ModemTask::loop(System &system) {
system.getDisplay().addFrame(std::shared_ptr<DisplayFrame>(new TextFrame("LoRa", msg->toString())));
}
if (!_toModem.empty()) {
std::shared_ptr<APRSMessage> msg = _toModem.getElement();
_lora_aprs.sendMessage(msg);
}
return true;
}

View file

@ -7,7 +7,7 @@
class ModemTask : public Task {
public:
explicit ModemTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem);
explicit ModemTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem, TaskQueue<std::shared_ptr<APRSMessage>> &_toModem);
virtual ~ModemTask();
virtual bool setup(System &system) override;
@ -15,7 +15,9 @@ public:
private:
LoRa_APRS _lora_aprs;
TaskQueue<std::shared_ptr<APRSMessage>> &_fromModem;
TaskQueue<std::shared_ptr<APRSMessage>> &_toModem;
};
#endif

View file

@ -9,7 +9,10 @@
String create_lat_aprs(double lat);
String create_long_aprs(double lng);
RouterTask::RouterTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem, TaskQueue<std::shared_ptr<APRSMessage>> &toAprsIs) : Task(TASK_ROUTER, TaskRouter), _fromModem(fromModem), _toAprsIs(toAprsIs) {
RouterTask::RouterTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem
, TaskQueue<std::shared_ptr<APRSMessage>> &toModem
, TaskQueue<std::shared_ptr<APRSMessage>> &toAprsIs)
: Task(TASK_ROUTER, TaskRouter), _fromModem(fromModem), _toModem(toModem), _toAprsIs(toAprsIs) {
}
RouterTask::~RouterTask() {
@ -53,6 +56,13 @@ bool RouterTask::loop(System &system) {
if (system.getUserConfig()->aprs_is.active)
_toAprsIs.addElement(_beaconMsg);
if (system.getUserConfig()->digi.beacon) {
std::shared_ptr<APRSMessage> msg = _beaconMsg;
msg->setPath("WIDE1-1");
_toModem.addElement(msg);
}
system.getDisplay().addFrame(std::shared_ptr<DisplayFrame>(new TextFrame("BEACON", _beaconMsg->toString())));
_beacon_timer.start();

View file

@ -6,7 +6,9 @@
class RouterTask : public Task {
public:
RouterTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem, TaskQueue<std::shared_ptr<APRSMessage>> &toAprsIs);
RouterTask(TaskQueue<std::shared_ptr<APRSMessage>> &fromModem
, TaskQueue<std::shared_ptr<APRSMessage>> &toModem
, TaskQueue<std::shared_ptr<APRSMessage>> &toAprsIs);
virtual ~RouterTask();
virtual bool setup(System &system) override;
@ -14,6 +16,7 @@ public:
private:
TaskQueue<std::shared_ptr<APRSMessage>> &_fromModem;
TaskQueue<std::shared_ptr<APRSMessage>> &_toModem;
TaskQueue<std::shared_ptr<APRSMessage>> &_toAprsIs;
std::shared_ptr<APRSMessage> _beaconMsg;