mirror of
https://github.com/tbnobody/OpenDTU.git
synced 2025-12-14 19:01:12 +01:00
Move all display related initialization inside the display class
This commit is contained in:
@@ -36,7 +36,7 @@ public:
|
|||||||
DisplayGraphicClass();
|
DisplayGraphicClass();
|
||||||
~DisplayGraphicClass();
|
~DisplayGraphicClass();
|
||||||
|
|
||||||
void init(Scheduler& scheduler, const DisplayType_t type, const uint8_t data, const uint8_t clk, const uint8_t cs, const uint8_t reset);
|
void init(Scheduler& scheduler);
|
||||||
void setContrast(const uint8_t contrast);
|
void setContrast(const uint8_t contrast);
|
||||||
void setStatus(const bool turnOn);
|
void setStatus(const bool turnOn);
|
||||||
void setOrientation(const uint8_t rotation = DISPLAY_ROTATION);
|
void setOrientation(const uint8_t rotation = DISPLAY_ROTATION);
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
* Copyright (C) 2023-2024 Thomas Basler and others
|
* Copyright (C) 2023-2024 Thomas Basler and others
|
||||||
*/
|
*/
|
||||||
#include "Display_Graphic.h"
|
#include "Display_Graphic.h"
|
||||||
|
#include "Configuration.h"
|
||||||
#include "Datastore.h"
|
#include "Datastore.h"
|
||||||
#include "I18n.h"
|
#include "I18n.h"
|
||||||
|
#include "PinMapping.h"
|
||||||
#include <NetworkSettings.h>
|
#include <NetworkSettings.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
@@ -45,12 +47,13 @@ DisplayGraphicClass::~DisplayGraphicClass()
|
|||||||
delete _display;
|
delete _display;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayGraphicClass::init(Scheduler& scheduler, const DisplayType_t type, const uint8_t data, const uint8_t clk, const uint8_t cs, const uint8_t reset)
|
void DisplayGraphicClass::init(Scheduler& scheduler)
|
||||||
{
|
{
|
||||||
_display_type = type;
|
const PinMapping_t& pin = PinMapping.get();
|
||||||
|
_display_type = static_cast<DisplayType_t>(pin.display_type);
|
||||||
if (isValidDisplay()) {
|
if (isValidDisplay()) {
|
||||||
auto constructor = display_types[_display_type];
|
auto constructor = display_types[_display_type];
|
||||||
_display = constructor(reset, clk, data, cs);
|
_display = constructor(pin.display_reset, pin.display_clk, pin.display_data, pin.display_cs);
|
||||||
if (_display_type == DisplayType_t::ST7567_GM12864I_59N) {
|
if (_display_type == DisplayType_t::ST7567_GM12864I_59N) {
|
||||||
_display->setI2CAddress(0x3F << 1);
|
_display->setI2CAddress(0x3F << 1);
|
||||||
}
|
}
|
||||||
@@ -62,6 +65,15 @@ void DisplayGraphicClass::init(Scheduler& scheduler, const DisplayType_t type, c
|
|||||||
scheduler.addTask(_loopTask);
|
scheduler.addTask(_loopTask);
|
||||||
_loopTask.setInterval(_period);
|
_loopTask.setInterval(_period);
|
||||||
_loopTask.enable();
|
_loopTask.enable();
|
||||||
|
|
||||||
|
auto& config = Configuration.get();
|
||||||
|
setDiagramMode(static_cast<DiagramMode_t>(config.Display.Diagram.Mode));
|
||||||
|
setOrientation(config.Display.Rotation);
|
||||||
|
enablePowerSafe = config.Display.PowerSafe;
|
||||||
|
enableScreensaver = config.Display.ScreenSaver;
|
||||||
|
setContrast(config.Display.Contrast);
|
||||||
|
setLocale(config.Display.Locale);
|
||||||
|
setStartupDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
17
src/main.cpp
17
src/main.cpp
@@ -78,7 +78,6 @@ void setup()
|
|||||||
MessageOutput.print("migrated... ");
|
MessageOutput.print("migrated... ");
|
||||||
Configuration.migrate();
|
Configuration.migrate();
|
||||||
}
|
}
|
||||||
auto& config = Configuration.get();
|
|
||||||
MessageOutput.println("done");
|
MessageOutput.println("done");
|
||||||
|
|
||||||
// Read languate pack
|
// Read languate pack
|
||||||
@@ -93,7 +92,6 @@ void setup()
|
|||||||
} else {
|
} else {
|
||||||
MessageOutput.print("using default config ");
|
MessageOutput.print("using default config ");
|
||||||
}
|
}
|
||||||
const auto& pin = PinMapping.get();
|
|
||||||
MessageOutput.println("done");
|
MessageOutput.println("done");
|
||||||
|
|
||||||
// Initialize Network
|
// Initialize Network
|
||||||
@@ -128,20 +126,7 @@ void setup()
|
|||||||
|
|
||||||
// Initialize Display
|
// Initialize Display
|
||||||
MessageOutput.print("Initialize Display... ");
|
MessageOutput.print("Initialize Display... ");
|
||||||
Display.init(
|
Display.init(scheduler);
|
||||||
scheduler,
|
|
||||||
static_cast<DisplayType_t>(pin.display_type),
|
|
||||||
pin.display_data,
|
|
||||||
pin.display_clk,
|
|
||||||
pin.display_cs,
|
|
||||||
pin.display_reset);
|
|
||||||
Display.setDiagramMode(static_cast<DiagramMode_t>(config.Display.Diagram.Mode));
|
|
||||||
Display.setOrientation(config.Display.Rotation);
|
|
||||||
Display.enablePowerSafe = config.Display.PowerSafe;
|
|
||||||
Display.enableScreensaver = config.Display.ScreenSaver;
|
|
||||||
Display.setContrast(config.Display.Contrast);
|
|
||||||
Display.setLocale(config.Display.Locale);
|
|
||||||
Display.setStartupDisplay();
|
|
||||||
MessageOutput.println("done");
|
MessageOutput.println("done");
|
||||||
|
|
||||||
// Initialize Single LEDs
|
// Initialize Single LEDs
|
||||||
|
|||||||
Reference in New Issue
Block a user