SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
TouchDrvCST3530.hpp
Go to the documentation of this file.
1
29#pragma once
30
31#include "../SensorBuildOpt.h"
32#if !SENSORLIB_EXCLUDE_TOUCH_CST3530
33
34#include "TouchDrvInterface.hpp"
35
36// The device address is not fixed and is determined by the manufacturer.
37static constexpr uint8_t CS3530_SLAVE_ADDRESS = (0x1A);
38
39
41{
42public:
48 TouchDrvCST3530() = default;
49
54 ~TouchDrvCST3530() = default;
55
63 void sleep() override;
64
70 void wakeup() override;
71
77 const TouchPoints &getTouchPoints() override;
78
84 const char *getModelName() override;
85
86private:
87
88 bool initImpl(uint8_t) override;
89
90 void beforeBegin() override
91 {
94 }
95
96 bool writeCommand(uint32_t cmd, uint8_t *read_buffer = nullptr, size_t read_size = 0)
97 {
98 uint8_t write_buffer[4];
99 write_buffer[0] = (cmd >> 24) & 0xFF;
100 write_buffer[1] = (cmd >> 16) & 0xFF;
101 write_buffer[2] = (cmd >> 8) & 0xFF;
102 write_buffer[3] = (cmd >> 0) & 0xFF;
103 if (read_buffer) {
104 return 0 == writeThenRead(write_buffer, arraySize(write_buffer), read_buffer, read_size);
105 } else {
106 return 0 == writeBuff(write_buffer, arraySize(write_buffer));
107 }
108 }
109
110 uint16_t check_sum_16(int val, uint8_t* buf, uint16_t len);
111
112protected:
113 static constexpr uint32_t READ_COMMAND = (0xD0070000);
114 static constexpr uint32_t INFO_COMMAND = (0xD0030000);
115 static constexpr uint32_t SLEEP_COMMAND = (0xD00022AB);
116 static constexpr uint32_t CLEAR_COMMAND = (0xD00002AB);
117 static constexpr uint8_t MAX_FINGER_NUM = (5);
118 static constexpr uint8_t MAX_READ_BYTES = (32);
119};
120
121#endif
constexpr size_t arraySize(const T(&arr)[N])
Returns the number of elements in a C‑style array at compile time.
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)
static constexpr uint32_t SLEEP_COMMAND
TouchDrvCST3530()=default
Constructor for the touch driver.
static constexpr uint8_t MAX_FINGER_NUM
void wakeup() override
Wake up the touch driver.
static constexpr uint8_t MAX_READ_BYTES
~TouchDrvCST3530()=default
Destructor for the touch driver.
const char * getModelName() override
Get the model name.
static constexpr uint32_t INFO_COMMAND
const TouchPoints & getTouchPoints() override
Get the touch points.
static constexpr uint32_t READ_COMMAND
static constexpr uint32_t CLEAR_COMMAND
void sleep() override
Puts the touch driver to sleep.
Abstract base class for touch screen drivers.
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).
TouchPinsCfg _pinsCfg
Configuration for reset and interrupt pins.
Container for touch point data and optional gesture information.
char buf[64]