Adafruit Library
dispDrvBase.h
Go to the documentation of this file.
1 
15 #ifndef WS_DISP_DRV_BASE_H
16 #define WS_DISP_DRV_BASE_H
17 
18 #include "../assets/icons.h"
19 #include "../assets/splash.h"
20 #include "Adafruit_ThinkInk.h"
21 #include "Wippersnapper.h"
22 
28 class dispDrvBase {
29 public:
43  dispDrvBase(int16_t dc, int16_t rst, int16_t cs, int16_t sram_cs = -1,
44  int16_t busy = -1)
45  : _pin_dc(dc), _pin_rst(rst), _pin_cs(cs), _pin_sram_cs(sram_cs),
46  _pin_busy(busy) {}
47 
63  dispDrvBase(int8_t cs, int8_t dc, int8_t mosi, int8_t sck, int8_t rst = -1,
64  int8_t miso = -1)
65  : _pin_cs(cs), _pin_dc(dc), _pin_mosi(mosi), _pin_sck(sck), _pin_rst(rst),
66  _pin_miso(miso) {}
67 
73  virtual ~dispDrvBase() {}
74 
83  virtual bool begin(thinkinkmode_t mode, bool reset = true) { return false; }
84 
89  virtual bool begin() { return false; }
90 
97  virtual void writeMessage(const char *message) = 0;
98 
104  void setWidth(int16_t w) { _width = w; }
105 
111  void setHeight(int16_t h) { _height = h; }
112 
118  void setRotation(uint8_t r) { _rotation = r; }
119 
127  virtual void setTextSize(uint8_t s) { _text_sz = s; }
128 
134  virtual void showSplash() { // No-op for base class
135  }
136 
144  virtual void drawStatusBar(const char *io_username) {
145  // No-op for base class
146  }
147 
160  virtual void updateStatusBar(int8_t rssi, uint8_t bat, bool mqtt_status) {
161  // No-op for base class
162  }
163 
164 protected:
165  int16_t _pin_dc;
166  int16_t _pin_rst;
167  int16_t _pin_cs;
168  int16_t _pin_busy;
169  int16_t _pin_sram_cs;
170  uint16_t _pin_mosi;
171  uint16_t _pin_miso;
172  uint16_t _pin_sck;
173  uint8_t _text_sz = 1;
174  int16_t _height;
175  int16_t _width;
176  uint8_t _rotation;
177  // statusbar properties
183  uint8_t
186 };
187 
188 #endif // WS_DISP_DRV_BASE_H
void setHeight(int16_t h)
Sets the height of the display.
Definition: dispDrvBase.h:111
int _statusbar_icons_y
Y position of status bar icons.
Definition: dispDrvBase.h:178
virtual void setTextSize(uint8_t s)
Sets the text size for the display.
Definition: dispDrvBase.h:127
void setRotation(uint8_t r)
Sets the rotation of the display.
Definition: dispDrvBase.h:118
virtual bool begin(thinkinkmode_t mode, bool reset=true)
Attempts to initialize a ThinkInk EPD driver.
Definition: dispDrvBase.h:83
int _statusbar_icon_battery_x
X position of battery icon.
Definition: dispDrvBase.h:179
uint16_t _pin_miso
Optional MISO pin for SPI TFT displays.
Definition: dispDrvBase.h:171
uint8_t _text_sz
Text size for displaying a message.
Definition: dispDrvBase.h:173
int8_t _statusbar_rssi
RSSI value for status bar.
Definition: dispDrvBase.h:182
int16_t _pin_sram_cs
Optional EPD SRAM chip select pin.
Definition: dispDrvBase.h:169
virtual void showSplash()
Displays a splash screen on the display.
Definition: dispDrvBase.h:134
uint16_t _pin_mosi
Optional MOSI pin for SPI TFT displays.
Definition: dispDrvBase.h:170
uint8_t _rotation
Rotation of the display.
Definition: dispDrvBase.h:176
virtual void updateStatusBar(int8_t rssi, uint8_t bat, bool mqtt_status)
Updates the status bar with current information (battery level, connectivity status, etc).
Definition: dispDrvBase.h:160
int _statusbar_icon_cloud_x
X position of cloud icon.
Definition: dispDrvBase.h:181
int16_t _pin_rst
Reset pin.
Definition: dispDrvBase.h:166
virtual void drawStatusBar(const char *io_username)
Draws a status bar at the top of the display.
Definition: dispDrvBase.h:144
int16_t _width
Width of the display.
Definition: dispDrvBase.h:175
dispDrvBase(int16_t dc, int16_t rst, int16_t cs, int16_t sram_cs=-1, int16_t busy=-1)
Constructor for the base display driver for E-Ink displays.
Definition: dispDrvBase.h:43
virtual bool begin()
Attempts to initialize a SPI TFT driver.
Definition: dispDrvBase.h:89
virtual void writeMessage(const char *message)=0
Writes a message to the display.
uint16_t _pin_sck
Optional SCK pin for SPI TFT displays.
Definition: dispDrvBase.h:172
int16_t _height
Height of the display.
Definition: dispDrvBase.h:174
bool _statusbar_mqtt_connected
MQTT connection status for the status bar.
Definition: dispDrvBase.h:185
int16_t _pin_busy
Optional Busy pin.
Definition: dispDrvBase.h:168
Abstract base class for display drivers. This class provides a common interface for all display drive...
Definition: dispDrvBase.h:28
dispDrvBase(int8_t cs, int8_t dc, int8_t mosi, int8_t sck, int8_t rst=-1, int8_t miso=-1)
Constructor for the base display driver for SPI TFT displays.
Definition: dispDrvBase.h:63
int16_t _pin_cs
Chip Select pin.
Definition: dispDrvBase.h:167
virtual ~dispDrvBase()
Destructor for the base display driver. This destructor is virtual to allow derived classes to clean ...
Definition: dispDrvBase.h:73
void setWidth(int16_t w)
Sets the width of the display.
Definition: dispDrvBase.h:104
int16_t _pin_dc
Data/Command pin.
Definition: dispDrvBase.h:165
uint8_t _statusbar_bat
Battery level, as a percentage, for the status bar.
Definition: dispDrvBase.h:184
int _statusbar_icon_wifi_x
X position of WiFi icon.
Definition: dispDrvBase.h:180