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

#include <TouchDrvCST3530.hpp>

Inheritance diagram for TouchDrvCST3530:
[legend]

Public Member Functions

 TouchDrvCST3530 ()=default
 Constructor for the touch driver.
 
 ~TouchDrvCST3530 ()=default
 Destructor for the touch driver.
 
void sleep () override
 Puts the touch driver to sleep.
 
void wakeup () override
 Wake up the touch driver.
 
const TouchPointsgetTouchPoints () override
 Get the touch points.
 
const char * getModelName () override
 Get the model name.
 
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).
 
- 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 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 READ_COMMAND = (0xD0070000)
 
static constexpr uint32_t INFO_COMMAND = (0xD0030000)
 
static constexpr uint32_t SLEEP_COMMAND = (0xD00022AB)
 
static constexpr uint32_t CLEAR_COMMAND = (0xD00002AB)
 
static constexpr uint8_t MAX_FINGER_NUM = (5)
 
static constexpr uint8_t MAX_READ_BYTES = (32)
 

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 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 40 of file TouchDrvCST3530.hpp.

Constructor & Destructor Documentation

◆ TouchDrvCST3530()

TouchDrvCST3530::TouchDrvCST3530 ( )
default

Constructor for the touch driver.

Return values
None

◆ ~TouchDrvCST3530()

TouchDrvCST3530::~TouchDrvCST3530 ( )
default

Destructor for the touch driver.

Return values
None

Member Function Documentation

◆ getModelName()

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

Referenced by setup().

◆ getPoint()

virtual uint8_t TouchDrvInterface::getPoint ( int16_t *  x_array,
int16_t *  y_array,
uint8_t  get_point = 1 
)
inlinevirtual

Retrieve touch point coordinates (deprecated).

Deprecated:
Use getTouchPoints() instead, which returns a richer TouchPoints object.
Parameters
[out]x_arrayPointer to array to store X coordinates.
[out]y_arrayPointer to array to store Y coordinates.
get_pointNumber of points to retrieve (max).
Returns
uint8_t Actual number of touch points detected.

Reimplemented from TouchDrvInterface.

Definition at line 288 of file touch/TouchDrvInterface.hpp.

◆ getTouchPoints()

const TouchPoints & TouchDrvCST3530::getTouchPoints ( )
overridevirtual

Get the touch points.

Note
This function will retrieve the touch points from the touch driver.
Return values
Areference to the touch points.

Implements TouchDrvInterface.

Definition at line 41 of file TouchDrvCST3530.cpp.

References TouchDrvInterface::_touchPoints, TouchPoints::addPoint(), TouchPoints::clear(), CLEAR_COMMAND, i, MAX_FINGER_NUM, MAX_READ_BYTES, pressure(), READ_COMMAND, and TouchDrvInterface::updateXY().

Referenced by loop().

◆ sleep()

void TouchDrvCST3530::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 100 of file TouchDrvCST3530.cpp.

References DeviceBeginCommon::hal, and SLEEP_COMMAND.

◆ wakeup()

void TouchDrvCST3530::wakeup ( )
overridevirtual

Wake up the touch driver.

Note
This function will wake up the touch driver from sleep mode.
Return values
None

Reimplemented from TouchDrvInterface.

Definition at line 108 of file TouchDrvCST3530.cpp.

References DeviceBeginCommon::hal, and TouchDrvInterface::reset().

Member Data Documentation

◆ CLEAR_COMMAND

constexpr uint32_t TouchDrvCST3530::CLEAR_COMMAND = (0xD00002AB)
staticconstexprprotected

Definition at line 116 of file TouchDrvCST3530.hpp.

Referenced by getTouchPoints().

◆ INFO_COMMAND

constexpr uint32_t TouchDrvCST3530::INFO_COMMAND = (0xD0030000)
staticconstexprprotected

Definition at line 114 of file TouchDrvCST3530.hpp.

◆ MAX_FINGER_NUM

constexpr uint8_t TouchDrvCST3530::MAX_FINGER_NUM = (5)
staticconstexprprotected

Definition at line 117 of file TouchDrvCST3530.hpp.

Referenced by getTouchPoints().

◆ MAX_READ_BYTES

constexpr uint8_t TouchDrvCST3530::MAX_READ_BYTES = (32)
staticconstexprprotected

Definition at line 118 of file TouchDrvCST3530.hpp.

Referenced by getTouchPoints().

◆ READ_COMMAND

constexpr uint32_t TouchDrvCST3530::READ_COMMAND = (0xD0070000)
staticconstexprprotected

Definition at line 113 of file TouchDrvCST3530.hpp.

Referenced by getTouchPoints().

◆ SLEEP_COMMAND

constexpr uint32_t TouchDrvCST3530::SLEEP_COMMAND = (0xD00022AB)
staticconstexprprotected

Definition at line 115 of file TouchDrvCST3530.hpp.

Referenced by sleep().


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