SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
TouchDrvHI8561 Class Reference

HI8561 Touchscreen Display Chip Touch Class This class provides the touch reading functionality for the HI8561. More...

#include <TouchDrvHI8561.hpp>

Inheritance diagram for TouchDrvHI8561:
[legend]

Public Member Functions

 TouchDrvHI8561 ()=default
 Constructor for the touch driver.
 
 ~TouchDrvHI8561 ()=default
 Destructor for the touch driver.
 
void sleep () override
 Puts the touch driver to sleep.
 
const TouchPointsgetTouchPoints () override
 Get the touch points.
 
const char * getModelName () override
 Get the model name.
 
- Public Member Functions inherited from TouchDrvInterface
 TouchDrvInterface ()
 Construct a new TouchDrvInterface object.
 
virtual ~TouchDrvInterface ()=default
 Destroy the TouchDrvInterface object.
 
virtual bool begin (SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_callback, uint8_t addr)
 Initialize the touch driver with custom communication callbacks.
 
virtual void setGpioCallback (SensorHalCustom::CustomMode mode_cb, SensorHalCustom::CustomWrite write_cb, SensorHalCustom::CustomRead read_cb)
 Set custom GPIO callbacks for pin control (e.g., reset, interrupt).
 
virtual uint8_t getSupportTouchPoint ()
 Get the maximum number of touch points supported by the hardware.
 
virtual void getResolution (uint16_t &x, uint16_t &y)
 Get the raw resolution (maximum coordinate values) of the touch panel.
 
virtual uint16_t getResolutionX ()
 Get the raw maximum X coordinate of the touch panel.
 
virtual uint16_t getResolutionY ()
 Get the raw maximum Y coordinate of the touch panel.
 
virtual void reset ()
 Reset the touch controller.
 
virtual void wakeup ()
 Wake the touch controller from sleep mode (pure virtual).
 
virtual uint8_t getPoint (int16_t *x_array, int16_t *y_array, uint8_t get_point=1) __attribute__((deprecated("use getTouchPoints instead of getPoint")))
 Retrieve touch point coordinates (deprecated).
 
virtual bool isPressed (uint32_t filter_ms=0)
 Check if any touch point is currently pressed.
 
virtual uint32_t getChipID ()
 Get the chip identifier (e.g., ID register value).
 
virtual void setPins (int rst, int irq)
 Set the hardware reset and interrupt pin numbers.
 
virtual const TouchPinsCfggetTouchPinsCfg () const
 Get the current touch pins configuration.
 
virtual void setSwapXY (bool swap)
 Enable or disable swapping of X and Y coordinates.
 
virtual bool isSwapXY () const
 Check if X and Y coordinates are swapped.
 
virtual void setMirrorXY (bool mirrorX, bool mirrorY)
 Enable or disable mirroring of X and/or Y coordinates.
 
virtual bool isMirrorX () const
 Check if X coordinates are mirrored.
 
virtual bool isMirrorY () const
 Check if Y coordinates are mirrored.
 
virtual void setMaxCoordinates (uint16_t x, uint16_t y)
 Set the maximum coordinate values used for mirroring.
 
virtual void getMaxCoordinates (uint16_t &x, uint16_t &y)
 Get the maximum coordinates used for mirroring.
 
virtual uint16_t getMaxX ()
 Get the maximum X coordinate (e.g., display width).
 
virtual uint16_t getMaxY ()
 Get the maximum Y coordinate (e.g., display height).
 
virtual bool isScalingEnabled ()
 Check if coordinate scaling is enabled.
 
virtual void setResolution (uint16_t width, uint16_t height)
 Set the raw resolution of the touch panel (physical maximum coordinates).
 
virtual void setTargetResolution (uint16_t width, uint16_t height)
 Set the target display resolution to map touch coordinates to screen pixels.
 
virtual void updateXY (TouchPoints &points) const
 Apply coordinate transformations (swap, scale, mirror) to all touch points.
 
