mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2026-01-03 07:09:59 +01:00
remove smart pointer from Tasks
This commit is contained in:
parent
d45423ae17
commit
1f7f56ecfa
|
|
@ -5,16 +5,16 @@
|
|||
TaskManager::TaskManager() {
|
||||
}
|
||||
|
||||
void TaskManager::addTask(std::shared_ptr<Task> task) {
|
||||
void TaskManager::addTask(Task *task) {
|
||||
_tasks.push_back(task);
|
||||
}
|
||||
|
||||
void TaskManager::addAlwaysRunTask(std::shared_ptr<Task> task) {
|
||||
void TaskManager::addAlwaysRunTask(Task *task) {
|
||||
_alwaysRunTasks.push_back(task);
|
||||
}
|
||||
|
||||
std::shared_ptr<Task> TaskManager::getTask(const char *name) {
|
||||
std::_List_iterator<std::shared_ptr<Task>> elem = std::find_if(_tasks.begin(), _tasks.end(), [&](std::shared_ptr<Task> task) {
|
||||
Task *TaskManager::getTask(const char *name) {
|
||||
std::_List_iterator<Task *> elem = std::find_if(_tasks.begin(), _tasks.end(), [&](Task *task) {
|
||||
return task->getName() == name;
|
||||
});
|
||||
if (elem == _tasks.end()) {
|
||||
|
|
@ -23,18 +23,18 @@ std::shared_ptr<Task> TaskManager::getTask(const char *name) {
|
|||
return *elem;
|
||||
}
|
||||
|
||||
std::list<std::shared_ptr<Task>> TaskManager::getTasks() {
|
||||
std::list<Task *> TaskManager::getTasks() {
|
||||
return _tasks;
|
||||
}
|
||||
|
||||
bool TaskManager::setup(System &system) {
|
||||
logPrintlnV("will setup all tasks...");
|
||||
for (std::shared_ptr<Task> &elem : _alwaysRunTasks) {
|
||||
for (Task *elem : _alwaysRunTasks) {
|
||||
logPrintD("call setup from ");
|
||||
logPrintlnD(elem->getName());
|
||||
elem->setup(system);
|
||||
}
|
||||
for (std::shared_ptr<Task> &elem : _tasks) {
|
||||
for (Task *elem : _tasks) {
|
||||
logPrintD("call setup from ");
|
||||
logPrintlnD(elem->getName());
|
||||
elem->setup(system);
|
||||
|
|
@ -45,7 +45,7 @@ bool TaskManager::setup(System &system) {
|
|||
|
||||
bool TaskManager::loop(System &system) {
|
||||
// logPrintlnD("will loop all tasks...");
|
||||
for (std::shared_ptr<Task> &elem : _alwaysRunTasks) {
|
||||
for (Task *elem : _alwaysRunTasks) {
|
||||
// logPrintD("call loop from ");
|
||||
// logPrintlnD(elem->getName());
|
||||
elem->loop(system);
|
||||
|
|
@ -61,7 +61,7 @@ bool TaskManager::loop(System &system) {
|
|||
|
||||
void StatusFrame::drawStatusPage(Bitmap &bitmap) {
|
||||
int y = 0;
|
||||
for (std::shared_ptr<Task> task : _tasks) {
|
||||
for (Task *task : _tasks) {
|
||||
int x = bitmap.drawString(0, y, (task->getName()).substring(0, task->getName().indexOf("Task")));
|
||||
x = bitmap.drawString(x, y, ": ");
|
||||
if (task->getStateInfo() == "") {
|
||||
|
|
|
|||
|
|
@ -61,30 +61,30 @@ public:
|
|||
~TaskManager() {
|
||||
}
|
||||
|
||||
void addTask(std::shared_ptr<Task> task);
|
||||
void addAlwaysRunTask(std::shared_ptr<Task> task);
|
||||
std::shared_ptr<Task> getTask(const char *name);
|
||||
std::list<std::shared_ptr<Task>> getTasks();
|
||||
void addTask(Task *task);
|
||||
void addAlwaysRunTask(Task *task);
|
||||
Task * getTask(const char *name);
|
||||
std::list<Task *> getTasks();
|
||||
|
||||
bool setup(System &system);
|
||||
bool loop(System &system);
|
||||
|
||||
private:
|
||||
std::list<std::shared_ptr<Task>> _tasks;
|
||||
std::list<std::shared_ptr<Task>>::iterator _nextTask;
|
||||
std::list<std::shared_ptr<Task>> _alwaysRunTasks;
|
||||
std::list<Task *> _tasks;
|
||||
std::list<Task *>::iterator _nextTask;
|
||||
std::list<Task *> _alwaysRunTasks;
|
||||
};
|
||||
|
||||
class StatusFrame : public DisplayFrame {
|
||||
public:
|
||||
explicit StatusFrame(const std::list<std::shared_ptr<Task>> &tasks) : _tasks(tasks) {
|
||||
explicit StatusFrame(const std::list<Task *> &tasks) : _tasks(tasks) {
|
||||
}
|
||||
virtual ~StatusFrame() {
|
||||
}
|
||||
void drawStatusPage(Bitmap &bitmap) override;
|
||||
|
||||
private:
|
||||
std::list<std::shared_ptr<Task>> _tasks;
|
||||
std::list<Task *> _tasks;
|
||||
};
|
||||
|
||||
#include "System.h"
|
||||
|
|
|
|||
|
|
@ -24,11 +24,21 @@
|
|||
String create_lat_aprs(double lat);
|
||||
String create_long_aprs(double lng);
|
||||
|
||||
System LoRaSystem;
|
||||
|
||||
TaskQueue<std::shared_ptr<APRSMessage>> toAprsIs;
|
||||
TaskQueue<std::shared_ptr<APRSMessage>> fromModem;
|
||||
|
||||
System LoRaSystem;
|
||||
|
||||
DisplayTask displayTask;
|
||||
ModemTask modemTask(fromModem);
|
||||
EthTask ethTask;
|
||||
WifiTask wifiTask;
|
||||
OTATask otaTask;
|
||||
NTPTask ntpTask;
|
||||
FTPTask ftpTask;
|
||||
AprsIsTask aprsIsTask(toAprsIs);
|
||||
RouterTask routerTask(fromModem, toAprsIs);
|
||||
|
||||
// cppcheck-suppress unusedFunction
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
|
@ -84,20 +94,20 @@ void setup() {
|
|||
|
||||
LoRaSystem.setBoardConfig(boardConfig);
|
||||
LoRaSystem.setUserConfig(&userConfig);
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new DisplayTask()));
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new ModemTask(fromModem)));
|
||||
LoRaSystem.getTaskManager().addTask(&displayTask);
|
||||
LoRaSystem.getTaskManager().addTask(&modemTask);
|
||||
if (boardConfig->Type == eETH_BOARD) {
|
||||
LoRaSystem.getTaskManager().addAlwaysRunTask(std::shared_ptr<Task>(new EthTask()));
|
||||
LoRaSystem.getTaskManager().addAlwaysRunTask(ðTask);
|
||||
} else {
|
||||
LoRaSystem.getTaskManager().addAlwaysRunTask(std::shared_ptr<Task>(new WifiTask()));
|
||||
LoRaSystem.getTaskManager().addAlwaysRunTask(&wifiTask);
|
||||
}
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new OTATask()));
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new NTPTask()));
|
||||
LoRaSystem.getTaskManager().addTask(&otaTask);
|
||||
LoRaSystem.getTaskManager().addTask(&ntpTask);
|
||||
if (userConfig.ftp.active) {
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new FTPTask()));
|
||||
LoRaSystem.getTaskManager().addTask(&ftpTask);
|
||||
}
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new AprsIsTask(toAprsIs)));
|
||||
LoRaSystem.getTaskManager().addTask(std::shared_ptr<Task>(new RouterTask(fromModem, toAprsIs)));
|
||||
LoRaSystem.getTaskManager().addTask(&aprsIsTask);
|
||||
LoRaSystem.getTaskManager().addTask(&routerTask);
|
||||
|
||||
LoRaSystem.getTaskManager().setup(LoRaSystem);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue