SegLCDLib
Loading...
Searching...
No Matches
SegLCD_HT1621_LCM0844.h
Go to the documentation of this file.
1#ifndef SEGLCD_HT1621_LCM0844_H
2#define SEGLCD_HT1621_LCM0844_H
3
4#include <SegDriver_HT1621.h>
5
17 public:
18 typedef enum : uint32_t {
19 // Address 0x00
20 UNIT_LEFT_KILO_PREFIX = (1UL << 0), // 0x00:0x01
21 UNIT_LEFT_MEGA_PREFIX = (1UL << 1), // 0x00:0x02
22
23 // Address 0x06
24 UNIT_LEFT_HZ = (1UL << 2), // 0x06:0x01
25
26 // Address 0x08
27 UNIT_LEFT_WATT = (1UL << 3), // 0x08:0x80
28 UNIT_LEFT_AMPERE = (1UL << 4), // 0x08:0x40
29 UNIT_LEFT_VOLT = (1UL << 5), // 0x08:0x20
30 UNIT_LEFT_PERCENT = (1UL << 6), // 0x08:0x10
31 UNIT_LEFT_WATT_HOUR_SUFFIX = (1UL << 7), // 0x08:0x01
32 UNIT_CENTER_HOUR = (1UL << 8), // 0x08:0x08
33 UNIT_CENTER_MINUTE = (1UL << 9), // 0x08:0x04
34
35 // Address 0x0E
36 UNIT_RIGHT_KILO_PREFIX = (1UL << 10), // 0x0E:0x01
37
38 // Address 0x14
39 UNIT_RIGHT_HZ = (1UL << 11), // 0x14:0x01
40
41 // Address 0x16
42 UNIT_RIGHT_WATT = (1UL << 12), // 0x16:0x80
43 UNIT_RIGHT_AMPERE = (1UL << 13), // 0x16:0x40
44 UNIT_RIGHT_VOLT = (1UL << 14), // 0x16:0x20
45 UNIT_RIGHT_PERCENT = (1UL << 15), // 0x16:0x10
46
47 // Address 0x1C
48 UNIT_RIGHT_WATT_HOUR_SUFFIX = (1UL << 16), // 0x1C:0x80
49
50 // Address 0x1E
51 UNIT_RIGHT_MEGA_PREFIX = (1UL << 17), // 0x1E:0x20
52 } UnitFlags;
53
54 typedef enum : uint32_t {
55 // Address 0x00
56 LABEL_AC = (1UL << 0), // 0x00:0x80
57 LABEL_PV1 = (1UL << 1), // 0x00:0x20
58 LABEL_PV2 = (1UL << 2), // 0x00:0x40
59 LABEL_INPUT = (1UL << 3), // 0x00:0x08
60 LABEL_LEFT_BATT = (1UL << 4), // 0x00:0x04
61
62 // Address 0x0E
63 LABEL_OUTPUT = (1UL << 5), // 0x0E:0x08
64 LABEL_RIGHT_BATT = (1UL << 6), // 0x0E:0x04
65 LABEL_LOAD = (1UL << 7), // 0x0E:0x02
66 LABEL_ERROR = (1UL << 8), // 0x0E:0x40
67 LABEL_OVERLOAD = (1UL << 9), // 0x16:0x08
68
69 // Address 0x1A
70 LABEL_BATT_AGM = (1UL << 10), // 0x1A:0x20
71 LABEL_BATT_FLD = (1UL << 11), // 0x1A:0x40
72 LABEL_BATT_USER = (1UL << 12), // 0x1A:0x80
73 } LabelFlags;
74
75 typedef enum : uint32_t {
76 SYMBOL_CLOCK = (1UL << 0),
77 SYMBOL_MAINTENANCE = (1UL << 1),
79
80 SYMBOL_LEFT_ARROWS = (1UL << 3),
81 SYMBOL_RIGHT_ARROWS = (1UL << 4),
82 SYMBOL_UNDERLINES = (1UL << 5),
83 SYMBOL_MUTE = (1UL << 6),
84
85 SYMBOL_CENTER_FRAME = (1UL << 7),
86
87 SYMBOL_BULB = (1UL << 8),
88 SYMBOL_JUNCTION = (1UL << 9),
90
95 SYMBOL_AC_DC_CONVERT = (1UL << 15),
96
97 SYMBOL_DC_DC_CONVERT = (1UL << 16),
99
100 SYMBOL_AC_LINE = (1UL << 18),
101 SYMBOL_AC_SYMBOL = (1UL << 19),
102 SYMBOL_PV2_SYMBOL = (1UL << 20),
103 SYMBOL_PV1_SYMBOL = (1UL << 21),
107 } SymbolFlags;
108
109 SegLCD_HT1621_LCM0844(uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read = -1);
110 void init() override;
111 void setBatteryLevel(uint8_t level);
112 void setLoadLevel(uint8_t level);
113 void setUnits(uint32_t units);
114 void clearUnits(uint32_t units);
115 void setLabels(uint32_t labels);
116 void clearLabels(uint32_t labels);
117 void setSymbols(uint32_t symbols);
118 void clearSymbols(uint32_t symbols);
119 void setClockSymbol(bool state, uint8_t index = 0);
120 void setMaintenanceSymbol(bool state, uint8_t index = 0);
121 void setWarningSymbol(bool state, uint8_t index = 0);
122 void setMuteSymbol(bool state, uint8_t index = 0);
123 size_t write(uint8_t ch) override;
124
125 private:
126
127 // Unit bit constants — address 0x00
128 static constexpr uint8_t UNIT_BIT_LEFT_KILO_PREFIX = 0x01;
129 static constexpr uint8_t UNIT_BIT_LEFT_MEGA_PREFIX = 0x02;
130
131 // Unit bit constants — address 0x06
132 static constexpr uint8_t UNIT_BIT_LEFT_HZ = 0x01;
133
134 // Unit bit constants — address 0x08
135 static constexpr uint8_t UNIT_BIT_LEFT_WATT = 0x80;
136 static constexpr uint8_t UNIT_BIT_LEFT_AMPERE = 0x40;
137 static constexpr uint8_t UNIT_BIT_LEFT_VOLT = 0x20;
138 static constexpr uint8_t UNIT_BIT_LEFT_PERCENT = 0x10;
139 static constexpr uint8_t UNIT_BIT_LEFT_WATT_HOUR_SUFFIX = 0x01;
140 static constexpr uint8_t UNIT_BIT_CENTER_HOUR = 0x08;
141 static constexpr uint8_t UNIT_BIT_CENTER_MINUTE = 0x04;
142
143 // Unit bit constants — address 0x0E
144 static constexpr uint8_t UNIT_BIT_RIGHT_KILO_PREFIX = 0x01;
145
146 // Unit bit constants — address 0x14
147 static constexpr uint8_t UNIT_BIT_RIGHT_HZ = 0x01;
148
149 // Unit bit constants — address 0x16
150 static constexpr uint8_t UNIT_BIT_RIGHT_WATT = 0x80;
151 static constexpr uint8_t UNIT_BIT_RIGHT_AMPERE = 0x40;
152 static constexpr uint8_t UNIT_BIT_RIGHT_VOLT = 0x20;
153 static constexpr uint8_t UNIT_BIT_RIGHT_PERCENT = 0x10;
154
155 // Unit bit constants — address 0x1C
156 static constexpr uint8_t UNIT_BIT_RIGHT_WATT_HOUR_SUFFIX = 0x80;
157
158 // Unit bit constants — address 0x1E
159 static constexpr uint8_t UNIT_BIT_RIGHT_MEGA_PREFIX = 0x20;
160
161 // Label bit constants — address 0x00
162 static constexpr uint8_t LABEL_BIT_AC = 0x80;
163 static constexpr uint8_t LABEL_BIT_PV1 = 0x20;
164 static constexpr uint8_t LABEL_BIT_PV2 = 0x40;
165 static constexpr uint8_t LABEL_BIT_INPUT = 0x08;
166 static constexpr uint8_t LABEL_BIT_LEFT_BATT = 0x04;
167
168 // Label bit constants — address 0x0E
169 static constexpr uint8_t LABEL_BIT_OUTPUT = 0x08;
170 static constexpr uint8_t LABEL_BIT_RIGHT_BATT = 0x04;
171 static constexpr uint8_t LABEL_BIT_LOAD = 0x02;
172 static constexpr uint8_t LABEL_BIT_ERROR = 0x40;
173
174 // Label bit constants — address 0x16
175 static constexpr uint8_t LABEL_BIT_OVERLOAD = 0x08;
176
177 // Label bit constants — address 0x1A
178 static constexpr uint8_t LABEL_BIT_BATT_AGM = 0x20;
179 static constexpr uint8_t LABEL_BIT_BATT_FLD = 0x40;
180 static constexpr uint8_t LABEL_BIT_BATT_USER = 0x80;
181
182 // Symbol bit constants
183 static constexpr uint8_t SYMBOL_BIT_LEFT_ARROWS = 0x10;
184 static constexpr uint8_t SYMBOL_BIT_CENTER_FRAME = 0x01;
185 static constexpr uint8_t SYMBOL_BIT_CLOCK = 0x10;
186 static constexpr uint8_t SYMBOL_BIT_MAINTENANCE = 0x20;
187 static constexpr uint8_t SYMBOL_BIT_WARNING_TRIANGLE = 0x80;
188 static constexpr uint8_t SYMBOL_BIT_RIGHT_ARROWS = 0x02;
189 static constexpr uint8_t SYMBOL_BIT_UNDERLINES = 0x01;
190 static constexpr uint8_t SYMBOL_BIT_MUTE = 0x04;
191 static constexpr uint8_t SYMBOL_BIT_BULB = 0x40;
192 static constexpr uint8_t SYMBOL_BIT_JUNCTION = 0x20;
193 static constexpr uint8_t SYMBOL_BIT_LINE_JUNCTION_TO_LOAD = 0x10;
194 static constexpr uint8_t SYMBOL_BIT_ARROW_JUNCTION_TO_ACDC = 0x01;
195 static constexpr uint8_t SYMBOL_BIT_ARROW_ACDC_TO_JUNCTION = 0x02;
196 static constexpr uint8_t SYMBOL_BIT_ARROW_ACDC_TO_BATT = 0x04;
197 static constexpr uint8_t SYMBOL_BIT_ARROW_BATT_TO_ACDC = 0x08;
198 static constexpr uint8_t SYMBOL_BIT_AC_DC_CONVERT = 0x10;
199 static constexpr uint8_t SYMBOL_BIT_DC_DC_CONVERT = 0x10;
200 static constexpr uint8_t SYMBOL_BIT_LINE_DCDC_TO_ACDC = 0x20;
201 static constexpr uint8_t SYMBOL_BIT_AC_LINE = 0x01;
202 static constexpr uint8_t SYMBOL_BIT_AC_SYMBOL = 0x02;
203 static constexpr uint8_t SYMBOL_BIT_PV2_SYMBOL = 0x04;
204 static constexpr uint8_t SYMBOL_BIT_PV1_SYMBOL = 0x08;
205 static constexpr uint8_t SYMBOL_BIT_LINE_DCDC_TO_BATT = 0x10;
206 static constexpr uint8_t SYMBOL_BIT_LINE_PV2_TO_DCDC = 0x40;
207 static constexpr uint8_t SYMBOL_BIT_LINE_PV1_TO_DCDC = 0x80;
208
209 static constexpr uint8_t RAM_SIZE = 16;
210 static constexpr uint8_t DIGITS = 8;
211
212 static constexpr uint8_t DECIMAL_DIGITS[4] = {0, 1, 5, 6};
213 static constexpr uint8_t DECIMAL_POINT_BIT = 0x01;
214 static constexpr int8_t DECIMAL_COL_OFFSET = -1; // -1: dot belongs to previous position
215
216 // Battery level constants
217 static constexpr uint8_t MAX_BATTERY_LEVEL = 5;
218 static constexpr uint8_t BATTERY_MASK = 0x4F;
219 static constexpr uint8_t BATTERY_LEVEL_ADR = 0x1C;
220
221 // Load level constants
222 static constexpr uint8_t MAX_LOAD_LEVEL = 5;
223 static constexpr uint8_t LOAD_MASK = 0x8F;
224 static constexpr uint8_t LOAD_LEVEL_ADR = 0x18;
225
226 // Label/Symbol mapping structures
227 struct FlagBit {
228 uint32_t flag;
229 uint8_t bit;
230 };
231
233 uint8_t address;
234 FlagBit bits[8]; // terminated by {0, 0}
235 };
236
237 static const AddressMapping* _getUnitMap(size_t &count) {
238 static constexpr AddressMapping map[] = {
239 {0x00, {
242 }
243 },
244 {0x06, {
246 }
247 },
248 {0x08, {
256 }
257 },
258 {0x0E, {
260 }
261 },
262 {0x14, {
264 }
265 },
266 {0x16, {
271 }
272 },
273 {0x1C, {
275 }
276 },
277 {0x1E, {
279 }
280 },
281 };
282 count = sizeof(map) / sizeof(map[0]);
283 return map;
284 }
285
286 static const AddressMapping* _getLabelMap(size_t &count) {
287 static constexpr AddressMapping map[] = {
288 {0x00, {
294 }
295 },
296 {0x0E, {
301 }
302 },
303 {0x16, {
305 }
306 },
307 {0x1A, {
311 }
312 },
313 };
314 count = sizeof(map) / sizeof(map[0]);
315 return map;
316 }
317
318 static const AddressMapping* _getSymbolMap(size_t &count) {
319 static constexpr AddressMapping map[] = {
328 };
329 count = sizeof(map) / sizeof(map[0]);
330 return map;
331 }
332
333 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
334
335 void _updateUnits(uint32_t units, bool set);
336 void _updateLabels(uint32_t labels, bool set);
337 void _updateSymbols(uint32_t symbols, bool set);
338
339 uint8_t _mapSegments(uint8_t val);
340};
341#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
LCM0844 LCD (HT1621).
Definition SegLCD_HT1621_LCM0844.h:16
static const AddressMapping * _getSymbolMap(size_t &count)
Definition SegLCD_HT1621_LCM0844.h:318
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_LCM0844.cpp:8
static constexpr uint8_t UNIT_BIT_LEFT_MEGA_PREFIX
Definition SegLCD_HT1621_LCM0844.h:129
static constexpr uint8_t UNIT_BIT_RIGHT_WATT
Definition SegLCD_HT1621_LCM0844.h:150
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_HT1621_LCM0844.h:214
static constexpr uint8_t LABEL_BIT_PV1
Definition SegLCD_HT1621_LCM0844.h:163
static constexpr uint8_t UNIT_BIT_LEFT_WATT
Definition SegLCD_HT1621_LCM0844.h:135
static constexpr uint8_t SYMBOL_BIT_ARROW_JUNCTION_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:194
void clearSymbols(uint32_t symbols)
Definition SegLCD_HT1621_LCM0844.cpp:123
static constexpr uint8_t LABEL_BIT_PV2
Definition SegLCD_HT1621_LCM0844.h:164
void setMuteSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM0844.cpp:142
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_LCM0844.cpp:175
static constexpr uint8_t LABEL_BIT_OVERLOAD
Definition SegLCD_HT1621_LCM0844.h:175
static constexpr uint8_t UNIT_BIT_LEFT_WATT_HOUR_SUFFIX
Definition SegLCD_HT1621_LCM0844.h:139
static constexpr uint8_t LABEL_BIT_ERROR
Definition SegLCD_HT1621_LCM0844.h:172
static constexpr uint8_t SYMBOL_BIT_LEFT_ARROWS
Definition SegLCD_HT1621_LCM0844.h:183
SymbolFlags
Definition SegLCD_HT1621_LCM0844.h:75
@ SYMBOL_JUNCTION
Definition SegLCD_HT1621_LCM0844.h:88
@ SYMBOL_LINE_DCDC_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:98
@ SYMBOL_WARNING_TRIANGLE
Definition SegLCD_HT1621_LCM0844.h:78
@ SYMBOL_ARROW_JUNCTION_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:91
@ SYMBOL_LINE_JUNCTION_TO_LOAD
Definition SegLCD_HT1621_LCM0844.h:89
@ SYMBOL_ARROW_ACDC_TO_JUNCTION
Definition SegLCD_HT1621_LCM0844.h:92
@ SYMBOL_RIGHT_ARROWS
Definition SegLCD_HT1621_LCM0844.h:81
@ SYMBOL_LINE_PV2_TO_DCDC
Definition SegLCD_HT1621_LCM0844.h:105
@ SYMBOL_DC_DC_CONVERT
Definition SegLCD_HT1621_LCM0844.h:97
@ SYMBOL_UNDERLINES
Definition SegLCD_HT1621_LCM0844.h:82
@ SYMBOL_BULB
Definition SegLCD_HT1621_LCM0844.h:87
@ SYMBOL_PV1_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:103
@ SYMBOL_ARROW_ACDC_TO_BATT
Definition SegLCD_HT1621_LCM0844.h:93
@ SYMBOL_AC_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:101
@ SYMBOL_LEFT_ARROWS
Definition SegLCD_HT1621_LCM0844.h:80
@ SYMBOL_CENTER_FRAME
Definition SegLCD_HT1621_LCM0844.h:85
@ SYMBOL_AC_DC_CONVERT
Definition SegLCD_HT1621_LCM0844.h:95
@ SYMBOL_PV2_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:102
@ SYMBOL_AC_LINE
Definition SegLCD_HT1621_LCM0844.h:100
@ SYMBOL_MAINTENANCE
Definition SegLCD_HT1621_LCM0844.h:77
@ SYMBOL_ARROW_BATT_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:94
@ SYMBOL_LINE_DCDC_TO_BATT
Definition SegLCD_HT1621_LCM0844.h:104
@ SYMBOL_MUTE
Definition SegLCD_HT1621_LCM0844.h:83
@ SYMBOL_LINE_PV1_TO_DCDC
Definition SegLCD_HT1621_LCM0844.h:106
@ SYMBOL_CLOCK
Definition SegLCD_HT1621_LCM0844.h:76
static constexpr uint8_t LOAD_MASK
Definition SegLCD_HT1621_LCM0844.h:223
void setLabels(uint32_t labels)
Definition SegLCD_HT1621_LCM0844.cpp:111
static constexpr uint8_t LABEL_BIT_BATT_FLD
Definition SegLCD_HT1621_LCM0844.h:179
static constexpr uint8_t LABEL_BIT_LEFT_BATT
Definition SegLCD_HT1621_LCM0844.h:166
static constexpr uint8_t SYMBOL_BIT_LINE_DCDC_TO_BATT
Definition SegLCD_HT1621_LCM0844.h:205
static constexpr uint8_t UNIT_BIT_LEFT_KILO_PREFIX
Definition SegLCD_HT1621_LCM0844.h:128
UnitFlags
Definition SegLCD_HT1621_LCM0844.h:18
@ UNIT_LEFT_MEGA_PREFIX
Definition SegLCD_HT1621_LCM0844.h:21
@ UNIT_RIGHT_PERCENT
Definition SegLCD_HT1621_LCM0844.h:45
@ UNIT_LEFT_AMPERE
Definition SegLCD_HT1621_LCM0844.h:28
@ UNIT_RIGHT_MEGA_PREFIX
Definition SegLCD_HT1621_LCM0844.h:51
@ UNIT_CENTER_MINUTE
Definition SegLCD_HT1621_LCM0844.h:33
@ UNIT_RIGHT_WATT_HOUR_SUFFIX
Definition SegLCD_HT1621_LCM0844.h:48
@ UNIT_RIGHT_AMPERE
Definition SegLCD_HT1621_LCM0844.h:43
@ UNIT_LEFT_HZ
Definition SegLCD_HT1621_LCM0844.h:24
@ UNIT_LEFT_VOLT
Definition SegLCD_HT1621_LCM0844.h:29
@ UNIT_RIGHT_WATT
Definition SegLCD_HT1621_LCM0844.h:42
@ UNIT_LEFT_PERCENT
Definition SegLCD_HT1621_LCM0844.h:30
@ UNIT_CENTER_HOUR
Definition SegLCD_HT1621_LCM0844.h:32
@ UNIT_LEFT_WATT
Definition SegLCD_HT1621_LCM0844.h:27
@ UNIT_RIGHT_HZ
Definition SegLCD_HT1621_LCM0844.h:39
@ UNIT_RIGHT_KILO_PREFIX
Definition SegLCD_HT1621_LCM0844.h:36
@ UNIT_RIGHT_VOLT
Definition SegLCD_HT1621_LCM0844.h:44
@ UNIT_LEFT_KILO_PREFIX
Definition SegLCD_HT1621_LCM0844.h:20
@ UNIT_LEFT_WATT_HOUR_SUFFIX
Definition SegLCD_HT1621_LCM0844.h:31
static constexpr uint8_t SYMBOL_BIT_AC_DC_CONVERT
Definition SegLCD_HT1621_LCM0844.h:198
static constexpr uint8_t DECIMAL_DIGITS[4]
Definition SegLCD_HT1621_LCM0844.h:212
static constexpr uint8_t SYMBOL_BIT_CENTER_FRAME
Definition SegLCD_HT1621_LCM0844.h:184
static constexpr uint8_t UNIT_BIT_RIGHT_AMPERE
Definition SegLCD_HT1621_LCM0844.h:151
static constexpr uint8_t LABEL_BIT_BATT_USER
Definition SegLCD_HT1621_LCM0844.h:180
static constexpr uint8_t UNIT_BIT_RIGHT_PERCENT
Definition SegLCD_HT1621_LCM0844.h:153
static constexpr uint8_t UNIT_BIT_LEFT_HZ
Definition SegLCD_HT1621_LCM0844.h:132
void clearLabels(uint32_t labels)
Definition SegLCD_HT1621_LCM0844.cpp:115
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_HT1621_LCM0844.h:213
void setBatteryLevel(uint8_t level)
Definition SegLCD_HT1621_LCM0844.cpp:18
static constexpr uint8_t SYMBOL_BIT_JUNCTION
Definition SegLCD_HT1621_LCM0844.h:192
static constexpr uint8_t LOAD_LEVEL_ADR
Definition SegLCD_HT1621_LCM0844.h:224
static constexpr uint8_t MAX_LOAD_LEVEL
Definition SegLCD_HT1621_LCM0844.h:222
static constexpr uint8_t SYMBOL_BIT_PV1_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:204
static constexpr uint8_t SYMBOL_BIT_LINE_PV2_TO_DCDC
Definition SegLCD_HT1621_LCM0844.h:206
static constexpr uint8_t BATTERY_LEVEL_ADR
Definition SegLCD_HT1621_LCM0844.h:219
static constexpr uint8_t SYMBOL_BIT_MUTE
Definition SegLCD_HT1621_LCM0844.h:190
static constexpr uint8_t SYMBOL_BIT_MAINTENANCE
Definition SegLCD_HT1621_LCM0844.h:186
static constexpr uint8_t LABEL_BIT_BATT_AGM
Definition SegLCD_HT1621_LCM0844.h:178
static constexpr uint8_t SYMBOL_BIT_DC_DC_CONVERT
Definition SegLCD_HT1621_LCM0844.h:199
LabelFlags
Definition SegLCD_HT1621_LCM0844.h:54
@ LABEL_INPUT
Definition SegLCD_HT1621_LCM0844.h:59
@ LABEL_ERROR
Definition SegLCD_HT1621_LCM0844.h:66
@ LABEL_LOAD
Definition SegLCD_HT1621_LCM0844.h:65
@ LABEL_BATT_FLD
Definition SegLCD_HT1621_LCM0844.h:71
@ LABEL_PV1
Definition SegLCD_HT1621_LCM0844.h:57
@ LABEL_AC
Definition SegLCD_HT1621_LCM0844.h:56
@ LABEL_OVERLOAD
Definition SegLCD_HT1621_LCM0844.h:67
@ LABEL_BATT_USER
Definition SegLCD_HT1621_LCM0844.h:72
@ LABEL_RIGHT_BATT
Definition SegLCD_HT1621_LCM0844.h:64
@ LABEL_LEFT_BATT
Definition SegLCD_HT1621_LCM0844.h:60
@ LABEL_BATT_AGM
Definition SegLCD_HT1621_LCM0844.h:70
@ LABEL_OUTPUT
Definition SegLCD_HT1621_LCM0844.h:63
@ LABEL_PV2
Definition SegLCD_HT1621_LCM0844.h:58
static const AddressMapping * _getUnitMap(size_t &count)
Definition SegLCD_HT1621_LCM0844.h:237
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_LCM0844.h:209
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_LCM0844.h:210
static constexpr uint8_t SYMBOL_BIT_LINE_PV1_TO_DCDC
Definition SegLCD_HT1621_LCM0844.h:207
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_LCM0844.cpp:147
static constexpr uint8_t SYMBOL_BIT_LINE_JUNCTION_TO_LOAD
Definition SegLCD_HT1621_LCM0844.h:193
static constexpr uint8_t UNIT_BIT_RIGHT_KILO_PREFIX
Definition SegLCD_HT1621_LCM0844.h:144
static const AddressMapping * _getLabelMap(size_t &count)
Definition SegLCD_HT1621_LCM0844.h:286
static constexpr uint8_t UNIT_BIT_RIGHT_MEGA_PREFIX
Definition SegLCD_HT1621_LCM0844.h:159
static constexpr uint8_t UNIT_BIT_LEFT_AMPERE
Definition SegLCD_HT1621_LCM0844.h:136
void setLoadLevel(uint8_t level)
Definition SegLCD_HT1621_LCM0844.cpp:35
static constexpr uint8_t SYMBOL_BIT_WARNING_TRIANGLE
Definition SegLCD_HT1621_LCM0844.h:187
static constexpr uint8_t UNIT_BIT_CENTER_HOUR
Definition SegLCD_HT1621_LCM0844.h:140
void setSymbols(uint32_t symbols)
Definition SegLCD_HT1621_LCM0844.cpp:119
void _updateUnits(uint32_t units, bool set)
Definition SegLCD_HT1621_LCM0844.cpp:52
static constexpr uint8_t SYMBOL_BIT_RIGHT_ARROWS
Definition SegLCD_HT1621_LCM0844.h:188
static constexpr uint8_t LABEL_BIT_AC
Definition SegLCD_HT1621_LCM0844.h:162
void setMaintenanceSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM0844.cpp:132
static constexpr uint8_t MAX_BATTERY_LEVEL
Definition SegLCD_HT1621_LCM0844.h:217
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_LCM0844.cpp:205
static constexpr uint8_t SYMBOL_BIT_LINE_DCDC_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:200
static constexpr uint8_t SYMBOL_BIT_BULB
Definition SegLCD_HT1621_LCM0844.h:191
static constexpr uint8_t SYMBOL_BIT_ARROW_ACDC_TO_JUNCTION
Definition SegLCD_HT1621_LCM0844.h:195
void setWarningSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM0844.cpp:137
static constexpr uint8_t UNIT_BIT_LEFT_PERCENT
Definition SegLCD_HT1621_LCM0844.h:138
static constexpr uint8_t LABEL_BIT_OUTPUT
Definition SegLCD_HT1621_LCM0844.h:169
static constexpr uint8_t SYMBOL_BIT_CLOCK
Definition SegLCD_HT1621_LCM0844.h:185
static constexpr uint8_t UNIT_BIT_LEFT_VOLT
Definition SegLCD_HT1621_LCM0844.h:137
static constexpr uint8_t UNIT_BIT_RIGHT_VOLT
Definition SegLCD_HT1621_LCM0844.h:152
static constexpr uint8_t SYMBOL_BIT_AC_LINE
Definition SegLCD_HT1621_LCM0844.h:201
static constexpr uint8_t UNIT_BIT_CENTER_MINUTE
Definition SegLCD_HT1621_LCM0844.h:141
void setClockSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_LCM0844.cpp:127
static constexpr uint8_t UNIT_BIT_RIGHT_HZ
Definition SegLCD_HT1621_LCM0844.h:147
void _updateLabels(uint32_t labels, bool set)
Definition SegLCD_HT1621_LCM0844.cpp:69
static constexpr uint8_t LABEL_BIT_RIGHT_BATT
Definition SegLCD_HT1621_LCM0844.h:170
static constexpr uint8_t LABEL_BIT_INPUT
Definition SegLCD_HT1621_LCM0844.h:165
static constexpr uint8_t SYMBOL_BIT_AC_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:202
static constexpr uint8_t BATTERY_MASK
Definition SegLCD_HT1621_LCM0844.h:218
static constexpr uint8_t SYMBOL_BIT_PV2_SYMBOL
Definition SegLCD_HT1621_LCM0844.h:203
static constexpr uint8_t UNIT_BIT_RIGHT_WATT_HOUR_SUFFIX
Definition SegLCD_HT1621_LCM0844.h:156
void _updateSymbols(uint32_t symbols, bool set)
Definition SegLCD_HT1621_LCM0844.cpp:86
void setUnits(uint32_t units)
Definition SegLCD_HT1621_LCM0844.cpp:103
static constexpr uint8_t LABEL_BIT_LOAD
Definition SegLCD_HT1621_LCM0844.h:171
void clearUnits(uint32_t units)
Definition SegLCD_HT1621_LCM0844.cpp:107
static constexpr uint8_t SYMBOL_BIT_ARROW_ACDC_TO_BATT
Definition SegLCD_HT1621_LCM0844.h:196
static constexpr uint8_t SYMBOL_BIT_ARROW_BATT_TO_ACDC
Definition SegLCD_HT1621_LCM0844.h:197
static constexpr uint8_t SYMBOL_BIT_UNDERLINES
Definition SegLCD_HT1621_LCM0844.h:189
Definition SegLCD_HT1621_LCM0844.h:232
uint8_t address
Definition SegLCD_HT1621_LCM0844.h:233
FlagBit bits[8]
Definition SegLCD_HT1621_LCM0844.h:234
Definition SegLCD_HT1621_LCM0844.h:227
uint8_t bit
Definition SegLCD_HT1621_LCM0844.h:229
uint32_t flag
Definition SegLCD_HT1621_LCM0844.h:228