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

#include <TouchDrvCST92xx.hpp>

Inheritance diagram for TouchDrvCST92xx:
[legend]

Public Types

enum  CST92_RunMode {
  MODE_NORMAL = (0x00) , MODE_LOW_POWER = (0X01) , MODE_DEEP_SLEEP = (0X02) , MODE_WAKEUP = (0x03) ,
  MODE_DEBUG_DIFF = (0x04) , MODE_DEBUG_RAWDATA = (0X05) , MODE_FACTORY = (0x06) , MODE_DEBUG_INFO = (0x07) ,
  MODE_UPDATE_FW = (0x08) , MODE_FACTORY_HIGH_DRV = (0x10) , MODE_FACTORY_LOW_DRV = (0x11) , MODE_FACTORY_SHORT = (0x12) ,
  MODE_LPSCAN = (0x13)
}
 
- Public Types inherited from TouchDrvInterface
using HomeButtonCallback = void(*)(void *user_data)
 Callback type for home button events.
 

Public Member Functions

 TouchDrvCST92xx ()
 Constructor for the touch driver.
 
 ~TouchDrvCST92xx ()=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.
 
void setCoverScreenCallback (HomeButtonCallback cb, void *user_data=NULL)
 Set the cover screen callback.
 
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 void wakeup ()
 Wake the touch controller from sleep mode (pure virtual).
 
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
 

Protected Attributes

int _slave_addr
 
uint16_t chipType
 
- 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
 

Static Protected Attributes

static constexpr uint16_t CST9220_CHIP_ID = (0x9220)
 
static constexpr uint16_t CST9217_CHIP_ID = (0x9217)
 
static constexpr uint16_t REG_READ = (0xD000)
 
static constexpr uint16_t REG_DEBUG_MODE = (0xD101)
 
static constexpr uint16_t REG_SLEEP_MODE = (0xD105)
 
static constexpr uint16_t REG_DIS_LOW_POWER_SCAN_MODE = (0xD106)
 
static constexpr uint16_t REG_NORMAL_MODE = (0xD109)
 
static constexpr uint16_t REG_RAW_MODE = (0xD10A)
 
static constexpr uint16_t REG_DIFF_MODE = (0xD10D)
 
static constexpr uint16_t REG_BASE_LINE_MODE = (0xD10E)
 
static constexpr uint16_t REG_LOW_POWER_MODE = (0xD10F)
 
static constexpr uint16_t REG_FACTORY_MODE = (0xD114)
 
static constexpr uint8_t CST92XX_BOOT_ADDRESS = (0x5A)
 
static constexpr uint8_t CST92XX_ACK = (0xAB)
 
static constexpr uint32_t CST92XX_MEM_SIZE = (0x007F80)
 
static constexpr uint8_t MAX_FINGER_NUM = (2)
 
static constexpr uint8_t PROGRAM_PAGE_SIZE = (128)
 

Additional Inherited Members

- 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)
 

Detailed Description

Definition at line 38 of file TouchDrvCST92xx.hpp.

Member Enumeration Documentation

◆ CST92_RunMode

Enumerator
MODE_NORMAL 
MODE_LOW_POWER 
MODE_DEEP_SLEEP 
MODE_WAKEUP 
MODE_DEBUG_DIFF 
MODE_DEBUG_RAWDATA 
MODE_FACTORY 
MODE_DEBUG_INFO 
MODE_UPDATE_FW 
MODE_FACTORY_HIGH_DRV 
MODE_FACTORY_LOW_DRV 
MODE_FACTORY_SHORT 
MODE_LPSCAN 

Definition at line 42 of file TouchDrvCST92xx.hpp.

Constructor & Destructor Documentation

◆ TouchDrvCST92xx()

TouchDrvCST92xx::TouchDrvCST92xx ( )

Constructor for the touch driver.

Return values
None

Definition at line 34 of file TouchDrvCST92xx.cpp.

◆ ~TouchDrvCST92xx()

TouchDrvCST92xx::~TouchDrvCST92xx ( )
default

Destructor for the touch driver.

Return values
None

Member Function Documentation

◆ getModelName()

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

References TouchDrvInterface::_chipID, CST9217_CHIP_ID, and CST9220_CHIP_ID.

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 & TouchDrvCST92xx::getTouchPoints ( )
overridevirtual

◆ setCoverScreenCallback()

void TouchDrvCST92xx::setCoverScreenCallback ( HomeButtonCallback  cb,
void *  user_data = NULL 
)

Set the cover screen callback.

Note
This function will set the callback function for the cover screen.
Parameters
cbThe callback function to be set
*user_dataPointer to user data to be passed to the callback function
Return values
None

Definition at line 137 of file TouchDrvCST92xx.cpp.

References TouchDrvInterface::_HButtonCallback, and TouchDrvInterface::_userData.

Referenced by setup().

◆ sleep()

void TouchDrvCST92xx::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 118 of file TouchDrvCST92xx.cpp.

References TouchDrvInterface::_pinsCfg, addrToBeBuf(), DeviceBeginCommon::hal, TouchDrvInterface::TouchPinsCfg::irqPin, MODE_DEBUG_INFO, REG_SLEEP_MODE, TouchDrvInterface::TouchPinsCfg::rstPin, and SensorCommWrapper::writeBuff().

Member Data Documentation

◆ _slave_addr

int TouchDrvCST92xx::_slave_addr
protected

Definition at line 111 of file TouchDrvCST92xx.hpp.

◆ chipType

uint16_t TouchDrvCST92xx::chipType
protected

Definition at line 112 of file TouchDrvCST92xx.hpp.

◆ CST9217_CHIP_ID

constexpr uint16_t TouchDrvCST92xx::CST9217_CHIP_ID = (0x9217)
staticconstexprprotected

Definition at line 115 of file TouchDrvCST92xx.hpp.

Referenced by getModelName().

◆ CST9220_CHIP_ID

constexpr uint16_t TouchDrvCST92xx::CST9220_CHIP_ID = (0x9220)
staticconstexprprotected

Definition at line 114 of file TouchDrvCST92xx.hpp.

Referenced by getModelName().

◆ CST92XX_ACK

constexpr uint8_t TouchDrvCST92xx::CST92XX_ACK = (0xAB)
staticconstexprprotected

Definition at line 129 of file TouchDrvCST92xx.hpp.

Referenced by getTouchPoints().

◆ CST92XX_BOOT_ADDRESS

constexpr uint8_t TouchDrvCST92xx::CST92XX_BOOT_ADDRESS = (0x5A)
staticconstexprprotected

Definition at line 128 of file TouchDrvCST92xx.hpp.

◆ CST92XX_MEM_SIZE

constexpr uint32_t TouchDrvCST92xx::CST92XX_MEM_SIZE = (0x007F80)
staticconstexprprotected

Definition at line 130 of file TouchDrvCST92xx.hpp.

◆ MAX_FINGER_NUM

constexpr uint8_t TouchDrvCST92xx::MAX_FINGER_NUM = (2)
staticconstexprprotected

Definition at line 132 of file TouchDrvCST92xx.hpp.

Referenced by getTouchPoints().

◆ PROGRAM_PAGE_SIZE

constexpr uint8_t TouchDrvCST92xx::PROGRAM_PAGE_SIZE = (128)
staticconstexprprotected

Definition at line 133 of file TouchDrvCST92xx.hpp.

◆ REG_BASE_LINE_MODE

constexpr uint16_t TouchDrvCST92xx::REG_BASE_LINE_MODE = (0xD10E)
staticconstexprprotected

Definition at line 124 of file TouchDrvCST92xx.hpp.

◆ REG_DEBUG_MODE

constexpr uint16_t TouchDrvCST92xx::REG_DEBUG_MODE = (0xD101)
staticconstexprprotected

Definition at line 118 of file TouchDrvCST92xx.hpp.

◆ REG_DIFF_MODE

constexpr uint16_t TouchDrvCST92xx::REG_DIFF_MODE = (0xD10D)
staticconstexprprotected

Definition at line 123 of file TouchDrvCST92xx.hpp.

◆ REG_DIS_LOW_POWER_SCAN_MODE

constexpr uint16_t TouchDrvCST92xx::REG_DIS_LOW_POWER_SCAN_MODE = (0xD106)
staticconstexprprotected

Definition at line 120 of file TouchDrvCST92xx.hpp.

◆ REG_FACTORY_MODE

constexpr uint16_t TouchDrvCST92xx::REG_FACTORY_MODE = (0xD114)
staticconstexprprotected

Definition at line 126 of file TouchDrvCST92xx.hpp.

◆ REG_LOW_POWER_MODE

constexpr uint16_t TouchDrvCST92xx::REG_LOW_POWER_MODE = (0xD10F)
staticconstexprprotected

Definition at line 125 of file TouchDrvCST92xx.hpp.

◆ REG_NORMAL_MODE

constexpr uint16_t TouchDrvCST92xx::REG_NORMAL_MODE = (0xD109)
staticconstexprprotected

Definition at line 121 of file TouchDrvCST92xx.hpp.

◆ REG_RAW_MODE

constexpr uint16_t TouchDrvCST92xx::REG_RAW_MODE = (0xD10A)
staticconstexprprotected

Definition at line 122 of file TouchDrvCST92xx.hpp.

◆ REG_READ

constexpr uint16_t TouchDrvCST92xx::REG_READ = (0xD000)
staticconstexprprotected

Definition at line 117 of file TouchDrvCST92xx.hpp.

Referenced by getTouchPoints().

◆ REG_SLEEP_MODE

constexpr uint16_t TouchDrvCST92xx::REG_SLEEP_MODE = (0xD105)
staticconstexprprotected

Definition at line 119 of file TouchDrvCST92xx.hpp.

Referenced by sleep().


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