esp32-warm-water
esp32 based project for the control of a heating element based on temperature
font8x8_basic.h
Go to the documentation of this file.
1 
9 #ifndef MAIN_FONT8X8_BASIC_H
10 #define MAIN_FONT8X8_BASIC_H
11 
12 /*
13  Constant: font8x8_basic_tr
14  Contains an 90 digree transposed 8x8 font map for unicode points
15  U+0000 - U+007F (basic latin)
16 
17  To make it easy to use with SSD1306's GDDRAM mapping and API,
18  this constant is an 90 degree transposed.
19  The original version written by Marcel Sondaar is availble at:
20  https://github.com/dhepper/font8x8/blob/master/font8x8_basic.h
21 
22  Conversion is done via following procedure:
23 
24  for (int code = 0; code < 128; code++) {
25  uint8_t trans[8];
26  for (int w = 0; w < 8; w++) {
27  trans[w] = 0x00;
28  for (int b = 0; b < 8; b++) {
29  trans[w] |= ((font8x8_basic[code][b] & (1 << w)) >> w) << b;
30  }
31  }
32 
33  for (int w = 0; w < 8; w++) {
34  if (w == 0) { printf(" { "); }
35  printf("0x%.2X", trans[w]);
36  if (w < 7) { printf(", "); }
37  if (w == 7) { printf(" }, // U+00%.2X (%c)\n", code, code); }
38  }
39  }
40 */
41 
42 #ifdef CONFIG_SSID_FONT_BASIC
43 static uint8_t font8x8[128][8] = {
44  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul)
45  {0x00, 0x04, 0x02, 0xFF, 0x02, 0x04, 0x00, 0x00}, // U+0001 (Up Allow)
46  {0x00, 0x20, 0x40, 0xFF, 0x40, 0x20, 0x00, 0x00}, // U+0002 (Down Allow)
47  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003
48  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004
49  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005
50  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006
51  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007
52  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008
53  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009
54  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A
55  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B
56  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C
57  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D
58  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E
59  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F
60  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010
61  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011
62  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012
63  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013
64  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014
65  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015
66  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016
67  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017
68  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018
69  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019
70  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A
71  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B
72  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C
73  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D
74  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E
75  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F
76  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space)
77  {0x00, 0x00, 0x06, 0x5F, 0x5F, 0x06, 0x00, 0x00}, // U+0021 (!)
78  {0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x00, 0x00}, // U+0022 (")
79  {0x14, 0x7F, 0x7F, 0x14, 0x7F, 0x7F, 0x14, 0x00}, // U+0023 (#)
80  {0x24, 0x2E, 0x6B, 0x6B, 0x3A, 0x12, 0x00, 0x00}, // U+0024 ($)
81  {0x46, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x62, 0x00}, // U+0025 (%)
82  {0x30, 0x7A, 0x4F, 0x5D, 0x37, 0x7A, 0x48, 0x00}, // U+0026 (&)
83  {0x04, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (')
84  {0x00, 0x1C, 0x3E, 0x63, 0x41, 0x00, 0x00, 0x00}, // U+0028 (()
85  {0x00, 0x41, 0x63, 0x3E, 0x1C, 0x00, 0x00, 0x00}, // U+0029 ())
86  {0x08, 0x2A, 0x3E, 0x1C, 0x1C, 0x3E, 0x2A, 0x08}, // U+002A (*)
87  {0x08, 0x08, 0x3E, 0x3E, 0x08, 0x08, 0x00, 0x00}, // U+002B (+)
88  {0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00}, // U+002C (,)
89  {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // U+002D (-)
90  {0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00}, // U+002E (.)
91  {0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/)
92  {0x3E, 0x7F, 0x71, 0x59, 0x4D, 0x7F, 0x3E, 0x00}, // U+0030 (0)
93  {0x40, 0x42, 0x7F, 0x7F, 0x40, 0x40, 0x00, 0x00}, // U+0031 (1)
94  {0x62, 0x73, 0x59, 0x49, 0x6F, 0x66, 0x00, 0x00}, // U+0032 (2)
95  {0x22, 0x63, 0x49, 0x49, 0x7F, 0x36, 0x00, 0x00}, // U+0033 (3)
96  {0x18, 0x1C, 0x16, 0x53, 0x7F, 0x7F, 0x50, 0x00}, // U+0034 (4)
97  {0x27, 0x67, 0x45, 0x45, 0x7D, 0x39, 0x00, 0x00}, // U+0035 (5)
98  {0x3C, 0x7E, 0x4B, 0x49, 0x79, 0x30, 0x00, 0x00}, // U+0036 (6)
99  {0x03, 0x03, 0x71, 0x79, 0x0F, 0x07, 0x00, 0x00}, // U+0037 (7)
100  {0x36, 0x7F, 0x49, 0x49, 0x7F, 0x36, 0x00, 0x00}, // U+0038 (8)
101  {0x06, 0x4F, 0x49, 0x69, 0x3F, 0x1E, 0x00, 0x00}, // U+0039 (9)
102  {0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00}, // U+003A (:)
103  {0x00, 0x80, 0xE6, 0x66, 0x00, 0x00, 0x00, 0x00}, // U+003B (;)
104  {0x08, 0x1C, 0x36, 0x63, 0x41, 0x00, 0x00, 0x00}, // U+003C (<)
105  {0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x00, 0x00}, // U+003D (=)
106  {0x00, 0x41, 0x63, 0x36, 0x1C, 0x08, 0x00, 0x00}, // U+003E (>)
107  {0x02, 0x03, 0x51, 0x59, 0x0F, 0x06, 0x00, 0x00}, // U+003F (?)
108  {0x3E, 0x7F, 0x41, 0x5D, 0x5D, 0x1F, 0x1E, 0x00}, // U+0040 (@)
109  {0x7C, 0x7E, 0x13, 0x13, 0x7E, 0x7C, 0x00, 0x00}, // U+0041 (A)
110  {0x41, 0x7F, 0x7F, 0x49, 0x49, 0x7F, 0x36, 0x00}, // U+0042 (B)
111  {0x1C, 0x3E, 0x63, 0x41, 0x41, 0x63, 0x22, 0x00}, // U+0043 (C)
112  {0x41, 0x7F, 0x7F, 0x41, 0x63, 0x3E, 0x1C, 0x00}, // U+0044 (D)
113  {0x41, 0x7F, 0x7F, 0x49, 0x5D, 0x41, 0x63, 0x00}, // U+0045 (E)
114  {0x41, 0x7F, 0x7F, 0x49, 0x1D, 0x01, 0x03, 0x00}, // U+0046 (F)
115  {0x1C, 0x3E, 0x63, 0x41, 0x51, 0x73, 0x72, 0x00}, // U+0047 (G)
116  {0x7F, 0x7F, 0x08, 0x08, 0x7F, 0x7F, 0x00, 0x00}, // U+0048 (H)
117  {0x00, 0x41, 0x7F, 0x7F, 0x41, 0x00, 0x00, 0x00}, // U+0049 (I)
118  {0x30, 0x70, 0x40, 0x41, 0x7F, 0x3F, 0x01, 0x00}, // U+004A (J)
119  {0x41, 0x7F, 0x7F, 0x08, 0x1C, 0x77, 0x63, 0x00}, // U+004B (K)
120  {0x41, 0x7F, 0x7F, 0x41, 0x40, 0x60, 0x70, 0x00}, // U+004C (L)
121  {0x7F, 0x7F, 0x0E, 0x1C, 0x0E, 0x7F, 0x7F, 0x00}, // U+004D (M)
122  {0x7F, 0x7F, 0x06, 0x0C, 0x18, 0x7F, 0x7F, 0x00}, // U+004E (N)
123  {0x1C, 0x3E, 0x63, 0x41, 0x63, 0x3E, 0x1C, 0x00}, // U+004F (O)
124  {0x41, 0x7F, 0x7F, 0x49, 0x09, 0x0F, 0x06, 0x00}, // U+0050 (P)
125  {0x1E, 0x3F, 0x21, 0x71, 0x7F, 0x5E, 0x00, 0x00}, // U+0051 (Q)
126  {0x41, 0x7F, 0x7F, 0x09, 0x19, 0x7F, 0x66, 0x00}, // U+0052 (R)
127  {0x26, 0x6F, 0x4D, 0x59, 0x73, 0x32, 0x00, 0x00}, // U+0053 (S)
128  {0x03, 0x41, 0x7F, 0x7F, 0x41, 0x03, 0x00, 0x00}, // U+0054 (T)
129  {0x7F, 0x7F, 0x40, 0x40, 0x7F, 0x7F, 0x00, 0x00}, // U+0055 (U)
130  {0x1F, 0x3F, 0x60, 0x60, 0x3F, 0x1F, 0x00, 0x00}, // U+0056 (V)
131  {0x7F, 0x7F, 0x30, 0x18, 0x30, 0x7F, 0x7F, 0x00}, // U+0057 (W)
132  {0x43, 0x67, 0x3C, 0x18, 0x3C, 0x67, 0x43, 0x00}, // U+0058 (X)
133  {0x07, 0x4F, 0x78, 0x78, 0x4F, 0x07, 0x00, 0x00}, // U+0059 (Y)
134  {0x47, 0x63, 0x71, 0x59, 0x4D, 0x67, 0x73, 0x00}, // U+005A (Z)
135  {0x00, 0x7F, 0x7F, 0x41, 0x41, 0x00, 0x00, 0x00}, // U+005B ([)
136  {0x01, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00}, // U+005C (\‍)
137  {0x00, 0x41, 0x41, 0x7F, 0x7F, 0x00, 0x00, 0x00}, // U+005D (])
138  {0x08, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x08, 0x00}, // U+005E (^)
139  {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}, // U+005F (_)
140  {0x00, 0x00, 0x03, 0x07, 0x04, 0x00, 0x00, 0x00}, // U+0060 (`)
141  {0x20, 0x74, 0x54, 0x54, 0x3C, 0x78, 0x40, 0x00}, // U+0061 (a)
142  {0x41, 0x7F, 0x3F, 0x48, 0x48, 0x78, 0x30, 0x00}, // U+0062 (b)
143  {0x38, 0x7C, 0x44, 0x44, 0x6C, 0x28, 0x00, 0x00}, // U+0063 (c)
144  {0x30, 0x78, 0x48, 0x49, 0x3F, 0x7F, 0x40, 0x00}, // U+0064 (d)
145  {0x38, 0x7C, 0x54, 0x54, 0x5C, 0x18, 0x00, 0x00}, // U+0065 (e)
146  {0x48, 0x7E, 0x7F, 0x49, 0x03, 0x02, 0x00, 0x00}, // U+0066 (f)
147  {0x98, 0xBC, 0xA4, 0xA4, 0xF8, 0x7C, 0x04, 0x00}, // U+0067 (g)
148  {0x41, 0x7F, 0x7F, 0x08, 0x04, 0x7C, 0x78, 0x00}, // U+0068 (h)
149  {0x00, 0x44, 0x7D, 0x7D, 0x40, 0x00, 0x00, 0x00}, // U+0069 (i)
150  {0x60, 0xE0, 0x80, 0x80, 0xFD, 0x7D, 0x00, 0x00}, // U+006A (j)
151  {0x41, 0x7F, 0x7F, 0x10, 0x38, 0x6C, 0x44, 0x00}, // U+006B (k)
152  {0x00, 0x41, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x00}, // U+006C (l)
153  {0x7C, 0x7C, 0x18, 0x38, 0x1C, 0x7C, 0x78, 0x00}, // U+006D (m)
154  {0x7C, 0x7C, 0x04, 0x04, 0x7C, 0x78, 0x00, 0x00}, // U+006E (n)
155  {0x38, 0x7C, 0x44, 0x44, 0x7C, 0x38, 0x00, 0x00}, // U+006F (o)
156  {0x84, 0xFC, 0xF8, 0xA4, 0x24, 0x3C, 0x18, 0x00}, // U+0070 (p)
157  {0x18, 0x3C, 0x24, 0xA4, 0xF8, 0xFC, 0x84, 0x00}, // U+0071 (q)
158  {0x44, 0x7C, 0x78, 0x4C, 0x04, 0x1C, 0x18, 0x00}, // U+0072 (r)
159  {0x48, 0x5C, 0x54, 0x54, 0x74, 0x24, 0x00, 0x00}, // U+0073 (s)
160  {0x00, 0x04, 0x3E, 0x7F, 0x44, 0x24, 0x00, 0x00}, // U+0074 (t)
161  {0x3C, 0x7C, 0x40, 0x40, 0x3C, 0x7C, 0x40, 0x00}, // U+0075 (u)
162  {0x1C, 0x3C, 0x60, 0x60, 0x3C, 0x1C, 0x00, 0x00}, // U+0076 (v)
163  {0x3C, 0x7C, 0x70, 0x38, 0x70, 0x7C, 0x3C, 0x00}, // U+0077 (w)
164  {0x44, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0x44, 0x00}, // U+0078 (x)
165  {0x9C, 0xBC, 0xA0, 0xA0, 0xFC, 0x7C, 0x00, 0x00}, // U+0079 (y)
166  {0x4C, 0x64, 0x74, 0x5C, 0x4C, 0x64, 0x00, 0x00}, // U+007A (z)
167  {0x08, 0x08, 0x3E, 0x77, 0x41, 0x41, 0x00, 0x00}, // U+007B ({)
168  {0x00, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, 0x00}, // U+007C (|)
169  {0x41, 0x41, 0x77, 0x3E, 0x08, 0x08, 0x00, 0x00}, // U+007D (})
170  {0x02, 0x03, 0x01, 0x03, 0x02, 0x03, 0x01, 0x00}, // U+007E (~)
171  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F
172 };
173 #endif // CONFIG_SSID_FONT_BASIC
174 
175 #endif /* MAIN_FONT8X8_BASIC_H */