virtual void setHomeButtonCallback (HomeButtonCallback cb, void *user_data)
 Register a callback for home button events.
 
virtual void setCenterButtonCoordinate (int16_t x, int16_t y)
 Set the expected screen coordinates of a hardware home button.
 
- Public Member Functions inherited from I2CDeviceWithHal
bool begin (SensorCommCustom::CustomCallback cb, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)
 Initialize the sensor using custom callback interface.
 
- Public Member Functions inherited from DeviceBeginCommon
virtual ~DeviceBeginCommon ()
 
uint8_t getAddress () const
 
uint8_t getInterface () const
 
- Public Member Functions inherited from SensorCommWrapper
 SensorCommWrapper ()=default
 
int readReg (uint8_t reg) const
 
int readRegBuff (uint8_t reg, uint8_t *buf, size_t len) const
 
int readBuff (uint8_t *buf, size_t len) const
 
int writeReg (uint8_t reg, uint8_t val)
 
int writeRegBuff (uint8_t reg, uint8_t *buf, size_t len)
 
int writeBuff (uint8_t *buf, size_t len)
 
int writeThenRead (const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len)
 
bool setRegBit (uint8_t reg, uint8_t bit)
 
bool clrRegBit (uint8_t reg, uint8_t bit)
 
bool getRegBit (uint8_t reg, uint8_t bit)
 
int updateBits (uint8_t reg, uint8_t mask, uint8_t value_shifted)
 
void setAddress (uint8_t address)
 
void setAck (bool enable)
 
- Public Member Functions inherited from SensorCommInterface
virtual ~SensorCommInterface ()=default
 

Static Protected Attributes

static constexpr uint32_t REG_SECTION_INFO = 0x200110D8
 
static constexpr uint32_t REG_INFO = 0x20011120
 
static constexpr uint32_t REG_POINT = 0x20011123
 
static constexpr uint8_t BYTES_OFFSET = 3
 
static constexpr uint8_t MAX_FINGER_NUM = (10)
 
static constexpr uint8_t BYTES_PER_POINT = (5)
 

Additional Inherited Members

- Public Types inherited from TouchDrvInterface
using HomeButtonCallback = void(*)(void *user_data)
 Callback type for home button events.
 
- Protected Member Functions inherited from I2CDeviceWithHal
bool ensureValid () const override
 Ensure the communication interface is valid.
 
- Protected Member Functions inherited from DeviceBeginCommon
 DeviceBeginCommon ()=default
 
virtual SensorCommBasegetComm () const override
 
virtual void beforeBegin ()
 
virtual void afterInitSuccess (uint8_t param)
 
virtual void onBeginFail ()
 
bool fail ()
 
void clearCommState ()
 
template<typename CreateComm >
bool beginLifecycle (uint8_t addr, uint8_t iface, uint8_t initParam, CreateComm createComm)
 
- Protected Attributes inherited from TouchDrvInterface
SensorHalCustom::CustomMode _halModeCallback
 Custom GPIO mode callback.
 
SensorHalCustom::CustomWrite _halWriteCallback
 Custom GPIO write callback.
 
SensorHalCustom::CustomRead _halReadCallback
 Custom GPIO read callback.
 
uint32_t _chipID
 Chip identification value.
 
HomeButtonCallback _HButtonCallback
 Home button callback function.
 
void * _userData
 User data for home button callback.
 
uint8_t _maxTouchPoints
 Maximum supported touch points.
 
int16_t _center_btn_x
 X coordinate of home button center.
 
int16_t _center_btn_y
 Y coordinate of home button center.
 
uint32_t _lastPulse
 Timestamp of the last touch event.
 
TouchPinsCfg _pinsCfg
 Configuration for reset and interrupt pins.
 
TouchConfig _touchConfig
 Configuration for coordinate transformations.
 
TouchPoints _touchPoints
 Touch points data.
 
