1#ifndef SEGLCD_HT1621_LCM88128_H
2#define SEGLCD_HT1621_LCM88128_H
5#if !defined(SEGLCD_DISABLE_ALL_LCDS) || defined(SEGLCD_ENABLE_HT1621_LCM88128)
21 typedef enum : uint32_t {
53 typedef enum : uint32_t {
85 typedef enum : uint32_t {
121 void init()
override;
136 size_t write(uint8_t ch)
override;
292 count =
sizeof(map) /
sizeof(map[0]);
335 count =
sizeof(map) /
sizeof(map[0]);
345 {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}}},
349 count =
sizeof(map) /
sizeof(map[0]);
353 void _setDecimal(uint8_t row, uint8_t col,
bool state)
override;
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