From d82db93801018e9b3fad09f35384a8203fffdf19 Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Mon, 24 May 2021 15:12:31 +0200 Subject: [PATCH] add RF Bake --- src/LoRa_APRS_iGate.cpp | 5 +++-- src/TaskModem.cpp | 8 +++++++- src/TaskModem.h | 4 +++- src/TaskRouter.cpp | 12 +++++++++++- src/TaskRouter.h | 5 ++++- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 36d254e..c8433aa 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -25,19 +25,20 @@ String create_long_aprs(double lng); TaskQueue> toAprsIs; TaskQueue> fromModem; +TaskQueue> 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() { diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 336b06e..095df1e 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -7,7 +7,8 @@ #include "TaskModem.h" #include "project_configuration.h" -ModemTask::ModemTask(TaskQueue> &fromModem) : Task(TASK_MODEM, TaskModem), _fromModem(fromModem) { +ModemTask::ModemTask(TaskQueue> &fromModem, TaskQueue> &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(new TextFrame("LoRa", msg->toString()))); } + if (!_toModem.empty()) { + std::shared_ptr msg = _toModem.getElement(); + _lora_aprs.sendMessage(msg); + } + return true; } diff --git a/src/TaskModem.h b/src/TaskModem.h index a11dfd3..a5aad06 100644 --- a/src/TaskModem.h +++ b/src/TaskModem.h @@ -7,7 +7,7 @@ class ModemTask : public Task { public: - explicit ModemTask(TaskQueue> &fromModem); + explicit ModemTask(TaskQueue> &fromModem, TaskQueue> &_toModem); virtual ~ModemTask(); virtual bool setup(System &system) override; @@ -15,7 +15,9 @@ public: private: LoRa_APRS _lora_aprs; + TaskQueue> &_fromModem; + TaskQueue> &_toModem; }; #endif diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index 9b4218d..06fd14d 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -9,7 +9,10 @@ String create_lat_aprs(double lat); String create_long_aprs(double lng); -RouterTask::RouterTask(TaskQueue> &fromModem, TaskQueue> &toAprsIs) : Task(TASK_ROUTER, TaskRouter), _fromModem(fromModem), _toAprsIs(toAprsIs) { +RouterTask::RouterTask(TaskQueue> &fromModem + , TaskQueue> &toModem + , TaskQueue> &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 msg = _beaconMsg; + msg->setPath("WIDE1-1"); + + _toModem.addElement(msg); + } + system.getDisplay().addFrame(std::shared_ptr(new TextFrame("BEACON", _beaconMsg->toString()))); _beacon_timer.start(); diff --git a/src/TaskRouter.h b/src/TaskRouter.h index b6e4289..043104f 100644 --- a/src/TaskRouter.h +++ b/src/TaskRouter.h @@ -6,7 +6,9 @@ class RouterTask : public Task { public: - RouterTask(TaskQueue> &fromModem, TaskQueue> &toAprsIs); + RouterTask(TaskQueue> &fromModem + , TaskQueue> &toModem + , TaskQueue> &toAprsIs); virtual ~RouterTask(); virtual bool setup(System &system) override; @@ -14,6 +16,7 @@ public: private: TaskQueue> &_fromModem; + TaskQueue> &_toModem; TaskQueue> &_toAprsIs; std::shared_ptr _beaconMsg;