modm API documentation
modm::CharacterDisplay Class Referenceabstract

#include <modm/ui/display/character_display.hpp>

Inheritance diagram for modm::CharacterDisplay:
modm::IOStream modm::Hd44780< DATA, RW, RS, E > modm::Hd44780Dual< DATA, RW, RS, E1, E2 > modm::St7036< SPI, CS, RS, Width, Heigth > modm::St7036< SPI, CS, RS, 16, 2 > modm::St7036< SPI, CS, RS, 16, 3 > modm::St7036< SPI, CS, RS, 8, 1 > modm::DogM162< SPI, CS, RS > modm::DogM163< SPI, CS, RS > modm::DogM081< SPI, CS, RS >

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
 
IOStreamascii ()
 set the output mode to ASCII style for integer types
 
IOStreambin ()
 set the output mode to binary style for integer types
 
IOStreamendl ()
 
IOStreamflush ()
 
IOStreamget (char &c)
 Reads one character and returns it if available. Otherwise, returns IOStream::eof.
 
IOStreamget (char *s, size_t n)
 
template<size_t N>
IOStreamget (char (&s)[N])
 
IOStreamhex ()
 set the output mode to hexadecimal style for integer types
 
IOStreamoperator<< (const bool &v)
 
IOStreamoperator<< (const char &v)
 
IOStreamoperator<< (const uint8_t &v)
 
IOStreamoperator<< (const int16_t &v)
 
IOStreamoperator<< (const uint16_t &v)
 
IOStreamoperator<< (const int32_t &v)
 
IOStreamoperator<< (const uint32_t &v)
 
IOStreamoperator<< (const int64_t &v)
 
IOStreamoperator<< (const uint64_t &v)
 
IOStreamoperator<< (const int &v)
 
IOStreamoperator<< (const unsigned int &v)
 
IOStreamoperator<< (const float &v)
 
IOStreamoperator<< (const double &v)
 
IOStreamoperator<< (const char *s)
 
IOStreamoperator<< (const void *p)
 write the hex value of a pointer
 
template<class Ret , class... Args>
IOStreamoperator<< (Ret (*pointer)(Args...))
 Write the hex value of any function pointer.
 
IOStreamoperator<< (IOStream &(*format)(IOStream &))
 
IOStreamprintf (const char *fmt,...)))
 
IOStreamvprintf (const char *fmt, va_list vlist)))
 

Static Public Attributes

static constexpr char eof = -1
 

Protected Member Functions

void writeBin (uint8_t value)
 
void writeDouble (const double &value)
 
void writeFloat (float value)
 
void writeHex (uint8_t value)
 
void writeInteger (int16_t value)
 
void writeInteger (uint16_t value)
 
void writeInteger (int32_t value)
 
void writeInteger (uint32_t value)
 
void writeInteger (int64_t value)
 
void writeInteger (uint64_t value)
 
template<typename T >
void writeIntegerMode (const T v)
 
void writePointer (const void *value)
 

Protected Attributes

Writer writer
 
uint8_t lineWidth
 
uint8_t lineCount
 
uint8_t column
 
uint8_t line
 

Detailed Description

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.

Author
Fabian Greif

Member Enumeration Documentation

Enum ValuesDocumentation
ClearDisplay 

Clear the display content.

ResetCursor 

Set cursor to position (0,0)

IncrementCursor 

Increments address upon write.

DecrementCursor 

Decrements address upon write.

DisableDisplay 

Disable display.

EnableDisplay 

Enable display.

DisableCursor 

Disable cursor.

EnableCursor 

Enable cursor.

DisableCursorBlink 

Disable blinking cursor.

EnableCursorBlink 

Enable blinking cursor.

ShiftCursorLeft 

Shift cursor left.

ShiftCursorRight 

Shift cursor right.

Member Function Documentation

void modm::CharacterDisplay::execute ( Command  command)

Excute a command.

See also
Command
Parameters
commandCommand to execute
IOStream & modm::IOStream::get ( char *  s,
size_t  n 
)
inherited

reads characters into NULL delimited c string in contrast to the standard implementation, this does not care about newline characters in the input

virtual void modm::CharacterDisplay::setCursor ( uint8_t  column,
uint8_t  line 
)
pure virtual
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.

virtual void modm::CharacterDisplay::writeRaw ( char  c)
pure virtual

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