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;
mNewPayload = false;
mLoopCnt = 0;
mVersion = version;
if (mCfg->type == 0) {
return;
@ -46,12 +47,12 @@ class Display {
DisplayMono.enableScreensaver = mCfg->pxShift;
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) {
DisplayEPaper.displayRotation = mCfg->rot;
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;
uint8_t mLoopCnt;
uint32_t *mUtcTs;
const char *mVersion;
display_t *mCfg;
HMSYSTEM *mSys;
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);
}
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) {
auto constructor = mono_types[_type];
_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) {
_display->setContrast(contrast);
}
printText("OpenDTU!", 0);
printText("AHOY!", 0, 35);
printText("ahoydtu.de", 2, 20);
printText(version, 3, 46);
_display->sendBuffer();
}
}

2
src/plugins/Display/Display_Mono.h

@ -8,7 +8,7 @@ class 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);

4
src/plugins/Display/Display_ePaper.cpp

@ -9,7 +9,7 @@ static const uint32_t spiClk = 4000000; // 4 MHz
SPIClass hspi(HSPI);
#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
{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
@ -24,7 +24,7 @@ DisplayEPaperClass::~DisplayEPaperClass() {
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) {
Serial.begin(115200);
auto constructor = _ePaperTypes[type];

2
src/plugins/Display/Display_ePaper.h

@ -31,7 +31,7 @@ class DisplayEPaperClass {
DisplayEPaperClass();
~DisplayEPaperClass();
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);
uint8_t displayRotation = 2;

Loading…
Cancel
Save