mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2025-12-06 07:42:00 +01:00
add wifi and ethernet task to always run
This commit is contained in:
parent
27d1996d10
commit
c9f62133c3
|
|
@ -9,6 +9,10 @@ void TaskManager::addTask(std::shared_ptr<Task> task) {
|
||||||
_tasks.push_back(task);
|
_tasks.push_back(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskManager::addAlwaysRunTask(std::shared_ptr<Task> task) {
|
||||||
|
_alwaysRunTasks.push_back(task);
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<Task> TaskManager::getTask(const char *name) {
|
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) {
|
std::_List_iterator<std::shared_ptr<Task>> elem = std::find_if(_tasks.begin(), _tasks.end(), [&](std::shared_ptr<Task> task) {
|
||||||
return task->getName() == name;
|
return task->getName() == name;
|
||||||
|
|
@ -25,6 +29,11 @@ std::list<std::shared_ptr<Task>> TaskManager::getTasks() {
|
||||||
|
|
||||||
bool TaskManager::setup(std::shared_ptr<System> system) {
|
bool TaskManager::setup(std::shared_ptr<System> system) {
|
||||||
logPrintlnV("will setup all tasks...");
|
logPrintlnV("will setup all tasks...");
|
||||||
|
for (std::shared_ptr<Task> &elem : _alwaysRunTasks) {
|
||||||
|
logPrintW("call setup from ");
|
||||||
|
logPrintlnW(elem->getName());
|
||||||
|
elem->setup(system);
|
||||||
|
}
|
||||||
for (std::shared_ptr<Task> &elem : _tasks) {
|
for (std::shared_ptr<Task> &elem : _tasks) {
|
||||||
logPrintW("call setup from ");
|
logPrintW("call setup from ");
|
||||||
logPrintlnW(elem->getName());
|
logPrintlnW(elem->getName());
|
||||||
|
|
@ -36,6 +45,12 @@ bool TaskManager::setup(std::shared_ptr<System> system) {
|
||||||
|
|
||||||
bool TaskManager::loop(std::shared_ptr<System> system) {
|
bool TaskManager::loop(std::shared_ptr<System> system) {
|
||||||
// logPrintlnD("will loop all tasks...");
|
// logPrintlnD("will loop all tasks...");
|
||||||
|
for (std::shared_ptr<Task> &elem : _alwaysRunTasks) {
|
||||||
|
// logPrintD("call loop from ");
|
||||||
|
// logPrintlnD(elem->getName());
|
||||||
|
elem->loop(system);
|
||||||
|
}
|
||||||
|
|
||||||
if (_nextTask == _tasks.end()) {
|
if (_nextTask == _tasks.end()) {
|
||||||
_nextTask = _tasks.begin();
|
_nextTask = _tasks.begin();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void addTask(std::shared_ptr<Task> task);
|
void addTask(std::shared_ptr<Task> task);
|
||||||
|
void addAlwaysRunTask(std::shared_ptr<Task> task);
|
||||||
std::shared_ptr<Task> getTask(const char *name);
|
std::shared_ptr<Task> getTask(const char *name);
|
||||||
std::list<std::shared_ptr<Task>> getTasks();
|
std::list<std::shared_ptr<Task>> getTasks();
|
||||||
|
|
||||||
|
|
@ -71,6 +72,7 @@ public:
|
||||||
private:
|
private:
|
||||||
std::list<std::shared_ptr<Task>> _tasks;
|
std::list<std::shared_ptr<Task>> _tasks;
|
||||||
std::list<std::shared_ptr<Task>>::iterator _nextTask;
|
std::list<std::shared_ptr<Task>>::iterator _nextTask;
|
||||||
|
std::list<std::shared_ptr<Task>> _alwaysRunTasks;
|
||||||
};
|
};
|
||||||
|
|
||||||
class StatusFrame : public DisplayFrame {
|
class StatusFrame : public DisplayFrame {
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,9 @@ void setup() {
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new DisplayTask()));
|
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new DisplayTask()));
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new LoraTask()));
|
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new LoraTask()));
|
||||||
if (boardConfig->Type == eETH_BOARD) {
|
if (boardConfig->Type == eETH_BOARD) {
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new EthTask()));
|
LoRaSystem->getTaskManager().addAlwaysRunTask(std::shared_ptr<Task>(new EthTask()));
|
||||||
} else {
|
} else {
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new WifiTask()));
|
LoRaSystem->getTaskManager().addAlwaysRunTask(std::shared_ptr<Task>(new WifiTask()));
|
||||||
}
|
}
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new OTATask()));
|
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new OTATask()));
|
||||||
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new NTPTask()));
|
LoRaSystem->getTaskManager().addTask(std::shared_ptr<Task>(new NTPTask()));
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue