| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * Display.h
- *
- * Wrapper class for Adafruit OLED display.
- *
- * Created on: 28.01.2022
- * Author: FSmilari
- */
-
- #ifndef DISPLAY_H_
- #define DISPLAY_H_
-
- #include <Adafruit_SSD1306.h>
- #include <U8g2_for_Adafruit_GFX.h>
- #include <stdint.h>
- #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; // @suppress("Abstract class cannot be instantiated")
- U8G2_FOR_ADAFRUIT_GFX u8g2_gfx; // @suppress("Abstract class cannot be instantiated")
- 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_ */
|