Browse Source

kleine Optimierungen

pull/735/head
dAjaY85 2 years ago
parent
commit
0ff821aeac
  1. 6
      src/plugins/Display/Display.h
  2. 6
      src/plugins/Display/Display_Mono.cpp
  3. 2
      src/plugins/Display/Display_Mono.h
  4. 4
      src/plugins/Display/Display_ePaper.cpp
  5. 2
      src/plugins/Display/Display_ePaper.h

6
src/plugins/Display/Display.h

@ -23,6 +23,7 @@ class Display {
mUtcTs = utcTs; mUtcTs = utcTs;
mNewPayload = false; mNewPayload = false;
mLoopCnt = 0; mLoopCnt = 0;
mVersion = version;
if (mCfg->type == 0) { if (mCfg->type == 0) {
return; return;
@ -46,12 +47,12 @@ class Display {
DisplayMono.enableScreensaver = mCfg->pxShift; DisplayMono.enableScreensaver = mCfg->pxShift;
DisplayMono.contrast = mCfg->contrast; DisplayMono.contrast = mCfg->contrast;
DisplayMono.init(mCfg->type, mCfg->disp_cs, mCfg->disp_dc, mCfg->disp_reset, mCfg->disp_busy, mCfg->disp_clk, mCfg->disp_data); DisplayMono.init(mCfg->type, mCfg->disp_cs, mCfg->disp_dc, mCfg->disp_reset, mCfg->disp_busy, mCfg->disp_clk, mCfg->disp_data, mVersion);
} else if (mCfg->type > 10) { } else if (mCfg->type > 10) {
DisplayEPaper.displayRotation = mCfg->rot; DisplayEPaper.displayRotation = mCfg->rot;
counterEPaper = 0; counterEPaper = 0;
DisplayEPaper.init(mCfg->type, mCfg->disp_cs, mCfg->disp_dc, mCfg->disp_reset, mCfg->disp_busy, mCfg->disp_clk, mCfg->disp_data); DisplayEPaper.init(mCfg->type, mCfg->disp_cs, mCfg->disp_dc, mCfg->disp_reset, mCfg->disp_busy, mCfg->disp_clk, mCfg->disp_data, mVersion);
} }
} }
@ -116,6 +117,7 @@ class Display {
bool mNewPayload; bool mNewPayload;
uint8_t mLoopCnt; uint8_t mLoopCnt;
uint32_t *mUtcTs; uint32_t *mUtcTs;
const char *mVersion;
display_t *mCfg; display_t *mCfg;
HMSYSTEM *mSys; HMSYSTEM *mSys;
uint16_t period = 10000; // Achtung, max 65535 uint16_t period = 10000; // Achtung, max 65535

6
src/plugins/Display/Display_Mono.cpp

@ -63,7 +63,7 @@ void DisplayMonoClass::printText(const char* text, uint8_t line, uint8_t dispX =
_display->drawStr(dispX, mLineOffsets[line], text); _display->drawStr(dispX, mLineOffsets[line], text);
} }
void DisplayMonoClass::init(uint8_t _type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI) { void DisplayMonoClass::init(uint8_t _type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI, const char* version) {
if (0 < _type < 4) { if (0 < _type < 4) {
auto constructor = mono_types[_type]; auto constructor = mono_types[_type];
_display = constructor(_RST, _SCK, _MOSI, _CS, _DC); _display = constructor(_RST, _SCK, _MOSI, _CS, _DC);
@ -77,7 +77,9 @@ void DisplayMonoClass::init(uint8_t _type, uint8_t _CS, uint8_t _DC, uint8_t _RS
if (contrast < 255) { if (contrast < 255) {
_display->setContrast(contrast); _display->setContrast(contrast);
} }
printText("OpenDTU!", 0); printText("AHOY!", 0, 35);
printText("ahoydtu.de", 2, 20);
printText(version, 3, 46);
_display->sendBuffer(); _display->sendBuffer();
} }
} }

2
src/plugins/Display/Display_Mono.h

@ -8,7 +8,7 @@ class DisplayMonoClass {
DisplayMonoClass(); DisplayMonoClass();
~DisplayMonoClass(); ~DisplayMonoClass();
void init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI); void init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI, const char* version);
void loop(float totalPower, float totalYieldDay, float totalYieldTotal, uint8_t isprod); void loop(float totalPower, float totalYieldDay, float totalYieldTotal, uint8_t isprod);

4
src/plugins/Display/Display_ePaper.cpp

@ -9,7 +9,7 @@ static const uint32_t spiClk = 4000000; // 4 MHz
SPIClass hspi(HSPI); SPIClass hspi(HSPI);
#endif #endif
std::map<uint8_t, std::function<GxEPD2_GFX*(uint8_t, uint8_t, uint8_t, uint8_t)>> _ePaperTypes = { std::map<uint8_t, std::function<GxEPD2_GFX *(uint8_t, uint8_t, uint8_t, uint8_t)>> _ePaperTypes = {
// DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1 // DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1
{11, [](uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY) { return new GxEPD2_BW<GxEPD2_150_BN, GxEPD2_150_BN::HEIGHT>(GxEPD2_150_BN(_CS, _DC, _RST, _BUSY)); }}, {11, [](uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY) { return new GxEPD2_BW<GxEPD2_150_BN, GxEPD2_150_BN::HEIGHT>(GxEPD2_150_BN(_CS, _DC, _RST, _BUSY)); }},
// GDEW027C44 2.7 " b/w/r 176x264, IL91874 // GDEW027C44 2.7 " b/w/r 176x264, IL91874
@ -24,7 +24,7 @@ DisplayEPaperClass::~DisplayEPaperClass() {
delete _display; delete _display;
} }
//*************************************************************************** //***************************************************************************
void DisplayEPaperClass::init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI) { void DisplayEPaperClass::init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI, const char *version) {
if (type > 3) { if (type > 3) {
Serial.begin(115200); Serial.begin(115200);
auto constructor = _ePaperTypes[type]; auto constructor = _ePaperTypes[type];

2
src/plugins/Display/Display_ePaper.h

@ -31,7 +31,7 @@ class DisplayEPaperClass {
DisplayEPaperClass(); DisplayEPaperClass();
~DisplayEPaperClass(); ~DisplayEPaperClass();
void fullRefresh(); void fullRefresh();
void init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI); void init(uint8_t type, uint8_t _CS, uint8_t _DC, uint8_t _RST, uint8_t _BUSY, uint8_t _SCK, uint8_t _MOSI, const char* version);
void loop(float totalPower, float totalYieldDay, float totalYieldTotal, uint8_t isprod); void loop(float totalPower, float totalYieldDay, float totalYieldTotal, uint8_t isprod);
uint8_t displayRotation = 2; uint8_t displayRotation = 2;

Loading…
Cancel
Save