- Protected Attributes inherited from DeviceBeginCommon
std::unique_ptr< SensorCommBasecomm
 
std::unique_ptr< SensorHalhal
 
std::unique_ptr< SensorCommStaticstaticComm
 
uint8_t _addr = 0
 
uint8_t _iface = COMM_CUSTOM
 

Detailed Description

HI8561 Touchscreen Display Chip Touch Class This class provides the touch reading functionality for the HI8561.

Note: This class cannot be used independently; the screen must be initialized first before calling this class for initialization. This is a characteristic of most touchscreen display chips.

Definition at line 46 of file touch/TouchDrvHI8561.hpp.

Constructor & Destructor Documentation

◆ TouchDrvHI8561()

TouchDrvHI8561::TouchDrvHI8561 ( )
default

Constructor for the touch driver.

Return values
None

◆ ~TouchDrvHI8561()

TouchDrvHI8561::~TouchDrvHI8561 ( )
default

Destructor for the touch driver.

Return values
None

Member Function Documentation

◆ getModelName()

const char * TouchDrvHI8561::getModelName ( )
overridevirtual

Get the model name.

Note
This function will retrieve the model name from the touch driver.
Return values
Themodel name.

Implements TouchDrvInterface.

Definition at line 82 of file TouchDrvHI8561.cpp.

◆ getTouchPoints()

const TouchPoints & TouchDrvHI8561::getTouchPoints ( )
overridevirtual

Get the touch points.

Note
This function will retrieve the touch points from the touch driver. TouchPoints is configured with a 5-point touch point buffer by default, so it can return touch data from a maximum of 5 points. Although the HI8561 supports 10-point touch
Return values
Areference to the touch points.

Implements TouchDrvInterface.

Definition at line 40 of file TouchDrvHI8561.cpp.

References TouchDrvInterface::_touchPoints, TouchPoints::addPoint(), BYTES_PER_POINT, TouchPoints::clear(), i, MAX_FINGER_NUM, pressure(), REG_INFO, REG_POINT, SENSORLIB_LOG_E, TouchDrvInterface::updateXY(), x, and y.

◆ sleep()

void TouchDrvHI8561::sleep ( )
overridevirtual

Puts the touch driver to sleep.

Note
The chip integrates touch and display functions, and a sleep mode cannot be set.
Return values
None

Implements TouchDrvInterface.

Definition at line 35 of file TouchDrvHI8561.cpp.

Member Data Documentation

◆ BYTES_OFFSET

constexpr uint8_t TouchDrvHI8561::BYTES_OFFSET = 3
staticconstexprprotected

Definition at line 111 of file touch/TouchDrvHI8561.hpp.

◆ BYTES_PER_POINT

constexpr uint8_t TouchDrvHI8561::BYTES_PER_POINT = (5)
staticconstexprprotected

Definition at line 113 of file touch/TouchDrvHI8561.hpp.

Referenced by getTouchPoints().

◆ MAX_FINGER_NUM

constexpr uint8_t TouchDrvHI8561::MAX_FINGER_NUM = (10)
staticconstexprprotected

Definition at line 112 of file touch/TouchDrvHI8561.hpp.

Referenced by getTouchPoints().

◆ REG_INFO

constexpr uint32_t TouchDrvHI8561::REG_INFO = 0x20011120
staticconstexprprotected

Definition at line 109 of file touch/TouchDrvHI8561.hpp.

Referenced by getTouchPoints().

◆ REG_POINT

constexpr uint32_t TouchDrvHI8561::REG_POINT = 0x20011123
staticconstexprprotected

Definition at line 110 of file touch/TouchDrvHI8561.hpp.

Referenced by getTouchPoints().

◆ REG_SECTION_INFO

constexpr uint32_t TouchDrvHI8561::REG_SECTION_INFO = 0x200110D8
staticconstexprprotected

Definition at line 108 of file touch/TouchDrvHI8561.hpp.


The documentation for this class was generated from the following files: