SensorLib 0.5.1
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 TouchPoints & getTouchPoints () 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 TouchPinsCfg & getTouchPinsCfg () 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 SensorCommBase * getComm () 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< SensorCommBase > comm
 
std::unique_ptr< SensorHal > hal
 
std::unique_ptr< SensorCommStatic > staticComm
 
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: