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