25 #ifndef ACE_SEGMENT_WRITER_CHAR_WRITER_H
26 #define ACE_SEGMENT_WRITER_CHAR_WRITER_H
30 #include "PatternWriter.h"
32 namespace ace_segment {
41 const uint8_t kPatternUnknown = 0b00000000;
44 const uint8_t kNumCharPatterns = 128;
47 extern const uint8_t kCharPatterns[kNumCharPatterns];
57 template <
typename T_LED_MODULE>
71 const uint8_t charPatterns[] = kCharPatterns,
72 uint8_t numChars = kNumCharPatterns
75 mCharPatterns(charPatterns),
80 T_LED_MODULE&
ledModule() {
return mPatternWriter.ledModule(); }
86 uint8_t
size()
const {
return mPatternWriter.size(); }
92 void home() { mPatternWriter.home(); }
101 uint8_t pattern = ((uint8_t) c < mNumChars)
102 ? pgm_read_byte(&mCharPatterns[(uint8_t) c])
108 void clear() { mPatternWriter.clear(); }
120 const uint8_t*
const mCharPatterns;
121 uint8_t
const mNumChars;
The CharWriter supports mapping of an 8-bit character set to segment patterns supported by LedModule.
uint8_t getPattern(char c) const
Get segment pattern for character 'c'.
void writeChar(char c)
Write the character at the specified position.
T_LED_MODULE & ledModule()
Get the underlying LedModule.
void home()
Set the cursor to the beginning.
void clear()
Clear the entire display.
CharWriter(PatternWriter< T_LED_MODULE > &patternWriter, const uint8_t charPatterns[]=kCharPatterns, uint8_t numChars=kNumCharPatterns)
Constructor.
uint8_t size() const
Return the number of digits supported by this display instance.
PatternWriter< T_LED_MODULE > & patternWriter()
Get the underlying PatternWriter.
void clearToEnd()
Clear the display from pos to the end.
uint8_t getNumChars() const
Get number of characters in current character set.
Write LED segment patterns to the underlying LedModule.