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

#include <TouchDrvCHSC5816.hpp>

Inheritance diagram for TouchDrvCHSC5816:
[legend]

Public Member Functions

 TouchDrvCHSC5816 ()=default
 Constructor for the touch driver.
 
 ~TouchDrvCHSC5816 ()=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_BOOT_STATE = 0x20000018
 
static constexpr uint32_t REG_IMG_HEAD = 0x20000014
 
static constexpr uint32_t REG_POINT_EVENT = 0x2000002C
 
static constexpr uint32_t REG_POINT = 0x2000002E
 
static constexpr uint8_t MAX_FINGER_NUM = (1)
 
static constexpr uint8_t BYTES_PER_POINT = (5)
 
static constexpr uint8_t POINT_BUFFER_SIZE = (MAX_FINGER_NUM * BYTES_PER_POINT + 3)
 
static constexpr uint8_t COMMAND_SIZE = (4)
 

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

Definition at line 39 of file touch/TouchDrvCHSC5816.hpp.

Constructor & Destructor Documentation

◆ TouchDrvCHSC5816()

TouchDrvCHSC5816::TouchDrvCHSC5816 ( )
default

Constructor for the touch driver.

Return values
None

◆ ~TouchDrvCHSC5816()

TouchDrvCHSC5816::~TouchDrvCHSC5816 ( )
default

Destructor for the touch driver.

Return values
None

Member Function Documentation

◆ getModelName()

const char * TouchDrvCHSC5816::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 73 of file TouchDrvCHSC5816.cpp.

Referenced by setup().

◆ getTouchPoints()

const TouchPoints & TouchDrvCHSC5816::getTouchPoints ( )
overridevirtual

Get the touch points.

Note
This function retrieves the touch points from the touch driver.
Return values
Thetouch points.

Implements TouchDrvInterface.

Definition at line 45 of file TouchDrvCHSC5816.cpp.

References TouchDrvInterface::_touchPoints, TouchPoints::addPoint(), addrToBeBuf(), TouchPoints::clear(), COMMAND_SIZE, MAX_FINGER_NUM, POINT_BUFFER_SIZE, pressure(), REG_POINT_EVENT, TouchDrvInterface::updateXY(), SensorCommWrapper::writeThenRead(), x, and y.

Referenced by loop().

◆ sleep()

void TouchDrvCHSC5816::sleep ( )
overridevirtual

Puts the touch driver to sleep.

Note
This function puts the touch driver into sleep mode. If the device does not have a reset pin connected, it cannot be woken up after being put into sleep mode and must be powered on again.
Return values
None

Implements TouchDrvInterface.

Definition at line 35 of file TouchDrvCHSC5816.cpp.

References arraySize(), and SensorCommWrapper::writeBuff().

Member Data Documentation

◆ BYTES_PER_POINT

constexpr uint8_t TouchDrvCHSC5816::BYTES_PER_POINT = (5)
staticconstexprprotected

Definition at line 87 of file touch/TouchDrvCHSC5816.hpp.

◆ COMMAND_SIZE

constexpr uint8_t TouchDrvCHSC5816::COMMAND_SIZE = (4)
staticconstexprprotected

Definition at line 89 of file touch/TouchDrvCHSC5816.hpp.

Referenced by getTouchPoints().

◆ MAX_FINGER_NUM

constexpr uint8_t TouchDrvCHSC5816::MAX_FINGER_NUM = (1)
staticconstexprprotected

Definition at line 86 of file touch/TouchDrvCHSC5816.hpp.

Referenced by getTouchPoints().

◆ POINT_BUFFER_SIZE

constexpr uint8_t TouchDrvCHSC5816::POINT_BUFFER_SIZE = (MAX_FINGER_NUM * BYTES_PER_POINT + 3)
staticconstexprprotected

Definition at line 88 of file touch/TouchDrvCHSC5816.hpp.

Referenced by getTouchPoints().

◆ REG_BOOT_STATE

constexpr uint32_t TouchDrvCHSC5816::REG_BOOT_STATE = 0x20000018
staticconstexprprotected

Definition at line 82 of file touch/TouchDrvCHSC5816.hpp.

◆ REG_IMG_HEAD

constexpr uint32_t TouchDrvCHSC5816::REG_IMG_HEAD = 0x20000014
staticconstexprprotected

Definition at line 83 of file touch/TouchDrvCHSC5816.hpp.

◆ REG_POINT

constexpr uint32_t TouchDrvCHSC5816::REG_POINT = 0x2000002E
staticconstexprprotected

Definition at line 85 of file touch/TouchDrvCHSC5816.hpp.

◆ REG_POINT_EVENT

constexpr uint32_t TouchDrvCHSC5816::REG_POINT_EVENT = 0x2000002C
staticconstexprprotected

Definition at line 84 of file touch/TouchDrvCHSC5816.hpp.

Referenced by getTouchPoints().


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