ESPHome 2025.6.2
Loading...
Searching...
No Matches
chsc6x_touchscreen.cpp
Go to the documentation of this file.
2
3namespace esphome {
4namespace chsc6x {
5
7 ESP_LOGCONFIG(TAG, "Running setup");
8 if (this->interrupt_pin_ != nullptr) {
9 this->interrupt_pin_->setup();
11 }
12 if (this->x_raw_max_ == this->x_raw_min_) {
13 this->x_raw_max_ = this->display_->get_native_width();
14 }
15 if (this->y_raw_max_ == this->y_raw_min_) {
16 this->y_raw_max_ = this->display_->get_native_height();
17 }
18
19 ESP_LOGCONFIG(TAG, "CHSC6X Touchscreen setup complete");
20}
21
23 uint8_t data[CHSC6X_REG_STATUS_LEN];
24 if (!this->read_bytes(CHSC6X_REG_STATUS, data, sizeof(data))) {
25 return;
26 }
27
28 uint8_t num_of_touches = data[CHSC6X_REG_STATUS_TOUCH];
29
30 if (num_of_touches == 1) {
31 uint16_t x = data[CHSC6X_REG_STATUS_X_COR];
32 uint16_t y = data[CHSC6X_REG_STATUS_Y_COR];
33 this->add_raw_touch_position_(0, x, y);
34 }
35}
36
38 ESP_LOGCONFIG(TAG, "CHSC6X Touchscreen:");
39 LOG_I2C_DEVICE(this);
40 LOG_PIN(" Interrupt Pin: ", this->interrupt_pin_);
41 ESP_LOGCONFIG(TAG,
42 " Touch timeout: %d\n"
43 " x_raw_max_: %d\n"
44 " y_raw_max_: %d",
45 this->touch_timeout_, this->x_raw_max_, this->y_raw_max_);
46}
47
48} // namespace chsc6x
49} // namespace esphome
virtual void setup()=0
int get_native_width()
Get the native (original) width of the display in pixels.
Definition display.h:223
int get_native_height()
Get the native (original) height of the display in pixels.
Definition display.h:225
bool read_bytes(uint8_t a_register, uint8_t *data, uint8_t len)
Compat APIs All methods below have been added for compatibility reasons.
Definition i2c.h:216
void attach_interrupt_(InternalGPIOPin *irq_pin, esphome::gpio::InterruptType type)
Call this function to send touch points to the on_touch listener and the binary_sensors.
void add_raw_touch_position_(uint8_t id, int16_t x_raw, int16_t y_raw, int16_t z_raw=0)
@ INTERRUPT_FALLING_EDGE
Definition gpio.h:42
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5
uint16_t y
Definition tt21100.cpp:6