Use the base class to optimize screen display code.

This commit is contained in:
Quency-D
2025-08-14 17:43:46 +08:00
parent fad4a7fb51
commit aa7f9d8df6
2 changed files with 40 additions and 91 deletions

View File

@@ -6,27 +6,19 @@
#include <Wire.h>
#include <heltec-eink-modules.h>
enum EInkDetectionResult {
V_LCMEN213EFC1 = 0, // Initial version
V_E0213A367 = 1, // E213 PCB marked V1.1 (Mid 2025)
};
// Display driver for E213 e-ink display
class E213Display : public DisplayDriver {
#ifdef VISION_MASTER_E213
EInkDisplay_VisionMasterE213 display;
EInkDisplay_VisionMasterE213V1_1 display1;
#else
EInkDisplay_WirelessPaperV1_1 display;
EInkDisplay_WirelessPaperV1_1_1 display1;
#endif
EInkDetectionResult _version =V_LCMEN213EFC1;
BaseDisplay* display=NULL;
bool _init = false;
bool _isOn = false;
public:
E213Display() : DisplayDriver(250, 122) {}
~E213Display(){
if(display!=NULL) {
delete display;
}
}
bool begin();
bool isOn() override { return _isOn; }
void turnOn() override;
@@ -44,7 +36,7 @@ public:
void endFrame() override;
private:
EInkDetectionResult detectEInk();
BaseDisplay* detectEInk();
void powerOn();
void powerOff();
};