SegLCDLib
Loading...
Searching...
No Matches
SegLCD_HT1621_LCM88128.h
Go to the documentation of this file.
1#ifndef SEGLCD_HT1621_LCM88128_H
2#define SEGLCD_HT1621_LCM88128_H
3
4#include <SegDriver_HT1621.h>
5
18 public:
19 typedef enum : uint32_t {
20 // Address 0x00
21 UNIT_LEFT_KILO_PREFIX = (1UL << 0), // 0x00:0x01
22
23 // Address 0x06
24 UNIT_LEFT_HZ = (1UL << 1), // 0x06:0x01
25
26 // Address 0x08
27 UNIT_LEFT_WATT = (1UL << 2), // 0x08:0x80
28 UNIT_LEFT_AMPERE = (1UL << 3), // 0x08:0x40
29 UNIT_LEFT_VOLT = (1UL << 4), // 0x08:0x20
30 UNIT_LEFT_DEGREE_SLASH = (1UL << 5), // 0x08:0x10 (slash only)
31 UNIT_LEFT_DEGREE = (1UL << 6), // 0x08:0x02 (degree circle only)
32 UNIT_LEFT_CELSIUS = (1UL << 7), // 0x08:0x01
35 UNIT_CENTER_HOUR = (1UL << 8), // 0x08:0x08
36 UNIT_CENTER_MINUTE = (1UL << 9), // 0x08:0x04
37
38 // Address 0x0E
39 UNIT_RIGHT_KILO_PREFIX = (1UL << 10), // 0x0E:0x01
40
41 // Address 0x14
42 UNIT_RIGHT_HZ = (1UL << 11), // 0x14:0x01
43
44 // Address 0x16
45 UNIT_RIGHT_WATT = (1UL << 12), // 0x16:0x80
46 UNIT_RIGHT_AMPERE = (1UL << 13), // 0x16:0x40
47 UNIT_RIGHT_VOLT = (1UL << 14), // 0x16:0x20
48 UNIT_RIGHT_PERCENT = (1UL << 15), // 0x16:0x10
49 } UnitFlags;
50
51 typedef enum : uint32_t {
52 // Address 0x00
53 LABEL_AC = (1UL << 0), // 0x00:0x40
54 LABEL_PV = (1UL << 1), // 0x00:0x20
55 LABEL_INV = (1UL << 2), // 0x00:0x10
56 LABEL_INPUT = (1UL << 3), // 0x00:0x08
57 LABEL_LEFT_BATT = (1UL << 4), // 0x00:0x04
58 LABEL_WP = (1UL << 5), // 0x00:0x80
59 LABEL_TEMP = (1UL << 6), // 0x00:0x02
60
61 // Address 0x0E
62 LABEL_OUTPUT = (1UL << 7), // 0x0E:0x08
63 LABEL_RIGHT_BATT = (1UL << 8), // 0x0E:0x04
64 LABEL_LOAD = (1UL << 9), // 0x0E:0x02
65 LABEL_ERROR = (1UL << 10), // 0x0E:0x40
66
67 // Address 0x16
68 LABEL_OVERLOAD = (1UL << 11), // 0x16:0x08
69 LABEL_BYPASS = (1UL << 12), // 0x16:0x02
70
71 // Address 0x1A
72 LABEL_BATT_SLA = (1UL << 13), // 0x1A:0x40
73 LABEL_BATT_LI = (1UL << 14), // 0x1A:0x80
74 LABEL_ECO = (1UL << 15), // 0x1A:0x01
75
76 // Address 0x18
77 LABEL_P = (1UL << 17), // 0x18:0x10
78
79 // Address 0x1C
80 LABEL_CHARGING = (1UL << 18), // 0x1C:0x80
81 } LabelFlags;
82
83 typedef enum : uint32_t {
84 // Address 0x0E
85 SYMBOL_CLOCK = (1UL << 0), // 0x0E:0x10
86 SYMBOL_MAINTENANCE = (1UL << 1), // 0x0E:0x20
87 SYMBOL_WARNING_TRIANGLE = (1UL << 2), // 0x0E:0x80
88
89 // Address 0x16
90 SYMBOL_UNDERLINES = (1UL << 3), // 0x16:0x01
91 SYMBOL_MUTE = (1UL << 4), // 0x16:0x04
92
93 // Address 0x0C
94 SYMBOL_CENTER_FRAME = (1UL << 5), // 0x0C:0x01
95
96 // Address 0x18
97 SYMBOL_BULB = (1UL << 6), // 0x18:0x40
98 SYMBOL_LINE_DCAC_TO_LOAD = (1UL << 7), // 0x18:0x20
99
100 // Address 0x1A
101 SYMBOL_LINE_ACDC_TO_DCAC = (1UL << 8), // 0x1A:0x02
102 SYMBOL_LINE_ACDC_TO_BATT = (1UL << 9), // 0x1A:0x04
103 SYMBOL_LINE_BATT_TO_DCAC = (1UL << 10), // 0x1A:0x08
104 SYMBOL_LINE_AC_TO_LOAD = (1UL << 11), // 0x1A:0x10
105 SYMBOL_DC_AC_SYMBOL = (1UL << 12), // 0x1A:0x20
106
107 // Address 0x1C
108 SYMBOL_LINE_PV_TO_ACDC = (1UL << 13), // 0x1C:0x10
109 SYMBOL_AC_DC_SYMBOL = (1UL << 14), // 0x1C:0x20
110
111 // Address 0x1E
112 SYMBOL_LINE_WIND_TO_ACDC = (1UL << 15), // 0x1E:0x10
113 SYMBOL_LINE_AC_TO_ACDC = (1UL << 16), // 0x1E:0x20
114 SYMBOL_AC_SYMBOL = (1UL << 17), // 0x1E:0x80
115 SYMBOL_WIND = (1UL << 18), // 0x1E:0x40
116 } SymbolFlags;
117
118 SegLCD_HT1621_LCM88128(uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read = -1);
119 void init() override;
120 void setBatteryLevel(uint8_t level);
121 void setLoadLevel(uint8_t level);
122 void setPVLevel(uint8_t level);
123 void setUnits(uint32_t units);
124 void clearUnits(uint32_t units);
125 void setLabels(uint32_t labels);
126 void clearLabels(uint32_t labels);
127 void setSymbols(uint32_t symbols);
128 void clearSymbols(uint32_t symbols);
129 void setClockSymbol(bool state, uint8_t index = 0);
130 void setMaintenanceSymbol(bool state, uint8_t index = 0);
131 void setWarningSymbol(bool state, uint8_t index = 0);
132 void setMuteSymbol(bool state, uint8_t index = 0);
133 size_t write(uint8_t ch) override;
134
135 private:
136
137 // Unit bit constants — address 0x00
138 static constexpr uint8_t UNIT_BIT_LEFT_KILO_PREFIX = 0x01;
139
140 // Unit bit constants — address 0x06
141 static constexpr uint8_t UNIT_BIT_LEFT_HZ = 0x01;
142
143 // Unit bit constants — address 0x08
144 static constexpr uint8_t UNIT_BIT_LEFT_WATT = 0x80;
145 static constexpr uint8_t UNIT_BIT_LEFT_AMPERE = 0x40;
146 static constexpr uint8_t UNIT_BIT_LEFT_VOLT = 0x20;
147 static constexpr uint8_t UNIT_BIT_LEFT_DEGREE_SLASH = 0x10;
148 static constexpr uint8_t UNIT_BIT_LEFT_DEGREE = 0x02; // degree circle only
149 static constexpr uint8_t UNIT_BIT_LEFT_CELSIUS = 0x01;
150 static constexpr uint8_t UNIT_BIT_CENTER_HOUR = 0x08;
151 static constexpr uint8_t UNIT_BIT_CENTER_MINUTE = 0x04;
152
155
156 // Unit bit constants — address 0x0E
157 static constexpr uint8_t UNIT_BIT_RIGHT_KILO_PREFIX = 0x01;
158
159 // Unit bit constants — address 0x14
160 static constexpr uint8_t UNIT_BIT_RIGHT_HZ = 0x01;
161
162 // Unit bit constants — address 0x16
163 static constexpr uint8_t UNIT_BIT_RIGHT_WATT = 0x80;
164 static constexpr uint8_t UNIT_BIT_RIGHT_AMPERE = 0x40;
165 static constexpr uint8_t UNIT_BIT_RIGHT_VOLT = 0x20;
166 static constexpr uint8_t UNIT_BIT_RIGHT_PERCENT = 0x10;
167
168 // Label bit constants — address 0x00
169 static constexpr uint8_t LABEL_BIT_TEMP = 0x02;
170 static constexpr uint8_t LABEL_BIT_AC = 0x40;
171 static constexpr uint8_t LABEL_BIT_PV = 0x20;
172 static constexpr uint8_t LABEL_BIT_INV = 0x10;
173 static constexpr uint8_t LABEL_BIT_INPUT = 0x08;
174 static constexpr uint8_t LABEL_BIT_LEFT_BATT = 0x04;
175 static constexpr uint8_t LABEL_BIT_WP = 0x80;
176
177 // Label bit constants — address 0x0E
178 static constexpr uint8_t LABEL_BIT_OUTPUT = 0x08;
179 static constexpr uint8_t LABEL_BIT_RIGHT_BATT = 0x04;
180 static constexpr uint8_t LABEL_BIT_LOAD = 0x02;
181 static constexpr uint8_t LABEL_BIT_ERROR = 0x40;
182
183 // Label bit constants — address 0x16
184 static constexpr uint8_t LABEL_BIT_OVERLOAD = 0x08;
185 static constexpr uint8_t LABEL_BIT_BYPASS = 0x02;
186
187 // Label bit constants — address 0x1A
188 static constexpr uint8_t LABEL_BIT_BATT_SLA = 0x40;
189 static constexpr uint8_t LABEL_BIT_BATT_LI = 0x80;
190 static constexpr uint8_t LABEL_BIT_ECO = 0x01;
191
192 // Label bit constants — address 0x18
193 static constexpr uint8_t LABEL_BIT_P = 0x10;
194
195 // Label bit constants — address 0x1C
196 static constexpr uint8_t LABEL_BIT_CHARGING = 0x80;
197
198 // Symbol bit constants
199 static constexpr uint8_t SYMBOL_BIT_CLOCK = 0x10;
200 static constexpr uint8_t SYMBOL_BIT_MAINTENANCE = 0x20;
201 static constexpr uint8_t SYMBOL_BIT_WARNING_TRIANGLE = 0x80;
202 static constexpr uint8_t SYMBOL_BIT_UNDERLINES = 0x01;
203 static constexpr uint8_t SYMBOL_BIT_MUTE = 0x04;
204 static constexpr uint8_t SYMBOL_BIT_CENTER_FRAME = 0x01;
205 static constexpr uint8_t SYMBOL_BIT_BULB = 0x40;
206 static constexpr uint8_t SYMBOL_BIT_LINE_DCAC_TO_LOAD = 0x20;
207 static constexpr uint8_t SYMBOL_BIT_LINE_ACDC_TO_DCAC = 0x02;
208 static constexpr uint8_t SYMBOL_BIT_LINE_ACDC_TO_BATT = 0x04;
209 static constexpr uint8_t SYMBOL_BIT_LINE_BATT_TO_DCAC = 0x08;
210 static constexpr uint8_t SYMBOL_BIT_LINE_AC_TO_LOAD = 0x10;
211 static constexpr uint8_t SYMBOL_BIT_DC_AC_SYMBOL = 0x20;
212 static constexpr uint8_t SYMBOL_BIT_LINE_PV_TO_ACDC = 0x10;
213 static constexpr uint8_t SYMBOL_BIT_AC_DC_SYMBOL = 0x20;
214 static constexpr uint8_t SYMBOL_BIT_LINE_WIND_TO_ACDC = 0x10;
215 static constexpr uint8_t SYMBOL_BIT_LINE_AC_TO_ACDC = 0x20;
216 static constexpr uint8_t SYMBOL_BIT_WIND = 0x40;
217 static constexpr uint8_t SYMBOL_BIT_AC_SYMBOL = 0x80;
218
219 static constexpr uint8_t RAM_SIZE = 16;
220 static constexpr uint8_t DIGITS = 8;
221
222 static constexpr uint8_t DECIMAL_DIGITS[5] = {0, 1, 3, 5, 6};
223 static constexpr uint8_t DECIMAL_POINT_BIT = 0x01;
224 static constexpr int8_t DECIMAL_COL_OFFSET = -1;
225
226 // Battery level constants
227 static constexpr uint8_t MAX_BATTERY_LEVEL = 5;
228 static constexpr uint8_t BATTERY_MASK = 0x4F;
229 static constexpr uint8_t BATTERY_LEVEL_ADR = 0x1C;
230
231 // Load level constants
232 static constexpr uint8_t MAX_LOAD_LEVEL = 5;
233 static constexpr uint8_t LOAD_MASK = 0x8F;
234 static constexpr uint8_t LOAD_LEVEL_ADR = 0x18;
235
236 // PV level constants
237 static constexpr uint8_t MAX_PV_LEVEL = 4;
238 static constexpr uint8_t PV_MASK = 0x0F;
239 static constexpr uint8_t PV_LEVEL_ADR = 0x1E;
240
241 // Label/Symbol mapping structures
242 struct FlagBit {
243 uint32_t flag;
244 uint8_t bit;
245 };
246
248 uint8_t address;
249 FlagBit bits[9]; // terminated by {0, 0}
250 };
251
252 static const AddressMapping* _getUnitMap(size_t &count) {
253 static constexpr AddressMapping map[] = {
254 {0x00, {
256 }
257 },
258 {0x06, {
260 }
261 },
262 {0x08, {
271 }
272 },
273 {0x0E, {
275 }
276 },
277 {0x14, {
279 }
280 },
281 {0x16, {
286 }
287 },
288 };
289 count = sizeof(map) / sizeof(map[0]);
290 return map;
291 }
292
293 static const AddressMapping* _getLabelMap(size_t &count) {
294 static constexpr AddressMapping map[] = {
295 {0x00, {
303 }
304 },
305 {0x0E, {
310 }
311 },
312 {0x16, {
315 }
316 },
317 {0x18, {
319 }
320 },
321 {0x1A, {
325 }
326 },
327 {0x1C, {
329 }
330 },
331 };
332 count = sizeof(map) / sizeof(map[0]);
333 return map;
334 }
335
349
350 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
351
352 void _updateUnits(uint32_t units, bool set);
353 void _updateLabels(uint32_t labels, bool set);
354 void _updateSymbols(uint32_t symbols, bool set);
355
356 uint8_t _mapSegments(uint8_t val);
357};
358#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
LCM88128 LCD (HT1621).
Definition SegLCD_HT1621_LCM88128.h:17
static constexpr uint8_t UNIT_BIT_RIGHT_VOLT
Definition SegLCD_HT1621_LCM88128.h:165
static constexpr uint8_t LABEL_BIT_TEMP
Definition SegLCD_HT1621_LCM88128.h:169
void _updateSymbols(uint32_t symbols, bool set)
Definition SegLCD_HT1621_LCM88128.cpp:99
static constexpr uint8_t LABEL_BIT_WP
Definition SegLCD_HT1621_LCM88128.h:175
LabelFlags
Definition SegLCD_HT1621_LCM88128.h:51
@ LABEL_ERROR
Definition SegLCD_HT1621_LCM88128.h:65
@ LABEL_INPUT
Definition SegLCD_HT1621_LCM88128.h:56
@ LABEL_AC
Definition SegLCD_HT1621_LCM88128.h:53
@ LABEL_WP
Definition SegLCD_HT1621_LCM88128.h:58
@ LABEL_ECO
Definition SegLCD_HT1621_LCM88128.h:74
@ LABEL_INV
Definition SegLCD_HT1621_LCM88128.h:55
@ LABEL_CHARGING
Definition SegLCD_HT1621_LCM88128.h:80
@ LABEL_BYPASS
Definition SegLCD_HT1621_LCM88128.h:69
@ LABEL_RIGHT_BATT
Definition SegLCD_HT1621_LCM88128.h:63
@ LABEL_OUTPUT
Definition SegLCD_HT1621_LCM88128.h:62
@ LABEL_BATT_LI
Definition SegLCD_HT1621_LCM88128.h:73
@ LABEL_TEMP
Definition SegLCD_HT1621_LCM88128.h:59
@ LABEL_PV
Definition SegLCD_HT1621_LCM88128.h:54
@ LABEL_BATT_SLA
Definition SegLCD_HT1621_LCM88128.h:72
@ LABEL_P
Definition SegLCD_HT1621_LCM88128.h:77
@ LABEL_LEFT_BATT
Definition SegLCD_HT1621_LCM88128.h:57
@ LABEL_LOAD
Definition SegLCD_HT1621_LCM88128.h:64
@ LABEL_OVERLOAD
Definition SegLCD_HT1621_LCM88128.h:68
static constexpr uint8_t LABEL_BIT_OVERLOAD
Definition SegLCD_HT1621_LCM88128.h:184
void setBatteryLevel(uint8_t level)
Definition SegLCD_HT1621_LCM88128.cpp:18
static constexpr uint8_t SYMBOL_BIT_AC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:217
static const AddressMapping * _getLabelMap(size_t &count)
Definition SegLCD_HT1621_LCM88128.h:293
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_LCM88128.cpp:191
void _updateLabels(uint32_t labels, bool set)
Definition SegLCD_HT1621_LCM88128.cpp:82
void setLabels(uint32_t labels)
Definition SegLCD_HT1621_LCM88128.cpp:124
static constexpr uint8_t SYMBOL_BIT_WIND
Definition SegLCD_HT1621_LCM88128.h:216
static constexpr uint8_t LABEL_BIT_ECO
Definition SegLCD_HT1621_LCM88128.h:190
static constexpr uint8_t UNIT_BIT_LEFT_AMPERE
Definition SegLCD_HT1621_LCM88128.h:145
void setMuteSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM88128.cpp:155
static constexpr uint8_t SYMBOL_BIT_LINE_ACDC_TO_DCAC
Definition SegLCD_HT1621_LCM88128.h:207
static constexpr uint8_t BATTERY_MASK
Definition SegLCD_HT1621_LCM88128.h:228
static constexpr uint8_t LABEL_BIT_INPUT
Definition SegLCD_HT1621_LCM88128.h:173
static constexpr uint8_t UNIT_BIT_LEFT_DEGREE
Definition SegLCD_HT1621_LCM88128.h:148
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_LCM88128.h:219
static constexpr uint8_t SYMBOL_BIT_BULB
Definition SegLCD_HT1621_LCM88128.h:205
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_LCM88128.cpp:8
static constexpr uint8_t SYMBOL_BIT_UNDERLINES
Definition SegLCD_HT1621_LCM88128.h:202
static constexpr uint8_t LABEL_BIT_BATT_LI
Definition SegLCD_HT1621_LCM88128.h:189
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_HT1621_LCM88128.h:224
static constexpr uint8_t UNIT_BIT_LEFT_VOLT
Definition SegLCD_HT1621_LCM88128.h:146
static constexpr uint8_t LABEL_BIT_INV
Definition SegLCD_HT1621_LCM88128.h:172
static constexpr uint8_t LABEL_BIT_OUTPUT
Definition SegLCD_HT1621_LCM88128.h:178
static constexpr uint8_t SYMBOL_BIT_WARNING_TRIANGLE
Definition SegLCD_HT1621_LCM88128.h:201
static constexpr uint8_t LABEL_BIT_PV
Definition SegLCD_HT1621_LCM88128.h:171
static constexpr uint8_t UNIT_BIT_LEFT_DEG_CELSIUS
Definition SegLCD_HT1621_LCM88128.h:154
static constexpr uint8_t UNIT_BIT_RIGHT_PERCENT
Definition SegLCD_HT1621_LCM88128.h:166
static constexpr uint8_t PV_MASK
Definition SegLCD_HT1621_LCM88128.h:238
static constexpr uint8_t LABEL_BIT_BYPASS
Definition SegLCD_HT1621_LCM88128.h:185
static constexpr uint8_t BATTERY_LEVEL_ADR
Definition SegLCD_HT1621_LCM88128.h:229
static const AddressMapping * _getUnitMap(size_t &count)
Definition SegLCD_HT1621_LCM88128.h:252
void clearLabels(uint32_t labels)
Definition SegLCD_HT1621_LCM88128.cpp:128
void setWarningSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM88128.cpp:150
static constexpr uint8_t LABEL_BIT_LEFT_BATT
Definition SegLCD_HT1621_LCM88128.h:174
static constexpr uint8_t PV_LEVEL_ADR
Definition SegLCD_HT1621_LCM88128.h:239
static constexpr uint8_t UNIT_BIT_RIGHT_WATT
Definition SegLCD_HT1621_LCM88128.h:163
void setSymbols(uint32_t symbols)
Definition SegLCD_HT1621_LCM88128.cpp:132
void clearSymbols(uint32_t symbols)
Definition SegLCD_HT1621_LCM88128.cpp:136
static constexpr uint8_t LABEL_BIT_AC
Definition SegLCD_HT1621_LCM88128.h:170
static constexpr uint8_t LABEL_BIT_P
Definition SegLCD_HT1621_LCM88128.h:193
static constexpr uint8_t SYMBOL_BIT_LINE_BATT_TO_DCAC
Definition SegLCD_HT1621_LCM88128.h:209
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_LCM88128.h:220
static constexpr uint8_t SYMBOL_BIT_LINE_DCAC_TO_LOAD
Definition SegLCD_HT1621_LCM88128.h:206
static constexpr uint8_t DECIMAL_DIGITS[5]
Definition SegLCD_HT1621_LCM88128.h:222
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_LCM88128.cpp:160
static constexpr uint8_t SYMBOL_BIT_DC_AC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:211
static constexpr uint8_t SYMBOL_BIT_LINE_AC_TO_LOAD
Definition SegLCD_HT1621_LCM88128.h:210
static constexpr uint8_t UNIT_BIT_RIGHT_KILO_PREFIX
Definition SegLCD_HT1621_LCM88128.h:157
static constexpr uint8_t LABEL_BIT_BATT_SLA
Definition SegLCD_HT1621_LCM88128.h:188
static constexpr uint8_t SYMBOL_BIT_LINE_PV_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:212
void setPVLevel(uint8_t level)
Definition SegLCD_HT1621_LCM88128.cpp:50
static constexpr uint8_t UNIT_BIT_LEFT_HZ
Definition SegLCD_HT1621_LCM88128.h:141
static constexpr uint8_t LABEL_BIT_LOAD
Definition SegLCD_HT1621_LCM88128.h:180
static constexpr uint8_t SYMBOL_BIT_CENTER_FRAME
Definition SegLCD_HT1621_LCM88128.h:204
static constexpr uint8_t SYMBOL_BIT_CLOCK
Definition SegLCD_HT1621_LCM88128.h:199
static constexpr uint8_t SYMBOL_BIT_LINE_AC_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:215
static constexpr uint8_t SYMBOL_BIT_LINE_WIND_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:214
static const AddressMapping * _getSymbolMap(size_t &count)
Definition SegLCD_HT1621_LCM88128.h:336
static constexpr uint8_t LABEL_BIT_CHARGING
Definition SegLCD_HT1621_LCM88128.h:196
void setMaintenanceSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM88128.cpp:145
static constexpr uint8_t LOAD_MASK
Definition SegLCD_HT1621_LCM88128.h:233
static constexpr uint8_t MAX_PV_LEVEL
Definition SegLCD_HT1621_LCM88128.h:237
static constexpr uint8_t UNIT_BIT_LEFT_WATT
Definition SegLCD_HT1621_LCM88128.h:144
static constexpr uint8_t SYMBOL_BIT_MUTE
Definition SegLCD_HT1621_LCM88128.h:203
static constexpr uint8_t SYMBOL_BIT_AC_DC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:213
static constexpr uint8_t LABEL_BIT_ERROR
Definition SegLCD_HT1621_LCM88128.h:181
void clearUnits(uint32_t units)
Definition SegLCD_HT1621_LCM88128.cpp:120
static constexpr uint8_t UNIT_BIT_LEFT_CELSIUS
Definition SegLCD_HT1621_LCM88128.h:149
static constexpr uint8_t UNIT_BIT_RIGHT_HZ
Definition SegLCD_HT1621_LCM88128.h:160
static constexpr uint8_t LABEL_BIT_RIGHT_BATT
Definition SegLCD_HT1621_LCM88128.h:179
void setClockSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM88128.cpp:140
void setLoadLevel(uint8_t level)
Definition SegLCD_HT1621_LCM88128.cpp:34
SymbolFlags
Definition SegLCD_HT1621_LCM88128.h:83
@ SYMBOL_AC_DC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:109
@ SYMBOL_AC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:114
@ SYMBOL_LINE_AC_TO_LOAD
Definition SegLCD_HT1621_LCM88128.h:104
@ SYMBOL_MUTE
Definition SegLCD_HT1621_LCM88128.h:91
@ SYMBOL_WARNING_TRIANGLE
Definition SegLCD_HT1621_LCM88128.h:87
@ SYMBOL_LINE_ACDC_TO_BATT
Definition SegLCD_HT1621_LCM88128.h:102
@ SYMBOL_WIND
Definition SegLCD_HT1621_LCM88128.h:115
@ SYMBOL_LINE_WIND_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:112
@ SYMBOL_UNDERLINES
Definition SegLCD_HT1621_LCM88128.h:90
@ SYMBOL_LINE_PV_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:108
@ SYMBOL_BULB
Definition SegLCD_HT1621_LCM88128.h:97
@ SYMBOL_CENTER_FRAME
Definition SegLCD_HT1621_LCM88128.h:94
@ SYMBOL_LINE_ACDC_TO_DCAC
Definition SegLCD_HT1621_LCM88128.h:101
@ SYMBOL_LINE_AC_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:113
@ SYMBOL_CLOCK
Definition SegLCD_HT1621_LCM88128.h:85
@ SYMBOL_LINE_BATT_TO_DCAC
Definition SegLCD_HT1621_LCM88128.h:103
@ SYMBOL_MAINTENANCE
Definition SegLCD_HT1621_LCM88128.h:86
@ SYMBOL_LINE_DCAC_TO_LOAD
Definition SegLCD_HT1621_LCM88128.h:98
@ SYMBOL_DC_AC_SYMBOL
Definition SegLCD_HT1621_LCM88128.h:105
static constexpr uint8_t UNIT_BIT_LEFT_DEGREE_SLASH
Definition SegLCD_HT1621_LCM88128.h:147
static constexpr uint8_t UNIT_BIT_LEFT_PERCENT
Definition SegLCD_HT1621_LCM88128.h:153
static constexpr uint8_t UNIT_BIT_CENTER_MINUTE
Definition SegLCD_HT1621_LCM88128.h:151
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_HT1621_LCM88128.h:223
static constexpr uint8_t UNIT_BIT_RIGHT_AMPERE
Definition SegLCD_HT1621_LCM88128.h:164
static constexpr uint8_t UNIT_BIT_LEFT_KILO_PREFIX
Definition SegLCD_HT1621_LCM88128.h:138
static constexpr uint8_t SYMBOL_BIT_MAINTENANCE
Definition SegLCD_HT1621_LCM88128.h:200
static constexpr uint8_t MAX_LOAD_LEVEL
Definition SegLCD_HT1621_LCM88128.h:232
UnitFlags
Definition SegLCD_HT1621_LCM88128.h:19
@ UNIT_LEFT_PERCENT
Definition SegLCD_HT1621_LCM88128.h:33
@ UNIT_RIGHT_VOLT
Definition SegLCD_HT1621_LCM88128.h:47
@ UNIT_LEFT_DEGREE_CELSIUS
Definition SegLCD_HT1621_LCM88128.h:34
@ UNIT_RIGHT_HZ
Definition SegLCD_HT1621_LCM88128.h:42
@ UNIT_RIGHT_WATT
Definition SegLCD_HT1621_LCM88128.h:45
@ UNIT_LEFT_DEGREE
Definition SegLCD_HT1621_LCM88128.h:31
@ UNIT_RIGHT_AMPERE
Definition SegLCD_HT1621_LCM88128.h:46
@ UNIT_CENTER_HOUR
Definition SegLCD_HT1621_LCM88128.h:35
@ UNIT_LEFT_VOLT
Definition SegLCD_HT1621_LCM88128.h:29
@ UNIT_LEFT_WATT
Definition SegLCD_HT1621_LCM88128.h:27
@ UNIT_LEFT_DEGREE_SLASH
Definition SegLCD_HT1621_LCM88128.h:30
@ UNIT_RIGHT_PERCENT
Definition SegLCD_HT1621_LCM88128.h:48
@ UNIT_LEFT_AMPERE
Definition SegLCD_HT1621_LCM88128.h:28
@ UNIT_LEFT_KILO_PREFIX
Definition SegLCD_HT1621_LCM88128.h:21
@ UNIT_LEFT_CELSIUS
Definition SegLCD_HT1621_LCM88128.h:32
@ UNIT_CENTER_MINUTE
Definition SegLCD_HT1621_LCM88128.h:36
@ UNIT_RIGHT_KILO_PREFIX
Definition SegLCD_HT1621_LCM88128.h:39
@ UNIT_LEFT_HZ
Definition SegLCD_HT1621_LCM88128.h:24
static constexpr uint8_t MAX_BATTERY_LEVEL
Definition SegLCD_HT1621_LCM88128.h:227
static constexpr uint8_t LOAD_LEVEL_ADR
Definition SegLCD_HT1621_LCM88128.h:234
static constexpr uint8_t UNIT_BIT_CENTER_HOUR
Definition SegLCD_HT1621_LCM88128.h:150
void setUnits(uint32_t units)
Definition SegLCD_HT1621_LCM88128.cpp:116
static constexpr uint8_t SYMBOL_BIT_LINE_ACDC_TO_BATT
Definition SegLCD_HT1621_LCM88128.h:208
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_LCM88128.cpp:221
void _updateUnits(uint32_t units, bool set)
Definition SegLCD_HT1621_LCM88128.cpp:65
Definition SegLCD_HT1621_LCM88128.h:247
FlagBit bits[9]
Definition SegLCD_HT1621_LCM88128.h:249
uint8_t address
Definition SegLCD_HT1621_LCM88128.h:248
Definition SegLCD_HT1621_LCM88128.h:242
uint32_t flag
Definition SegLCD_HT1621_LCM88128.h:243
uint8_t bit
Definition SegLCD_HT1621_LCM88128.h:244