2021-03-12 23:21:45 +01:00
|
|
|
#include <logger.h>
|
|
|
|
|
|
2021-01-19 23:12:55 +01:00
|
|
|
#include "TaskDisplay.h"
|
2021-03-12 23:21:45 +01:00
|
|
|
#include "project_configuration.h"
|
2021-01-19 23:12:55 +01:00
|
|
|
|
2021-03-12 23:21:45 +01:00
|
|
|
DisplayTask::DisplayTask() : Task("DisplayTask", 0) {
|
2021-01-19 23:12:55 +01:00
|
|
|
}
|
|
|
|
|
|
2021-03-12 23:21:45 +01:00
|
|
|
DisplayTask::~DisplayTask() {
|
2021-01-19 23:12:55 +01:00
|
|
|
}
|
|
|
|
|
|
2021-05-19 00:44:37 +02:00
|
|
|
bool DisplayTask::setup(System &system) {
|
|
|
|
|
system.getDisplay().setup(system.getBoardConfig());
|
|
|
|
|
if (system.getUserConfig()->display.turn180) {
|
|
|
|
|
system.getDisplay().turn180();
|
2021-03-12 23:21:45 +01:00
|
|
|
}
|
2021-05-19 00:44:37 +02:00
|
|
|
std::shared_ptr<StatusFrame> statusFrame = std::shared_ptr<StatusFrame>(new StatusFrame(system.getTaskManager().getTasks()));
|
|
|
|
|
system.getDisplay().setStatusFrame(statusFrame);
|
|
|
|
|
if (!system.getUserConfig()->display.alwaysOn) {
|
|
|
|
|
system.getDisplay().activateDisplaySaveMode();
|
|
|
|
|
system.getDisplay().setDisplaySaveTimeout(system.getUserConfig()->display.timeout);
|
2021-03-13 22:45:43 +01:00
|
|
|
}
|
2021-05-19 00:44:37 +02:00
|
|
|
_stateInfo = system.getUserConfig()->callsign;
|
2021-03-12 23:21:45 +01:00
|
|
|
return true;
|
2021-01-19 23:12:55 +01:00
|
|
|
}
|
|
|
|
|
|
2021-05-19 00:44:37 +02:00
|
|
|
bool DisplayTask::loop(System &system) {
|
2021-09-03 22:24:04 +02:00
|
|
|
if (system.getUserConfig()->display.overwritePin != 0 && !digitalRead(system.getUserConfig()->display.overwritePin)) {
|
|
|
|
|
system.getDisplay().activateDistplay();
|
|
|
|
|
}
|
2021-05-19 00:44:37 +02:00
|
|
|
system.getDisplay().update();
|
2021-03-12 23:21:45 +01:00
|
|
|
return true;
|
2021-01-19 23:12:55 +01:00
|
|
|
}
|