SegLCDLib
Loading...
Searching...
No Matches
SegLCD_PCF85176_6DigSigBattProgress.h
Go to the documentation of this file.
1#ifndef SEGLCD_PCF85176_6DIGSIGBATTPROGRESS_H
2#define SEGLCD_PCF85176_6DIGSIGBATTPROGRESS_H
3
4
5#if !defined(SEGLCD_DISABLE_ALL_LCDS) || defined(SEGLCD_ENABLE_PCF85176_6DIGSIGBATTPROGRESS)
7
22 public:
23 typedef enum : uint8_t {
24 UNIT_MPA = 0x01,
25 UNIT_KPA = 0x02,
26 UNIT_BAR = 0x04,
27 UNIT_PSI = 0x08,
28 UNIT_MH2O = 0x10,
29 UNIT_MMHG = 0x20,
30 UNIT_ATM = 0x40,
32 UNIT_ALL = 0xFF
34
36 void init() override;
37 void setBatteryLevel(uint8_t value);
38 void setSignalLevel(uint8_t value);
39 void setProgress(uint8_t value);
40 void setWheel(uint16_t value);
41 void setUnits(uint8_t units);
42 void clearUnits(uint8_t units);
43 void setCursor(uint8_t row, uint8_t col) override;
44 using SegLCDLib::write;
45 size_t write(uint8_t ch) override;
46
47 protected:
48 void _setColon(uint8_t row, uint8_t col, bool state) override;
49 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
50
51 private:
52 static constexpr uint8_t ADDR_SIGNAL_BATT = 0;
53 static constexpr uint8_t ADDR_WHEEL = 2;
54 static constexpr uint8_t ADDR_SMALL_SEGS = 6;
55 static constexpr uint8_t ADDR_PRES_LABELS = 14;
56 static constexpr uint8_t ADDR_PROGRESS = 16;
57 static constexpr uint8_t ADDR_BIG_SEGS = 20;
58
59 static constexpr uint8_t RAM_SIZE = 16;
60 static constexpr uint8_t OFFSET_SIGBATT = 0; // HW 0
61 static constexpr uint8_t OFFSET_WHEEL = 1; // HW 2
62 static constexpr uint8_t OFFSET_TOP = 3; // HW 6
63 static constexpr uint8_t OFFSET_LABELS = 7; // HW 14
64 static constexpr uint8_t OFFSET_PROGRESS = 8; // HW 16
65 static constexpr uint8_t OFFSET_DEFAULT = 10; // HW 20
66
67 static constexpr uint8_t FLAG_COLON_TOP = 0x01;
68 static constexpr uint8_t FLAG_COLON_DEFAULT = 0x02;
69
70 // Decimal configuration: column offset -1 (dot belongs to previous position)
71 static constexpr uint8_t DECIMAL_POINT_BIT = 0x10;
72 static constexpr int8_t DECIMAL_COL_OFFSET = -1; // -1: dot belongs to previous position
73 static constexpr uint8_t DECIMAL_TOP_MIN_COL = 0;
74 static constexpr uint8_t DECIMAL_TOP_MAX_COL = 2;
75 static constexpr uint8_t DECIMAL_BOTTOM_MIN_COL = 0;
76 static constexpr uint8_t DECIMAL_BOTTOM_MAX_COL = 4;
77
78 // Colon configuration
79 static constexpr uint8_t COLON_TOP_COL = 2;
80 static constexpr uint8_t COLON_BOTTOM_COL = 4;
81
82 uint8_t _mapSegments(uint8_t val);
83};
84#endif
85
86#endif
Implementation of the PCF85176 controllers.
Definition SegDriver_PCF85176.h:9
static constexpr uint8_t DEFAULT_PCX85_I2C_ADDRESS
Definition SegDriver_PCx85.h:18
static constexpr uint8_t DEFAULT_SUBADDRESS
Definition SegDriver_PCx85.h:19
virtual size_t write(uint8_t)
Definition SegLCDLib.h:113
6-digit LCD with signal/battery/progress indicators (PCF85176).
Definition SegLCD_PCF85176_6DigSigBattProgress.h:21
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:318
static constexpr uint8_t DECIMAL_BOTTOM_MIN_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:75
static constexpr uint8_t DECIMAL_TOP_MIN_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:73
static constexpr uint8_t OFFSET_PROGRESS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:64
static constexpr uint8_t FLAG_COLON_DEFAULT
Definition SegLCD_PCF85176_6DigSigBattProgress.h:68
static constexpr uint8_t OFFSET_WHEEL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:61
void setCursor(uint8_t row, uint8_t col) override
Set cursor on exact digit.
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:199
static constexpr uint8_t ADDR_WHEEL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:53
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:164
static constexpr uint8_t ADDR_PROGRESS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:56
void setUnits(uint8_t units)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:116
static constexpr uint8_t OFFSET_LABELS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:63
static constexpr uint8_t ADDR_PRES_LABELS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:55
static constexpr uint8_t OFFSET_DEFAULT
Definition SegLCD_PCF85176_6DigSigBattProgress.h:65
void clearUnits(uint8_t units)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:122
static constexpr uint8_t DECIMAL_TOP_MAX_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:74
static constexpr uint8_t COLON_BOTTOM_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:80
static constexpr uint8_t ADDR_SIGNAL_BATT
Definition SegLCD_PCF85176_6DigSigBattProgress.h:52
static constexpr uint8_t RAM_SIZE
Definition SegLCD_PCF85176_6DigSigBattProgress.h:59
static constexpr uint8_t ADDR_SMALL_SEGS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:54
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_PCF85176_6DigSigBattProgress.h:71
void setProgress(uint8_t value)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:52
UnitFlags
Definition SegLCD_PCF85176_6DigSigBattProgress.h:23
@ UNIT_KPA
Definition SegLCD_PCF85176_6DigSigBattProgress.h:25
@ UNIT_ATM
Definition SegLCD_PCF85176_6DigSigBattProgress.h:30
@ UNIT_BAR
Definition SegLCD_PCF85176_6DigSigBattProgress.h:26
@ UNIT_ALL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:32
@ UNIT_MPA
Definition SegLCD_PCF85176_6DigSigBattProgress.h:24
@ UNIT_MMHG
Definition SegLCD_PCF85176_6DigSigBattProgress.h:29
@ UNIT_MH2O
Definition SegLCD_PCF85176_6DigSigBattProgress.h:28
@ UNIT_PSI
Definition SegLCD_PCF85176_6DigSigBattProgress.h:27
@ UNIT_KGFCM2
Definition SegLCD_PCF85176_6DigSigBattProgress.h:31
static constexpr uint8_t ADDR_BIG_SEGS
Definition SegLCD_PCF85176_6DigSigBattProgress.h:57
void setWheel(uint16_t value)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:109
static constexpr uint8_t COLON_TOP_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:79
size_t write(uint8_t ch) override
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:204
static constexpr uint8_t FLAG_COLON_TOP
Definition SegLCD_PCF85176_6DigSigBattProgress.h:67
static constexpr uint8_t DECIMAL_BOTTOM_MAX_COL
Definition SegLCD_PCF85176_6DigSigBattProgress.h:76
void setSignalLevel(uint8_t value)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:33
static constexpr uint8_t OFFSET_SIGBATT
Definition SegLCD_PCF85176_6DigSigBattProgress.h:60
void setBatteryLevel(uint8_t value)
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:14
static constexpr uint8_t OFFSET_TOP
Definition SegLCD_PCF85176_6DigSigBattProgress.h:62
void init() override
Logical display sections that can be targeted by higher-level rendering logic.
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:9
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_PCF85176_6DigSigBattProgress.h:72
void _setColon(uint8_t row, uint8_t col, bool state) override
Virtual method for setting colon.
Definition SegLCD_PCF85176_6DigSigBattProgress.cpp:128
Abstract I2C transport.
Definition SegTransport.h:54