modm API documentation
|
#include <modm/ui/display/character_display.hpp>
Classes | |
class | Writer |
Public Types | |
enum | Command { ClearDisplay = 0b00000001, ResetCursor = 0b00000010, IncrementCursor = 0b00000110, DecrementCursor = 0b00000100, DisableDisplay = 0b00001000, EnableDisplay = 0b00001100, DisableCursor = 0b00001000, EnableCursor = 0b00001010, DisableCursorBlink = 0b00001000, EnableCursorBlink = 0b00001001, ShiftCursorLeft = 0b00010000, ShiftCursorRight = 0b00010100 } |
Public Member Functions | |
CharacterDisplay (uint8_t width, uint8_t height) | |
Constructor. | |
void | initialize () |
Initialize the display. | |
void | write (char c) |
virtual void | writeRaw (char c) = 0 |
void | execute (Command command) |
virtual void | setCursor (uint8_t column, uint8_t line) = 0 |
void | clear () |
clear the entire display and reset the cursor | |
IOStream & | ascii () |
set the output mode to ASCII style for integer types | |
IOStream & | bin () |
set the output mode to binary style for integer types | |
IOStream & | endl () |
IOStream & | flush () |
IOStream & | get (char &c) |
Reads one character and returns it if available. Otherwise, returns IOStream::eof. | |
IOStream & | get (char *s, size_t n) |
template<size_t N> | |
IOStream & | get (char (&s)[N]) |
IOStream & | hex () |
set the output mode to hexadecimal style for integer types | |
IOStream & | operator<< (const bool &v) |
IOStream & | operator<< (const char &v) |
IOStream & | operator<< (const uint8_t &v) |
IOStream & | operator<< (const int16_t &v) |
IOStream & | operator<< (const uint16_t &v) |
IOStream & | operator<< (const int32_t &v) |
IOStream & | operator<< (const uint32_t &v) |
IOStream & | operator<< (const int64_t &v) |
IOStream & | operator<< (const uint64_t &v) |
IOStream & | operator<< (const int &v) |
IOStream & | operator<< (const unsigned int &v) |
IOStream & | operator<< (const float &v) |
IOStream & | operator<< (const double &v) |
IOStream & | operator<< (const char *s) |
IOStream & | operator<< (const void *p) |
write the hex value of a pointer | |
template<class Ret , class... Args> | |
IOStream & | operator<< (Ret (*pointer)(Args...)) |
Write the hex value of any function pointer. | |
IOStream & | operator<< (IOStream &(*format)(IOStream &)) |
IOStream & | printf (const char *fmt,...))) |
IOStream & | vprintf (const char *fmt, va_list vlist))) |
Static Public Attributes | |
static constexpr char | eof = -1 |
Protected Attributes | |
Writer | writer |
uint8_t | lineWidth |
uint8_t | lineCount |
uint8_t | column |
uint8_t | line |
Base class for alpha-numeric LCDs (liquid crystal display)
About this implementation:
In contrast to other drivers which use static methods, this class is directly derived from modm::IODevice
with all the virtual methods because it will be most likely used to create a IOStream which then handles the output to the display.
Therefore creating this class with static methods and using a wrapper class to create a modm::IODevice
seems unnecessary complicated.
void modm::CharacterDisplay::execute | ( | Command | command | ) |
|
inherited |
reads characters into NULL delimited c string in contrast to the standard implementation, this does not care about newline characters in the input
|
pure virtual |
Set cursor to specified position
column | horizontal position |
line | vertical position |
Implemented in modm::Hd44780Dual< DATA, RW, RS, E1, E2 >, modm::Hd44780< DATA, RW, RS, E >, modm::St7036< SPI, CS, RS, Width, Heigth >, modm::St7036< SPI, CS, RS, 8, 1 >, modm::St7036< SPI, CS, RS, 16, 3 >, and modm::St7036< SPI, CS, RS, 16, 2 >.
void modm::CharacterDisplay::write | ( | char | c | ) |
Write a character
This method provides an automatic wrap-round if the output reaches the end of the current line or a newline character is detected.
Use writeRaw() if this behavior is not wanted.
|
pure virtual |
Write a raw character at cursor position
Unlike write() no further processing will occur.
Implemented in modm::Hd44780Dual< DATA, RW, RS, E1, E2 >, modm::Hd44780< DATA, RW, RS, E >, modm::St7036< SPI, CS, RS, Width, Heigth >, modm::St7036< SPI, CS, RS, 8, 1 >, modm::St7036< SPI, CS, RS, 16, 3 >, and modm::St7036< SPI, CS, RS, 16, 2 >.