Display_Lib_RPI 2.3.0
A C++ Library to connect electronic displays to Linux single board computers.
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Print Class Referenceabstract

Polymorphic print class to print many data types by wrapping write function in the graphics class's. More...

#include <print_data_RDL.hpp>

Inheritance diagram for Print:
Inheritance graph
[legend]

Public Types

enum  BaseNum : uint8_t { RDL_DEC = 10 , RDL_HEX = 16 , RDL_OCT = 8 , RDL_BIN = 2 }
 

Public Member Functions

int getWriteError ()
 gets the error flag status, zero no error
 
void clearWriteError ()
 clears the error flag by setting it to zero
 
virtual size_t write (uint8_t)=0
 define in the sub class
 
virtual size_t write (const uint8_t *buffer, size_t size)
 define in the sub class
 
size_t write (const char *str)
 Writes a string to the output.
 
size_t write (const char *buffer, size_t size)
 Writes a buffer of a specified size to the output.
 
virtual int availableForWrite ()
 define in the sub class
 
size_t print (const char[])
 print an array
 
size_t print (char)
 print an character
 
size_t print (int, int=RDL_DEC)
 print an integer of base number system
 
size_t print (unsigned int, int=RDL_DEC)
 print an unsigned integer of base number system
 
size_t print (long, int=RDL_DEC)
 print an long integer of base number system
 
size_t print (unsigned long, int=RDL_DEC)
 print an unsigned long integer of base number system
 
size_t print (double, int=2)
 print an double
 
size_t print (const std::string &)
 print an C++ string object
 
size_t println (const char[])
 Prints a character array followed by a newline.
 
size_t println (char)
 print an character followed by new line
 
size_t println (int, int=RDL_DEC)
 print an integer of base number system followed by new line
 
size_t println (unsigned int, int=RDL_DEC)
 print an unsigned integer of base number system followed by new line
 
size_t println (long, int=RDL_DEC)
 print an long integer of base number system followed by new line
 
size_t println (unsigned long, int=RDL_DEC)
 print an unsigned long integer of base number system followed by new line
 
size_t println (double, int=2)
 print an double
 
size_t println (void)
 Goto to new line.
 
size_t println (const std::string &s)
 print an C++ string object followed by new line
 
template<typename T >
size_t print (const std::vector< T > &v, int format=defaultFormat< T >())
 Print a vector of any type.
 
template<typename T >
size_t println (const std::vector< T > &vec, int format=defaultFormat< T >())
 Print a vector of elements followed by a newline.
 
template<typename T , size_t N>
size_t print (const std::array< T, N > &arr, int format=defaultFormat< T >())
 Print a std::array of any type.
 
template<typename T , size_t N>
size_t println (const std::array< T, N > &arr, int format=defaultFormat< T >())
 Print a std::array of elements followed by a newline.
 

Protected Member Functions

void setWriteError (int err=0)
 

Private Member Functions

size_t printNumber (unsigned long, uint8_t)
 Used internally to parse and print number.
 
size_t printFloat (double, uint8_t)
 Used internally to parse float.
 
template<typename T >
std::string formatElement (const T &element, int format)
 Called from vector template Format an element based on its type and the format parameter.
 

Static Private Member Functions

template<typename T >
static constexpr int defaultFormat ()
 Called from vector & string template , Get the default format for a given type.
 

Private Attributes

int _ErrorFlag
 

Detailed Description

Polymorphic print class to print many data types by wrapping write function in the graphics class's.

Using function overloading and templates for the vector definitions. Supports integers floats Characters , character arrays, string objects and vectors.

Member Enumeration Documentation

◆ BaseNum

Base number type enum

Enumerator
RDL_DEC 

Format the passed integer in Decimal format

RDL_HEX 

Format the passed integer in Hexadecimal format

RDL_OCT 

Format the passed integer in Octal format

RDL_BIN 

Format the passed integer in Binary format

Member Function Documentation

◆ availableForWrite()

int Print::availableForWrite ( )
virtual

define in the sub class

Gets the number of bytes available for writing. default to zero, meaning "a single write may block" should be overriden by subclasses with buffering.

Returns
The maximum number of bytes that can be written.

◆ defaultFormat()

template<typename T >
static constexpr int Print::defaultFormat ( )
inlinestaticconstexprprivate

Called from vector & string template , Get the default format for a given type.

Template Parameters
TType of the element
Returns
Default format

◆ formatElement()

template<typename T >
std::string Print::formatElement ( const T element,
int  format 
)
inlineprivate

Called from vector template Format an element based on its type and the format parameter.

Template Parameters
TType of the element
Parameters
elementThe element to format
formatFormat specifier
Returns
Formatted string representation of the element

◆ getWriteError()

int Print::getWriteError ( )

gets the error flag status, zero no error

Returns
the errorFlag value

◆ print() [1/10]

size_t Print::print ( char  c)

print an character

Parameters
cthe character to print
Returns
passes character to write

◆ print() [2/10]

size_t Print::print ( const char  str[])

print an array

Parameters
strAn array of characters
Returns
passes string to write

◆ print() [3/10]

template<typename T , size_t N>
size_t Print::print ( const std::array< T, N > &  arr,
int  format = defaultFormat<T>() 
)
inline

Print a std::array of any type.

Template Parameters
TType of elements in the array.
NSize of the array.
Parameters
arrThe std::array to print.
formatFormat specifier:
  • For floats/doubles: Number of decimal places (default is 2).
  • For ints/longs: Conversion base (default is RDL_DEC for decimal).
Returns
Number of characters written.

◆ print() [4/10]

size_t Print::print ( const std::string &  s)

print an C++ string object

Parameters
sstring object
Returns
converts to c style string and passes to write

◆ print() [5/10]

