WIP driver for adafruit display

This commit is contained in:
len0rd 2025-01-27 08:29:11 -05:00
parent ed7a3e151f
commit d9f03d0a2d
3 changed files with 87 additions and 0 deletions

View file

@ -0,0 +1,51 @@
#include "AdafruitVfdDisplay.hpp"
AdafruitVfdDisplay::AdafruitVfdDisplay(UART& lcdUart) : m_lcdUart{lcdUart} {}
void AdafruitVfdDisplay::createChar(uint8_t id, uint8_t* c) {
}
void AdafruitVfdDisplay::drawBlinker() {
}
void AdafruitVfdDisplay::clearBlinker() {
}
void AdafruitVfdDisplay::begin() {
delay(500);
clear();
}
void AdafruitVfdDisplay::clear() {
uint8_t clearCmd[] = {0xfe, 0x58};
m_lcdUart.write_raw(clearCmd, sizeof(clearCmd));
}
void AdafruitVfdDisplay::show() {
}
void AdafruitVfdDisplay::hide() {
}
void AdafruitVfdDisplay::draw(uint8_t byte) {
}
void AdafruitVfdDisplay::draw(const char* text) {
}
void AdafruitVfdDisplay::setCursor(uint8_t col, uint8_t row) {
}
void AdafruitVfdDisplay::setBacklight(bool enabled) {
uint8_t backlightCmd[] = {0xfe, 0x99, enabled ? 150 : 50};
m_lcdUart.write_raw(backlightCmd, sizeof(backlightCmd));
}

View file

@ -0,0 +1,35 @@
/**
*
* Implementation of LcdMenu::CharacterDisplayInterface
* For the Adafruit Character LCD Serial backpack. Which per their docs
* has a similar interface to the "Matrix Orbital Specification"
* @see https://learn.adafruit.com/usb-plus-serial-backpack/command-reference
*/
#ifndef __ADAFRUITVFDDISPINTERFACE_H__
#define __ADAFRUITVFDDISPINTERFACE_H__
#include <display/CharacterDisplayInterface.h>
class AdafruitVfdDisplay : public CharacterDisplayInterface {
public:
AdafruitVfdDisplay(UART& lcdUart);
// interface implementations
void createChar(uint8_t id, uint8_t* c) override;
void drawBlinker() override;
void clearBlinker() override;
void begin() override;
void clear() override;
void show() override;
void hide() override;
void draw(uint8_t byte) override;
void draw(const char* text) override;
void setCursor(uint8_t col, uint8_t row) override;
void setBacklight(bool enabled) override;
private:
UART m_lcdUart;
};
#endif /* __ADAFRUITVFDDISPINTERFACE_H__ */

View file

@ -15,3 +15,4 @@ framework = arduino
monitor_speed = 115200
lib_deps =
mathertel/OneButton@^2.6.1
forntoh/LcdMenu@^5.6.0