/* * Display.h * * Wrapper class for Adafruit OLED display. * * Created on: 28.01.2022 * Author: FSmilari */ #ifndef DISPLAY_H_ #define DISPLAY_H_ #include #include #include #include "images/SFToolsLogo.h" #include "images/ToolsBitmap.h" #include "images/NullingBitmap.h" #include "images/RotateBitmap.h" #include "images/DiveBitmap.h" #include "Status.h" #include "ValueMode.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define SCREEN_ADDRESS 0x3C #define STATUS_TXT_IDLE "OPR" #define STATUS_TXT_TOOLCHG "WZW" #define STATUS_TXT_CFG "SETUP" #define STATUS_TXT_NULLING "NULL" #define STATUS_TXT_DIVING "EINT" class Display { private: Adafruit_SSD1306 ssd1306; U8G2_FOR_ADAFRUIT_GFX u8g2_gfx; String configText; String configOption; ValueMode mode; float distanceValue; String distanceUnit; float maxDiveDistance; float levelHeightDiving; bool wlsConnected; bool refreshScreen; int angle; unsigned long starttime; void drawStatusText(String txt); void drawBitmap(int x, int y, int w, int h, const uint8_t bitmap[]); void redrawFrame(); void drawWLSStatus(); void rotateAndDrawRotationBitmap(); public: Display(); void init(void); void display(void); void clearDisplay(void); void showBrand(void); void showInitialization(void); void showFrame(Status status); void drawConfigText(String txt); void drawConfigOption(String txt); void drawMode(ValueMode mode); void drawDistanceValue(float distance); void drawDistanceUnit(String unit); void drawMaxDiveDistance(float maxDiveDistance); void drawActualDiveStep(float maxDiveDistance, float levelHeightDiving, float distance); void setConfigOption(const String &configOption); const String& getConfigOption() const; void setConfigText(const String &configText); const String& getConfigText() const; void setWlsConnected(bool wlsConnected); void setRefreshScreen(); void setMode(const ValueMode &mode); void setDistanceValue(const float &distanceValue); void setDistanceUnit(const String &distanceUnit); void setLevelHeightDiving(float levelHeightDiving); void setMaxDiveDistance(float maxDiveDistance); }; #endif /* DISPLAY_H_ */