47 lines
1.7 KiB
C++
47 lines
1.7 KiB
C++
#pragma once
|
|
#include <Arduino.h>
|
|
#include <ESP8266WiFi.h>
|
|
#include "../Global/GlobalDataController.h"
|
|
#include <OLEDDisplayUi.h>
|
|
#include <OLEDDisplay.h>
|
|
#include "../../include/WeatherStationFonts.h"
|
|
#include "BaseDisplayClient.h"
|
|
|
|
class OledDisplay : public BaseDisplayClient {
|
|
private:
|
|
GlobalDataController *globalDataController;
|
|
DebugController *debugController;
|
|
OLEDDisplay *oledDisplay;
|
|
OLEDDisplayUi *ui;
|
|
boolean displayOn = true;
|
|
long displayOffEpoch = 0;
|
|
|
|
FrameCallback frames[3];
|
|
FrameCallback clockFrame[2];
|
|
boolean isClockOn = false;
|
|
OverlayCallback overlays[1];
|
|
OverlayCallback clockOverlay[1];
|
|
|
|
public:
|
|
OledDisplay(OLEDDisplay *oledDisplay, GlobalDataController *globalDataController, DebugController *debugController);
|
|
void preSetup();
|
|
void postSetup();
|
|
void handleUpdate();
|
|
void flipDisplayUpdate();
|
|
void showBootScreen();
|
|
void showApAccessScreen(String apSsid, String apIp);
|
|
void showWebserverSplashScreen(bool isEnabled);
|
|
|
|
|
|
|
|
void checkDisplay();
|
|
void enableDisplay(boolean enable);
|
|
void drawScreen1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
|
void drawScreen2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
|
void drawScreen3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
|
void drawClock(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
|
void drawWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
|
void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
|
|
void drawClockHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
|
|
void drawRssi(OLEDDisplay *display);
|
|
}; |