template<typename T >
size_t Print::print ( const std::vector< T > &  v,
int  format = defaultFormat<T>() 
)
inline

Print a vector of any type.

Template Parameters
TType of elements in the vector
Parameters
vVector of elements to print
formatFormat specifier:
  • For floats/doubles: Number of decimal places (default is 2).
  • For ints/longs: Conversion base (default is RDL_DEC for decimal).
Returns
Number of characters written

◆ print() [6/10]

size_t Print::print ( double  n,
int  digits = 2 
)

print an double

Parameters
ninteger to print
digitsnumber of digits to print

print(3.7468,2) = will print 3.75 on display

Returns
passes to printFLoat

◆ print() [7/10]

size_t Print::print ( int  n,
int  base = RDL_DEC 
)

print an integer of base number system

Parameters
ninteger to print
basethe base number system to use (BIN HEX OCT DEC)
Returns
calls print(long)

◆ print() [8/10]

size_t Print::print ( long  n,
int  base = RDL_DEC 
)

print an long integer of base number system

Parameters
ninteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
formats negative number and passes to PrintNumber or write

◆ print() [9/10]

size_t Print::print ( unsigned int  n,
int  base = RDL_DEC 
)

print an unsigned integer of base number system

Parameters
ninteger to print
basethe base number system to use (BIN HEX OCT DEC)
Returns
calls print( unsigned long)

◆ print() [10/10]

size_t Print::print ( unsigned long  n,
int  base = RDL_DEC 
)

print an unsigned long integer of base number system

Parameters
ninteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
passes to PrintNumber or write

◆ printFloat()

size_t Print::printFloat ( double  number,
uint8_t  digits 
)
private

Used internally to parse float.

Parameters
numberThe floating point number
digitsNumber of precision digits to print
Returns
total number of characters printed

◆ println() [1/10]

size_t Print::println ( char  c)

print an character followed by new line

Parameters
cthe character to print
Returns
Number of characters printed, including the newline.

◆ println() [2/10]

size_t Print::println ( const char  c[])

Prints a character array followed by a newline.

Parameters
cPointer to a null-terminated character array.
Returns
Number of characters printed, including the newline.

◆ println() [3/10]

template<typename T , size_t N>
size_t Print::println ( const std::array< T, N > &  arr,
int  format = defaultFormat<T>() 
)
inline

Print a std::array of elements followed by a newline.

Template Parameters
TType of elements in the array.
NSize of the array.
Parameters
arrThe std::array to print.
formatFormat specifier:
  • For floats/doubles: Number of decimal places (default is 2).
  • For ints/longs: Conversion base (default is RDL_DEC for decimal).
Returns
Number of characters written.

◆ println() [4/10]

size_t Print::println ( const std::string &  s)

print an C++ string object followed by new line

Parameters
sstring object
Returns
Number of characters printed, including the newline.

◆ println() [5/10]

template<typename T >
size_t Print::println ( const std::vector< T > &  vec,
int  format = defaultFormat<T>() 
)
inline

Print a vector of elements followed by a newline.

Template Parameters
TType of the elements in the vector
Parameters
vecThe vector of elements to print
formatFormat specifier (e.g., base for integers or precision for floats)
Returns
Number of characters printed

◆ println() [6/10]

size_t Print::println ( double  num,
int  digits = 2 
)

print an double

Parameters
numfloat to print followed by new line
digitsnumber of digits to print

print(3.7468,2) = will print 3.75 on display

Returns
Number of characters printed, including the newline.

◆ println() [7/10]

size_t Print::println ( int  num,
int  base = RDL_DEC 
)

print an integer of base number system followed by new line

Parameters
numinteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
Number of characters printed, including the newline.

◆ println() [8/10]

size_t Print::println ( long  num,
int  base = RDL_DEC 
)

print an long integer of base number system followed by new line

Parameters
numinteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
Number of characters printed, including the newline.

◆ println() [9/10]

size_t Print::println ( unsigned int  num,
int  base = RDL_DEC 
)

print an unsigned integer of base number system followed by new line

Parameters
numinteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
Number of characters printed, including the newline.

◆ println() [10/10]

size_t Print::println ( unsigned long  num,
int  base = RDL_DEC 
)

print an unsigned long integer of base number system followed by new line

Parameters
numinteger to print
basethe base number system to use (BIN HEX OCT RDL_DEC)
Returns
Number of characters printed, including the newline.

◆ printNumber()

size_t Print::printNumber ( unsigned long  n,
uint8_t  base 
)
private

Used internally to parse and print number.

Parameters
nNumber to parse
baseto print to Binary hexadecimal etc
Returns
passes the formatted string to write

◆ setWriteError()

void Print::setWriteError ( int  error = 0)
protected

sets error flag to value

Parameters
errorerror to set errorFlag

◆ write() [1/4]

size_t Print::write ( const char buffer,
size_t  size 
)

Writes a buffer of a specified size to the output.

Parameters
bufferPointer to the data buffer.
sizeNumber of bytes to write.
Returns
The number of bytes written.

◆ write() [2/4]

size_t Print::write ( const char str)

Writes a string to the output.

Parameters
strPointer to the character array.
Returns
The number of bytes written. Returns 0 if str is nullptr.

◆ write() [3/4]

size_t Print::write ( const uint8_t buffer,
size_t  size 
)
virtual

define in the sub class

default implementation: may be overridden

Parameters
bufferof ints
size
Returns
total number of characters printed

◆ write() [4/4]

virtual size_t Print::write ( uint8_t  )
pure virtual

define in the sub class

Implemented in HD44780PCF8574LCD, bicolor_graphics, and color16_graphics.

Member Data Documentation

◆ _ErrorFlag

int Print::_ErrorFlag
private

class Error flag , zero no error


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