1#ifndef SEGLCD_HT1621_LCM88128_H
2#define SEGLCD_HT1621_LCM88128_H
19 typedef enum : uint32_t {
51 typedef enum : uint32_t {
83 typedef enum : uint32_t {
119 void init()
override;
133 size_t write(uint8_t ch)
override;
289 count =
sizeof(map) /
sizeof(map[0]);
332 count =
sizeof(map) /
sizeof(map[0]);
342 {0x1A, {{
SYMBOL_LINE_ACDC_TO_DCAC,
SYMBOL_BIT_LINE_ACDC_TO_DCAC}, {
SYMBOL_LINE_ACDC_TO_BATT,
SYMBOL_BIT_LINE_ACDC_TO_BATT}, {
SYMBOL_LINE_BATT_TO_DCAC,
SYMBOL_BIT_LINE_BATT_TO_DCAC}, {
SYMBOL_LINE_AC_TO_LOAD,
SYMBOL_BIT_LINE_AC_TO_LOAD}, {
SYMBOL_DC_AC_SYMBOL,
SYMBOL_BIT_DC_AC_SYMBOL}}},
346 count =
sizeof(map) /
sizeof(map[0]);
350 void _setDecimal(uint8_t row, uint8_t col,
bool state)
override;
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