feat(display): allow drawing via buffer
This commit is contained in:
@@ -12,9 +12,12 @@ class Display {
|
|||||||
|
|
||||||
void begin();
|
void begin();
|
||||||
void clear();
|
void clear();
|
||||||
|
void drawBuffer(String buffer[]);
|
||||||
void drawMenu(Menu& menu);
|
void drawMenu(Menu& menu);
|
||||||
|
|
||||||
LiquidCrystal_I2C& getLCD();
|
LiquidCrystal_I2C& getLCD();
|
||||||
private:
|
private:
|
||||||
|
uint8_t rows;
|
||||||
|
uint8_t cols;
|
||||||
LiquidCrystal_I2C lcd;
|
LiquidCrystal_I2C lcd;
|
||||||
};
|
};
|
||||||
|
|||||||
+9
-1
@@ -1,7 +1,7 @@
|
|||||||
#include "display.hpp"
|
#include "display.hpp"
|
||||||
|
|
||||||
// Initialize the LCD display with the specified number of columns and rows, using the I2C address.
|
// Initialize the LCD display with the specified number of columns and rows, using the I2C address.
|
||||||
Display::Display(uint8_t addr, uint8_t cols, uint8_t rows) : lcd(addr, cols, rows) {}
|
Display::Display(uint8_t addr, uint8_t cols, uint8_t rows) : rows(rows), cols(cols), lcd(addr, cols, rows) {}
|
||||||
|
|
||||||
void Display::begin() {
|
void Display::begin() {
|
||||||
lcd.init();
|
lcd.init();
|
||||||
@@ -12,6 +12,14 @@ void Display::clear() {
|
|||||||
lcd.clear();
|
lcd.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Display::drawBuffer(String buffer[]) {
|
||||||
|
clear();
|
||||||
|
for (size_t i = 0; i < rows; i++) {
|
||||||
|
lcd.setCursor(0, i);
|
||||||
|
lcd.print(buffer[i].substring(0, cols)); // Ensure we only print up to the number of columns
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Display::drawMenu(Menu &menu) {
|
void Display::drawMenu(Menu &menu) {
|
||||||
clear();
|
clear();
|
||||||
size_t currentItemIndex = menu.getCurrentItemIndex();
|
size_t currentItemIndex = menu.getCurrentItemIndex();
|
||||||
|
|||||||
Reference in New Issue
Block a user