Display_Lib_RPI 2.3.0
A C++ Library to connect electronic displays to Linux single board computers.
Loading...
Searching...
No Matches
HT16K33plus_Model1_RDL.hpp
Go to the documentation of this file.
1
11#pragma once
12
13#include <stdint.h>
14#include <stdbool.h>
15#include <algorithm> // Required for std::fill
16#include <cstring>
17
18#include <lgpio.h>
19#include "common_data_RDL.hpp"
21
24{
25 public:
26 // enums:
28 enum TextAlignment_e : uint8_t
29 {
33 };
38 enum BlinkFreq_e : uint8_t
39 {
40 BLINKOFF = 0x81,
41 BLINKON2HZ = 0x83,
42 BLINKON1HZ = 0x85,
43 BLINKON0_5HZ = 0x87
44 };
46 enum DecimalPoint_e : uint8_t
47 {
49 DecPointOn = 1
50 };
52 enum DisplayType_e : uint8_t
53 {
56 SegType14 = 14,
57 SegType16 = 16
58 };
59 // constructor
60 HT16K33plus_Model1(int I2Cdevice, int I2Caddress, int I2Cflags);
61 // methods I2C related
64 int DisplayCheckConnection(void);
65 int DisplayI2CErrorGet(void) const;
66 uint16_t DisplayI2CErrorTimeoutGet(void) const;
67 void DisplayI2CErrorTimeoutSet(uint16_t);
68 uint8_t DisplayI2CErrorRetryNumGet(void) const;
69 void DisplayI2CErrorRetryNumSet(uint8_t);
70
71 // Device related
72 void DisplayInit(uint8_t brightLevel, BlinkFreq_e blink,
73 uint8_t numOfDigits, DisplayType_e dtype);
74 void DisplayOn(void);
75 void DisplayOff(void);
76 void DisplaySleep(void);
77 void DisplayNormal(void);
78 void DisplayResetDefault(void);
79 void setBrightness(uint8_t value);
80 uint8_t getBrightness() const;
81 void setBlink(BlinkFreq_e value);
82 BlinkFreq_e getBlink() const;
84
85 // Display data related
86 void ClearDigits(void);
87 //raw data segments
88 void displayRawData(uint8_t digitPos, uint16_t value);
89 // Display data
90 rdlib::Return_Codes_e displayChar(uint8_t digitPos, char c, DecimalPoint_e dp);
91 rdlib::Return_Codes_e displayText(const char *text, TextAlignment_e TextAlignment);
92 rdlib::Return_Codes_e displayText(const char *text);
93 rdlib::Return_Codes_e displayHexChar(uint8_t digitPos, char hex);
94 rdlib::Return_Codes_e displayIntNum(int32_t number, TextAlignment_e TextAlignment);
95 rdlib::Return_Codes_e displayFloatNum(float number, TextAlignment_e TextAlignment, uint8_t fractionDigits);
96 protected:
97
98 private:
99 rdlib::Return_Codes_e displayMultiSegNum(uint8_t digitPos, char c, DecimalPoint_e dp);
100
101 // methods I2C related
102 void SendCmd(uint8_t cmd);
103 void SendData(const unsigned char* data, size_t length);
104
105 // Members I2C related
106 int _I2CAddress = 0x70 ;
107 int _I2CDevice = 1;
108 int _I2CFlags = 0;
109 int _I2CHandle = 0;
110 uint16_t _I2C_ErrorDelay = 100;
111 uint8_t _I2C_ErrorRetryNum = 3;
114 // members device related
115 // Register Command List
116 static constexpr uint8_t HT16K33_DDAPTR = 0x00;
117 static constexpr uint8_t HT16K33_NORMAL = 0x21;
118 static constexpr uint8_t HT16K33_STANDBY = 0x20;
119 static constexpr uint8_t HT16K33_DISPLAYON = 0x81;
120 static constexpr uint8_t HT16K33_DISPLAYOFF = 0x80;
121 static constexpr uint8_t HT16K33_BRIGHTNESS = 0xE0;
125 uint8_t _brightness = 7;
126 uint8_t _numOfDigits = 4;
128 // Display Offsets and Masks for ASCII Font
129 static constexpr uint8_t _HT_ASCIIOffset = 0x20;
130 static constexpr uint8_t _HT_HEXoffset = 0x10;
131 static constexpr uint8_t _HT_ASCIIEnd = 0x7B;
133 static constexpr uint8_t _HT_DEC_POINT_7_MASK = 0x80;
134 static constexpr uint16_t _HT_DEC_POINT_9_MASK = 0x0200;
135 static constexpr uint16_t _HT_DEC_POINT_14_MASK = 0x4000;
137};
138
class to control Ht16K33 , supports 7 9 14 and 16 segment displays
Definition HT16K33plus_Model1_RDL.hpp:24
static constexpr uint16_t _HT_DEC_POINT_14_MASK
Definition HT16K33plus_Model1_RDL.hpp:135
BlinkFreq_e _blinkSetting
Definition HT16K33plus_Model1_RDL.hpp:123
void DisplayI2CErrorRetryNumSet(uint8_t)
Sets the I2C error retry attempts used in the event of an I2C write error.
Definition HT16K33plus_Model1_RDL.cpp:155
int _I2CDevice
Definition HT16K33plus_Model1_RDL.hpp:107
rdlib::Return_Codes_e displayIntNum(int32_t number, TextAlignment_e TextAlignment)
Display an integer and leading zeros optional.
Definition HT16K33plus_Model1_RDL.cpp:516
TextAlignment_e
Definition HT16K33plus_Model1_RDL.hpp:29
@ AlignLeft
Definition HT16K33plus_Model1_RDL.hpp:30
@ AlignRightZeros
Definition HT16K33plus_Model1_RDL.hpp:32
@ AlignRight
Definition HT16K33plus_Model1_RDL.hpp:31
uint8_t getBrightness() const
Gets the current brightness level.
Definition HT16K33plus_Model1_RDL.cpp:289
static constexpr uint8_t HT16K33_DDAPTR
Definition HT16K33plus_Model1_RDL.hpp:116
void setBrightness(uint8_t value)
Sets the display brightness level.
Definition HT16K33plus_Model1_RDL.cpp:273
void DisplayI2CErrorTimeoutSet(uint16_t)
Sets the I2C timeout, in the event of an I2C write error.
Definition HT16K33plus_Model1_RDL.cpp:131
void DisplayNormal(void)
Restores the display to normal operation mode. Turn on System oscillator.
Definition HT16K33plus_Model1_RDL.cpp:228
int _I2CFlags
Definition HT16K33plus_Model1_RDL.hpp:108
static constexpr uint8_t HT16K33_NORMAL
Definition HT16K33plus_Model1_RDL.hpp:117
static constexpr uint8_t _HT_DEC_POINT_7_MASK
Definition HT16K33plus_Model1_RDL.hpp:133
static constexpr uint8_t _HT_HEXoffset
Definition HT16K33plus_Model1_RDL.hpp:130
static constexpr uint8_t _HT_ASCIIOffset
Definition HT16K33plus_Model1_RDL.hpp:129
void displayRawData(uint8_t digitPos, uint16_t value)
Sends raw segment data to a specific digit position.
Definition HT16K33plus_Model1_RDL.cpp:373
static constexpr uint8_t HT16K33_STANDBY
Definition HT16K33plus_Model1_RDL.hpp:118
uint8_t _I2C_ErrorRetryNum
Definition HT16K33plus_Model1_RDL.hpp:111
DisplayType_e _displayType
Definition HT16K33plus_Model1_RDL.hpp:124
int DisplayCheckConnection(void)
checks if Display on I2C bus
Definition HT16K33plus_Model1_RDL.cpp:166
rdlib::Return_Codes_e displayHexChar(uint8_t digitPos, char hex)
Send Hexadecimal value to seven segment.
Definition HT16K33plus_Model1_RDL.cpp:484
rdlib::Return_Codes_e displayFloatNum(float number, TextAlignment_e TextAlignment, uint8_t fractionDigits)
Displays a floating-point number on the display.
Definition HT16K33plus_Model1_RDL.cpp:554
void DisplayOff(void)
Turns off the display.
Definition HT16K33plus_Model1_RDL.cpp:214
uint8_t DisplayI2CErrorRetryNumGet(void) const
Gets the I2C error retry attempts, used in the event of an I2C write error.
Definition HT16K33plus_Model1_RDL.cpp:148
uint16_t _I2C_ErrorDelay
Definition HT16K33plus_Model1_RDL.hpp:110
int DisplayI2CErrorGet(void) const
get I2C error Flag
Definition HT16K33plus_Model1_RDL.cpp:124
static constexpr uint8_t HT16K33_DISPLAYOFF
Definition HT16K33plus_Model1_RDL.hpp:120
static constexpr uint8_t HT16K33_DISPLAYON
Definition HT16K33plus_Model1_RDL.hpp:119
rdlib::Return_Codes_e displayChar(uint8_t digitPos, char c, DecimalPoint_e dp)
Displays a single character at the specified digit position.
Definition HT16K33plus_Model1_RDL.cpp:304
void ClearDigits(void)
Clears all digits on the display.
Definition HT16K33plus_Model1_RDL.cpp:388
rdlib::Return_Codes_e Display_I2C_ON(void)
Switch on the I2C.
Definition HT16K33plus_Model1_RDL.cpp:84
uint8_t _numOfDigits
Definition HT16K33plus_Model1_RDL.hpp:126
int _I2CAddress
Definition HT16K33plus_Model1_RDL.hpp:106
DisplayType_e getDisplayType() const
Gets the display type.
Definition HT16K33plus_Model1_RDL.cpp:265
rdlib::Return_Codes_e Display_I2C_OFF(void)
End I2C operations.
Definition HT16K33plus_Model1_RDL.cpp:106
void setBlink(BlinkFreq_e value)
Sets the display blink frequency.
Definition HT16K33plus_Model1_RDL.cpp:248
int _I2C_ErrorFlag
Definition HT16K33plus_Model1_RDL.hpp:112
static constexpr uint8_t _HT_ASCIIEnd
Definition HT16K33plus_Model1_RDL.hpp:131
BlinkFreq_e
Definition HT16K33plus_Model1_RDL.hpp:39
@ BLINKON1HZ
Definition HT16K33plus_Model1_RDL.hpp:42
@ BLINKON0_5HZ
Definition HT16K33plus_Model1_RDL.hpp:43
@ BLINKOFF
Definition HT16K33plus_Model1_RDL.hpp:40
@ BLINKON2HZ
Definition HT16K33plus_Model1_RDL.hpp:41
rdlib::Return_Codes_e displayMultiSegNum(uint8_t digitPos, char c, DecimalPoint_e dp)
Displays a character on multi-segment displays (9, 14, or 16 segments).
Definition HT16K33plus_Model1_RDL.cpp:336
BlinkFreq_e getBlink() const
Gets the current blink frequency setting.
Definition HT16K33plus_Model1_RDL.cpp:257
uint8_t _brightness
Definition HT16K33plus_Model1_RDL.hpp:125
rdlib::Return_Codes_e displayText(const char *text, TextAlignment_e TextAlignment)
Displays a text string on display.
Definition HT16K33plus_Model1_RDL.cpp:405
int _I2CHandle
Definition HT16K33plus_Model1_RDL.hpp:109
uint16_t DisplayI2CErrorTimeoutGet(void) const
Gets the I2C timeout, used in the event of an I2C write error.
Definition HT16K33plus_Model1_RDL.cpp:141
static constexpr uint8_t HT16K33_BRIGHTNESS
Definition HT16K33plus_Model1_RDL.hpp:121
void DisplayOn(void)
Turns on the display with the previously set blink setting.
Definition HT16K33plus_Model1_RDL.cpp:207
void SendData(const unsigned char *data, size_t length)
Send data buffer to via I2C.
Definition HT16K33plus_Model1_RDL.cpp:29
DecimalPoint_e
Definition HT16K33plus_Model1_RDL.hpp:47
@ DecPointOff
Definition HT16K33plus_Model1_RDL.hpp:48
@ DecPointOn
Definition HT16K33plus_Model1_RDL.hpp:49
void SendCmd(uint8_t cmd)
Send command byte to display.
Definition HT16K33plus_Model1_RDL.cpp:54
static constexpr uint16_t _HT_DEC_POINT_9_MASK
Definition HT16K33plus_Model1_RDL.hpp:134
void DisplaySleep(void)
Puts the display into standby mode. Turn off System oscillator.
Definition HT16K33plus_Model1_RDL.cpp:221
DisplayType_e
Definition HT16K33plus_Model1_RDL.hpp:53
@ SegType7
Definition HT16K33plus_Model1_RDL.hpp:54
@ SegType14
Definition HT16K33plus_Model1_RDL.hpp:56
@ SegType16
Definition HT16K33plus_Model1_RDL.hpp:57
@ SegType9
Definition HT16K33plus_Model1_RDL.hpp:55
void DisplayInit(uint8_t brightLevel, BlinkFreq_e blink, uint8_t numOfDigits, DisplayType_e dtype)
Initializes the HT16K33 display with specified settings.
Definition HT16K33plus_Model1_RDL.cpp:188
void DisplayResetDefault(void)
Resets the display to default settings.
Definition HT16K33plus_Model1_RDL.cpp:237
file to hold common data and functions used by many Displays Project Name: Display_Lib_RPI
LED segment font data file for ht16k33 tm1638, tm1637 & max7219 modules.
Return_Codes_e
Definition common_data_RDL.hpp:22