mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-22 15:46:14 +01:00
Update SSD1306Ascii.cpp
Add remaining extended graphics characters (still no international characters though.
This commit is contained in:
parent
c2983efebb
commit
711ad6f030
|
@ -236,11 +236,6 @@ void SSD1306AsciiWire::setRowNative(uint8_t line) {
|
||||||
size_t SSD1306AsciiWire::writeNative(uint8_t ch) {
|
size_t SSD1306AsciiWire::writeNative(uint8_t ch) {
|
||||||
const uint8_t* base = m_font;
|
const uint8_t* base = m_font;
|
||||||
|
|
||||||
if (ch < m_fontFirstChar || ch >= (m_fontFirstChar + m_fontCharCount))
|
|
||||||
return 0;
|
|
||||||
// Check if character would be partly or wholly off the display
|
|
||||||
if (m_col + fontWidth > m_displayWidth)
|
|
||||||
return 0;
|
|
||||||
#if defined(NOLOWERCASE)
|
#if defined(NOLOWERCASE)
|
||||||
// Adjust if lowercase is missing
|
// Adjust if lowercase is missing
|
||||||
if (ch >= 'a') {
|
if (ch >= 'a') {
|
||||||
|
@ -250,6 +245,12 @@ size_t SSD1306AsciiWire::writeNative(uint8_t ch) {
|
||||||
ch -= 26; // Allow for missing lowercase letters
|
ch -= 26; // Allow for missing lowercase letters
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (ch < m_fontFirstChar || ch >= (m_fontFirstChar + m_fontCharCount))
|
||||||
|
return 0;
|
||||||
|
// Check if character would be partly or wholly off the display
|
||||||
|
if (m_col + fontWidth > m_displayWidth)
|
||||||
|
return 0;
|
||||||
|
|
||||||
ch -= m_fontFirstChar;
|
ch -= m_fontFirstChar;
|
||||||
base += fontWidth * ch;
|
base += fontWidth * ch;
|
||||||
// Before using buffer, wait for last request to complete
|
// Before using buffer, wait for last request to complete
|
||||||
|
@ -406,8 +407,8 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x38, 0x44, 0xc6, 0x44, 0x20, 0x00, // cent 0x9b
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x44, 0x6e, 0x59, 0x49, 0x62, 0x00, // £ 0x9c
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
|
@ -425,27 +426,27 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x10, 0x28, 0x54, 0x28, 0x44, 0x00, // <<
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x44, 0x28, 0x54, 0x28, 0x10, 0x00, // >>
|
||||||
// Extended characters 176-180
|
// Extended characters 176-180
|
||||||
0x92, 0x00, 0x49, 0x00, 0x24, 0x00, // Light grey 0xb0
|
0x92, 0x00, 0x49, 0x00, 0x24, 0x00, // Light grey 0xb0
|
||||||
0xcc, 0x55, 0xcc, 0x55, 0xcc, 0x55, // Mid grey 0xb1
|
0xaa, 0x44, 0xaa, 0x11, 0xaa, 0x55, // Mid grey 0xb1
|
||||||
0x6a, 0xff, 0xb6, 0xff, 0xdb, 0xff, // Dark grey 0xb2
|
0x6d, 0xff, 0xb6, 0xff, 0xdb, 0xff, // Dark grey 0xb2
|
||||||
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, // Vertical line 0xb3
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, // Vertical line 0xb3
|
||||||
0x08, 0x08, 0x08, 0xff, 0x00, 0x00, // Vertical line with left spur 0xb4
|
0x08, 0x08, 0x08, 0xff, 0x00, 0x00, // Vertical line with left spur 0xb4
|
||||||
|
|
||||||
0x14, 0x14, 0xfe, 0x00, 0xff, 0x00, // Vertical line with double left spur 0xb9
|
0x14, 0x14, 0x14, 0xff, 0x00, 0x00, // Vertical line with double left spur 0xb5
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented Double vertical line with single left spur
|
0x08, 0x08, 0xff, 0x00, 0xff, 0x00, // Double vertical line with single left spur
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x08, 0x08, 0xf8, 0x08, 0xf8, 0x00, // Top right corner, single horiz, double vert
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x14, 0x14, 0x14, 0xfc, 0x00, 0x00, // Top right corner, double horiz, single vert
|
||||||
|
|
||||||
// Extended characters 185-190
|
// Extended characters 185-190
|
||||||
0x28, 0x28, 0xef, 0x00, 0xff, 0x00, // Double vertical line with double left spur 0xb9
|
0x14, 0x14, 0xf7, 0x00, 0xff, 0x00, // Double vertical line with double left spur 0xb9
|
||||||
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, // Double vertical line 0xba
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, // Double vertical line 0xba
|
||||||
0x14, 0x14, 0xf4, 0x04, 0xfc, 0x00, // Double top right corner 0xbb
|
0x14, 0x14, 0xf4, 0x04, 0xfc, 0x00, // Double top right corner 0xbb
|
||||||
0x14, 0x14, 0x17, 0x10, 0x1f, 0x00, // Double bottom right corner 0xbc
|
0x14, 0x14, 0x17, 0x10, 0x1f, 0x00, // Double bottom right corner 0xbc
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented 0xbd
|
0x08, 0x08, 0x0f, 0x08, 0x0f, 0x00, // Bottom right corner, single horiz, double vert 0xbd
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented 0xbe
|
0x14, 0x14, 0x14, 0x1f, 0x00, 0x00, // Bottom right corner, double horiz, single vert 0xbe
|
||||||
|
|
||||||
// Extended characters 191-199
|
// Extended characters 191-199
|
||||||
0x08, 0x08, 0x08, 0xf8, 0x00, 0x00, // Top right corner 0xbf
|
0x08, 0x08, 0x08, 0xf8, 0x00, 0x00, // Top right corner 0xbf
|
||||||
|
@ -455,8 +456,8 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x00, 0x00, 0x00, 0xff, 0x08, 0x08, // Vertical line with right spur 0xc3
|
0x00, 0x00, 0x00, 0xff, 0x08, 0x08, // Vertical line with right spur 0xc3
|
||||||
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, // Horizontal line 0xc4
|
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, // Horizontal line 0xc4
|
||||||
0x08, 0x08, 0x08, 0xff, 0x08, 0x08, // Cross 0xc5
|
0x08, 0x08, 0x08, 0xff, 0x08, 0x08, // Cross 0xc5
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0xff, 0x14, 0x14, // Vertical line double right spur 0xc6
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x08, // Double vertical line single right spur 0xc7
|
||||||
|
|
||||||
// Extended characters 200-206
|
// Extended characters 200-206
|
||||||
0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, // Double bottom left corner 0xc8
|
0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, // Double bottom left corner 0xc8
|
||||||
|
@ -467,16 +468,16 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // Double horizontal line 0xcd
|
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // Double horizontal line 0xcd
|
||||||
0x14, 0x14, 0xf7, 0x00, 0xf7, 0x14, // Double cross 0xce
|
0x14, 0x14, 0xf7, 0x00, 0xf7, 0x14, // Double cross 0xce
|
||||||
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x14, 0x14, 0x14, 0x17, 0x14, 0x14, // Double horizontal line single upward spur 0xcf
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented 0xd0
|
0x08, 0x08, 0x0f, 0x08, 0x0f, 0x08, // Horiz single line with double upward spur 0xd0
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x14, 0x14, 0x14, 0xf4, 0x14, 0x14, // Horiz double line with single downward spur 0xd1
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x08, 0x08, 0xf8, 0x08, 0xf8, 0x08, // Horiz single line with double downward spur 0xd2
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x0f, 0x08, 0x0f, 0x08, // Bottom left corner, double vert single horiz 0xd3
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x1f, 0x14, 0x14, // Bottom left corner, single vert double horiz 0xd4
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0xfc, 0x14, 0x14, // Top left corner, single vert double horiz 0xd5
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0xf8, 0x08, 0xf8, 0x08, // Top left corner, double vert single horiz 0xd6
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x08, 0x08, 0xff, 0x00, 0xff, 0x08, // Cross, double vert single horiz 0xd7
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x14, 0x14, 0x14, 0xf7, 0x14, 0x14, // Cross, single vert double horiz 0xd8
|
||||||
|
|
||||||
// Extended characters 217-223
|
// Extended characters 217-223
|
||||||
0x08, 0x08, 0x08, 0x0f, 0x00, 0x00, // Bottom right corner 0xd9
|
0x08, 0x08, 0x08, 0x0f, 0x00, 0x00, // Bottom right corner 0xd9
|
||||||
|
@ -487,10 +488,10 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, // Right half block 0xde
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, // Right half block 0xde
|
||||||
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, // Top half block 0xdf
|
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, // Top half block 0xdf
|
||||||
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented 0xe0
|
0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, // Bottom Left block 0xe0
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, // Bottom Right block
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, // Top left block
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, // Top right block 0xe3
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
|
@ -511,9 +512,8 @@ const uint8_t FLASH SSD1306AsciiWire::System6x8[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Not implemented
|
||||||
// Extended character 248
|
// Extended character 248
|
||||||
0x00, 0x06, 0x09, 0x09, 0x06, 0x00, // degree symbol 0xf8
|
0x00, 0x06, 0x09, 0x09, 0x06, 0x00 // degree symbol 0xf8
|
||||||
#endif
|
#endif
|
||||||
0x00
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint8_t SSD1306AsciiWire::m_fontCharCount = sizeof(System6x8) / 6;
|
const uint8_t SSD1306AsciiWire::m_fontCharCount = sizeof(System6x8) / 6;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user