Adafruit Library
Public Member Functions | Protected Attributes | List of all members
dispDrvBase Class Referenceabstract

Abstract base class for display drivers. This class provides a common interface for all display drivers, allowing them to be used interchangeably. More...

#include <dispDrvBase.h>

Inheritance diagram for dispDrvBase:
dispDrvSt7789 dispDrvThinkInkGrayscale4T5 drvDispThinkInkGrayscale4Eaamfgn

Public Member Functions

 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. More...
 
 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. More...
 
virtual ~dispDrvBase ()
 Destructor for the base display driver. This destructor is virtual to allow derived classes to clean up resources properly.
 
virtual bool begin (thinkinkmode_t mode, bool reset=true)
 Attempts to initialize a ThinkInk EPD driver. More...
 
virtual bool begin ()
 Attempts to initialize a SPI TFT driver. More...
 
virtual void writeMessage (const char *message)=0
 Writes a message to the display. More...
 
void setWidth (int16_t w)
 Sets the width of the display. More...
 
void setHeight (int16_t h)
 Sets the height of the display. More...
 
void setRotation (uint8_t r)
 Sets the rotation of the display. More...
 
virtual void setTextSize (uint8_t s)
 Sets the text size for the display. More...
 
virtual void showSplash ()
 Displays a splash screen on the display. More...
 
virtual void drawStatusBar (const char *io_username)
 Draws a status bar at the top of the display. More...
 
virtual void updateStatusBar (int8_t rssi, uint8_t bat, bool mqtt_status)
 Updates the status bar with current information (battery level, connectivity status, etc). More...
 

Protected Attributes

int16_t _pin_dc
 Data/Command pin.
 
int16_t _pin_rst
 Reset pin.
 
int16_t _pin_cs
 Chip Select pin.
 
int16_t _pin_busy
 Optional Busy pin.
 
int16_t _pin_sram_cs
 Optional EPD SRAM chip select pin.
 
uint16_t _pin_mosi
 Optional MOSI pin for SPI TFT displays.
 
uint16_t _pin_miso
 Optional MISO pin for SPI TFT displays.
 
uint16_t _pin_sck
 Optional SCK pin for SPI TFT displays.
 
uint8_t _text_sz = 1
 Text size for displaying a message.
 
int16_t _height
 Height of the display.
 
int16_t _width
 Width of the display.
 
uint8_t _rotation
 Rotation of the display.
 
int _statusbar_icons_y
 Y position of status bar icons.
 
int _statusbar_icon_battery_x
 X position of battery icon.
 
int _statusbar_icon_wifi_x
 X position of WiFi icon.
 
int _statusbar_icon_cloud_x
 X position of cloud icon.
 
int8_t _statusbar_rssi
 RSSI value for status bar.
 
uint8_t _statusbar_bat
 Battery level, as a percentage, for the status bar.
 
bool _statusbar_mqtt_connected
 MQTT connection status for the status bar.
 

Detailed Description

Abstract base class for display drivers. This class provides a common interface for all display drivers, allowing them to be used interchangeably.

Constructor & Destructor Documentation

◆ dispDrvBase() [1/2]

dispDrvBase::dispDrvBase ( int16_t  dc,
int16_t  rst,
int16_t  cs,
int16_t  sram_cs = -1,
int16_t  busy = -1 
)
inline

Constructor for the base display driver for E-Ink displays.

Parameters
dcData/Command pin for the display.
rstReset pin for the display.
csChip Select pin for the display.
sram_csOptional SRAM Chip Select pin for E-Ink displays that support it.
busyOptional Busy pin for the display.

◆ dispDrvBase() [2/2]

dispDrvBase::dispDrvBase ( int8_t  cs,
int8_t  dc,
int8_t  mosi,
int8_t  sck,
int8_t  rst = -1,
int8_t  miso = -1 
)
inline

Constructor for the base display driver for SPI TFT displays.

Parameters
csChip Select pin for the display.
dcData/Command pin for the display.
mosiMOSI pin for the display.
sckSCK pin for the display.
rstOptional Reset pin for the display.
misoOptional MISO pin for the display.

Member Function Documentation

◆ begin() [1/2]

virtual bool dispDrvBase::begin ( thinkinkmode_t  mode,
bool  reset = true 
)
inlinevirtual

Attempts to initialize a ThinkInk EPD driver.

Parameters
modeThe ThinkInk mode to use for the display.
resetWhether to reset the display before initialization.
Returns
True if the display was initialized successfully, false otherwise.

Reimplemented in drvDispThinkInkGrayscale4Eaamfgn, and dispDrvThinkInkGrayscale4T5.

◆ begin() [2/2]

virtual bool dispDrvBase::begin ( )
inlinevirtual

Attempts to initialize a SPI TFT driver.

Returns
True if the display was initialized successfully, false otherwise.

Reimplemented in dispDrvSt7789.

◆ writeMessage()

virtual void dispDrvBase::writeMessage ( const char *  message)
pure virtual

Writes a message to the display.

Parameters
messageThe message to write to the display.
Note
MUST be implemented by derived classes.

Implemented in dispDrvSt7789, drvDispThinkInkGrayscale4Eaamfgn, and dispDrvThinkInkGrayscale4T5.

◆ setWidth()

void dispDrvBase::setWidth ( int16_t  w)
inline

Sets the width of the display.

Parameters
wThe width of the display in pixels.

◆ setHeight()

void dispDrvBase::setHeight ( int16_t  h)
inline

Sets the height of the display.

Parameters
hThe height of the display in pixels.

◆ setRotation()

void dispDrvBase::setRotation ( uint8_t  r)
inline

Sets the rotation of the display.

Parameters
rThe rotation of the display (0-3).

◆ setTextSize()

virtual void dispDrvBase::setTextSize ( uint8_t  s)
inlinevirtual

Sets the text size for the display.

Parameters
sThe text size to set.
Note
This method can be overridden by derived classes to provide specific functionality.

◆ showSplash()

virtual void dispDrvBase::showSplash ( )
inlinevirtual

Displays a splash screen on the display.

Note
This method can be overridden by derived classes to provide specific functionality.

Reimplemented in dispDrvSt7789, and drvDispThinkInkGrayscale4Eaamfgn.

◆ drawStatusBar()

virtual void dispDrvBase::drawStatusBar ( const char *  io_username)
inlinevirtual

Draws a status bar at the top of the display.

Parameters
io_usernameThe username to display on the status bar.
Note
This method can be overridden by derived classes to provide specific functionality.

Reimplemented in dispDrvSt7789, drvDispThinkInkGrayscale4Eaamfgn, and dispDrvThinkInkGrayscale4T5.

◆ updateStatusBar()

virtual void dispDrvBase::updateStatusBar ( int8_t  rssi,
uint8_t  bat,
bool  mqtt_status 
)
inlinevirtual

Updates the status bar with current information (battery level, connectivity status, etc).

Parameters
rssiThe current WiFi RSSI (signal strength) in dB.
batThe current battery level as a percentage (0-100).
mqtt_statusThe current MQTT connection status.
Note
This method can be overridden by derived classes to provide specific functionality.

Reimplemented in dispDrvSt7789, drvDispThinkInkGrayscale4Eaamfgn, and dispDrvThinkInkGrayscale4T5.


The documentation for this class was generated from the following file: