SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
TouchDrvCST92xx.hpp
Go to the documentation of this file.
1
29#pragma once
30
31#include "../SensorBuildOpt.h"
32#if !SENSORLIB_EXCLUDE_TOUCH_CST92XX
33
34#include "TouchDrvInterface.hpp"
35
36static constexpr uint8_t CST92XX_SLAVE_ADDRESS = (0x5A);
37
39{
40public:
57
63
68 ~TouchDrvCST92xx() = default;
69
77 void sleep() override;
78
84 const TouchPoints &getTouchPoints() override;
85
91 const char *getModelName() override;
92
100 void setCoverScreenCallback(HomeButtonCallback cb, void *user_data = NULL);
101
102private:
103 bool initImpl(uint8_t) override;
104 bool setMode(uint8_t mode);
105 bool enterBootloader();
106 bool getAttribute();
107 uint32_t readWordFromMem(uint8_t type, uint16_t mem_addr);
108 uint32_t getChipType();
109
110protected:
112 uint16_t chipType;
113
114 static constexpr uint16_t CST9220_CHIP_ID = (0x9220);
115 static constexpr uint16_t CST9217_CHIP_ID = (0x9217);
116
117 static constexpr uint16_t REG_READ = (0xD000);
118 static constexpr uint16_t REG_DEBUG_MODE = (0xD101);
119 static constexpr uint16_t REG_SLEEP_MODE = (0xD105);
120 static constexpr uint16_t REG_DIS_LOW_POWER_SCAN_MODE = (0xD106);
121 static constexpr uint16_t REG_NORMAL_MODE = (0xD109);
122 static constexpr uint16_t REG_RAW_MODE = (0xD10A);
123 static constexpr uint16_t REG_DIFF_MODE = (0xD10D);
124 static constexpr uint16_t REG_BASE_LINE_MODE = (0xD10E);
125 static constexpr uint16_t REG_LOW_POWER_MODE = (0xD10F);
126 static constexpr uint16_t REG_FACTORY_MODE = (0xD114);
127
128 static constexpr uint8_t CST92XX_BOOT_ADDRESS = (0x5A);
129 static constexpr uint8_t CST92XX_ACK = (0xAB);
130 static constexpr uint32_t CST92XX_MEM_SIZE = (0x007F80);// 31KB
131
132 static constexpr uint8_t MAX_FINGER_NUM = (2);
133 static constexpr uint8_t PROGRAM_PAGE_SIZE = (128);
134};
135
136#endif
void sleep() override
Puts the touch driver to sleep.
static constexpr uint16_t CST9217_CHIP_ID
static constexpr uint16_t REG_BASE_LINE_MODE
static constexpr uint16_t REG_FACTORY_MODE
static constexpr uint16_t REG_DEBUG_MODE
void setCoverScreenCallback(HomeButtonCallback cb, void *user_data=NULL)
Set the cover screen callback.
static constexpr uint8_t MAX_FINGER_NUM
static constexpr uint16_t REG_SLEEP_MODE
~TouchDrvCST92xx()=default
Destructor for the touch driver.
const char * getModelName() override
Get the model name.
static constexpr uint16_t REG_LOW_POWER_MODE
static constexpr uint16_t REG_RAW_MODE
static constexpr uint16_t REG_DIS_LOW_POWER_SCAN_MODE
static constexpr uint16_t REG_DIFF_MODE
static constexpr uint8_t CST92XX_BOOT_ADDRESS
const TouchPoints & getTouchPoints() override
Get the touch points.
static constexpr uint16_t REG_NORMAL_MODE
static constexpr uint16_t CST9220_CHIP_ID
static constexpr uint8_t PROGRAM_PAGE_SIZE
static constexpr uint8_t CST92XX_ACK
static constexpr uint16_t REG_READ
static constexpr uint32_t CST92XX_MEM_SIZE
TouchDrvCST92xx()
Constructor for the touch driver.
Abstract base class for touch screen drivers.
void(*)(void *user_data) HomeButtonCallback
Callback type for home button events.
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).
Container for touch point data and optional gesture information.