From e13f608b58d069b8038a5e4d2a055b97abdb2862 Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Sun, 22 Mar 2026 22:52:50 +0100 Subject: [PATCH] Basic LCD wrapper --- src/modules/lcd/lcd.h | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/modules/lcd/lcd.h diff --git a/src/modules/lcd/lcd.h b/src/modules/lcd/lcd.h new file mode 100644 index 0000000..c5a115a --- /dev/null +++ b/src/modules/lcd/lcd.h @@ -0,0 +1,45 @@ +#pragma once +#include "flags.h" +#include "modules/logger/system_logger.h" +#include +class lcd { +private: + LiquidCrystal_I2C *_display; + system_logger *_logger = nullptr; + +public: + lcd(); + lcd(system_logger *logger); + ~lcd(); + int init(); + int print_message(String message); +}; + +lcd::lcd() { _display = new LiquidCrystal_I2C(0x27, 20, 4); } + +lcd::lcd(system_logger *logger) { + _display = new LiquidCrystal_I2C(0x27, 20, 4); + _logger = logger; +} + +lcd::~lcd() {} + +int lcd::init() { + _display->init(); + _display->backlight(); + _display->clear(); + _display->setCursor(0, 0); + return 0; +} + +int lcd::print_message(String message) { + _display->clear(); + _display->setCursor(0, 0); + _display->print(message); + #ifdef INFO + if (_logger != nullptr) { + _logger->info(message); + } + #endif + return 0; +} \ No newline at end of file