ESPHome 2026.8.0-dev
Loading...
Searching...
No Matches
cst328_touchscreen.h
Go to the documentation of this file.
1#pragma once
2
6#include "esphome/core/hal.h"
7
8namespace esphome::cst328 {
9
10static const uint8_t CST328_TOUCH_MAX_POINTS = 5;
11static const uint8_t CST328_TOUCH_DATA_SIZE = CST328_TOUCH_MAX_POINTS * 5 + 2;
12
13static const uint16_t CST_REG_TOUCH_INFORMATION = 0xD000;
14static const uint16_t CST_REG_TOUCH_FINGER_NUMBER = 0xD005;
15
16static const uint16_t CST_REG_FINGER_COUNT_IDX = CST_REG_TOUCH_FINGER_NUMBER - CST_REG_TOUCH_INFORMATION;
17
18static const uint16_t CST_REG_X_Y_RESOLUTION = 0xD1F8;
19static const uint16_t CST_REG_FW_CRC_AND_BOOT_TIME = 0xD1FC;
20static const uint16_t CST_REG_CHIP_TYPE_AND_PROJECT_ID = 0xD204;
21static const uint16_t CST_REG_FW_REVISION = 0xD208;
22
23static const uint16_t CST_WM_DEBUG_INFO = 0xD101;
24static const uint16_t CST_WM_NORMAL = 0xD109;
25
27 public:
28 virtual void update_button(bool state) = 0;
29};
30
32 public:
33 void setup() override;
34 void register_button_listener(CST328ButtonListener *listener) { this->button_listeners_.push_back(listener); }
35 void dump_config() override;
36
38 void set_reset_pin(GPIOPin *pin) { this->reset_pin_ = pin; }
39
40 protected:
41 void update_touches() override;
42 void reset_device_();
43 void continue_setup_();
44 void update_button_state_(bool state);
45
48
49 std::vector<CST328ButtonListener *> button_listeners_;
51
52 uint16_t chip_id_{};
53 uint16_t project_id_{};
54 uint8_t fw_ver_major_{};
55 uint8_t fw_ver_minor_{};
56 uint16_t fw_build_{};
57
59};
60
61} // namespace esphome::cst328
virtual void update_button(bool state)=0
void register_button_listener(CST328ButtonListener *listener)
void set_interrupt_pin(InternalGPIOPin *pin)
std::vector< CST328ButtonListener * > button_listeners_
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
bool state
Definition fan.h:2