#include #include "TaskManager.h" #include TaskManager::TaskManager() { } void TaskManager::addTask(std::shared_ptr task) { _tasks.push_back(task); } std::shared_ptr TaskManager::getTask(const char * name) { std::_List_iterator> elem = std::find_if(_tasks.begin(), _tasks.end(), [&](std::shared_ptr task) { return task->getName() == name; }); if(elem == _tasks.end()) { return 0; } return *elem; } std::list> TaskManager::getTasks() { return _tasks; } bool TaskManager::setup(std::shared_ptr config, std::shared_ptr boardConfig) { logPrintlnV("will setup all tasks..."); for(std::shared_ptr & elem : _tasks) { logPrintW("call setup from "); logPrintlnW(elem->getName()); if(!elem->setup(config, boardConfig)) { return false; } } return true; } bool TaskManager::loop(std::shared_ptr config) { //logPrintlnD("will loop all tasks..."); for(std::shared_ptr & elem : _tasks) { //logPrintD("call loop from "); //logPrintlnD(elem->getName()); if(!elem->loop(config)) { return false; } } return true; } void StatusFrame::drawStatusPage(Bitmap & bitmap) { int y = 0; for(std::shared_ptr task : _tasks) { int x = bitmap.drawString(0, y, (task->getName()).substring(0, task->getName().indexOf("Task"))); x = bitmap.drawString(x, y, ": "); if(task->getStateInfo() == "") { switch (task->getState()) { case Error: bitmap.drawString(x, y, "Error"); break; case Warning: bitmap.drawString(x, y, "Warning"); default: break; } bitmap.drawString(x, y, "Okay"); } else { bitmap.drawString(x, y, task->getStateInfo()); } y += getSystemFont()->heightInPixel; } } bool StatusFrame::isPrio() const { for(std::shared_ptr task : _tasks) { if(task->getState() != Okay) { return true; } } return false; }