ESPHome 2025.8.0b2
Loading...
Searching...
No Matches
esphome::gt911::GT911Touchscreen Class Reference

#include <gt911_touchscreen.h>

Inheritance diagram for esphome::gt911::GT911Touchscreen:
esphome::touchscreen::Touchscreen esphome::i2c::I2CDevice esphome::PollingComponent esphome::Component

Public Member Functions

void setup () override
 Initialize the GT911 touchscreen.
 
void dump_config () override
 
bool can_proceed () override
 
void set_interrupt_pin (InternalGPIOPin *pin)
 
void set_reset_pin (GPIOPin *pin)
 
void register_button_listener (GT911ButtonListener *listener)
 
- Public Member Functions inherited from esphome::touchscreen::Touchscreen
void set_display (display::Display *display)
 
display::Displayget_display () const
 
void set_touch_timeout (uint16_t val)
 
void set_mirror_x (bool invert_x)
 
void set_mirror_y (bool invert_y)
 
void set_swap_xy (bool swap)
 
void set_calibration (int16_t x_min, int16_t x_max, int16_t y_min, int16_t y_max)
 
Trigger< TouchPoint, const TouchPoints_t & > * get_touch_trigger ()
 
Trigger< const TouchPoints_t & > * get_update_trigger ()
 
Triggerget_release_trigger ()
 
void register_listener (TouchListener *listener)
 
optional< TouchPointget_touch ()
 
TouchPoints_t get_touches ()
 
void update () override
 
void loop () override
 
void call_setup () override
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms.
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object.
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor.
 
void start_poller ()
 
void stop_poller ()
 
- Public Member Functions inherited from esphome::Component
virtual float get_setup_priority () const
 priority of setup().
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
uint8_t get_component_state () const
 
void reset_to_construction_state ()
 Reset this component back to the construction state to allow setup to run again.
 
bool is_in_loop_state () const
 Check if this component has completed setup and is in the loop state.
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
void disable_loop ()
 Disable this component's loop.
 
void enable_loop ()
 Enable this component's loop.
 
void enable_loop_soon_any_context ()
 Thread and ISR-safe version of enable_loop() that can be called from any context.
 
bool is_failed () const
 
bool is_ready () const
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message=nullptr)
 
void status_set_error (const char *message=nullptr)
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 
- Public Member Functions inherited from esphome::i2c::I2CDevice
 I2CDevice ()=default
 we use the C++ default constructor
 
void set_i2c_address (uint8_t address)
 We store the address of the device on the bus.
 
uint8_t get_i2c_address () const
 Returns the I2C address of the object.
 
void set_i2c_bus (I2CBus *bus)
 we store the pointer to the I2CBus to use
 
I2CRegister reg (uint8_t a_register)
 calls the I2CRegister constructor
 
I2CRegister16 reg16 (uint16_t a_register)
 calls the I2CRegister16 constructor
 
ErrorCode read (uint8_t *data, size_t len)
 reads an array of bytes from the device using an I2CBus
 
ErrorCode read_register (uint8_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device
 
ErrorCode read_register16 (uint16_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device
 
ErrorCode write (const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a device using an I2CBus
 
ErrorCode write_register (uint8_t a_register, const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a specific register in the I²C device
 
ErrorCode write_register16 (uint16_t a_register, const uint8_t *data, size_t len, bool stop=true)
 write an array of bytes to a specific register in the I²C device
 
bool read_bytes (uint8_t a_register, uint8_t *data, uint8_t len)
 Compat APIs All methods below have been added for compatibility reasons.
 
bool read_bytes_raw (uint8_t *data, uint8_t len)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes (uint8_t a_register)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes_raw ()
 
bool read_bytes_16 (uint8_t a_register, uint16_t *data, uint8_t len)
 
bool read_byte (uint8_t a_register, uint8_t *data, bool stop=true)
 
optional< uint8_t > read_byte (uint8_t a_register)
 
bool read_byte_16 (uint8_t a_register, uint16_t *data)
 
bool write_bytes (uint8_t a_register, const uint8_t *data, uint8_t len, bool stop=true)
 
bool write_bytes (uint8_t a_register, const std::vector< uint8_t > &data)
 
template<size_t N>
bool write_bytes (uint8_t a_register, const std::array< uint8_t, N > &data)
 
bool write_bytes_16 (uint8_t a_register, const uint16_t *data, uint8_t len)
 
bool write_byte (uint8_t a_register, uint8_t data, bool stop=true)
 
bool write_byte_16 (uint8_t a_register, uint16_t data)
 

Protected Member Functions

void update_touches () override
 
void setup_internal_ ()
 Perform the internal setup routine for the GT911 touchscreen.
 
- Protected Member Functions inherited from esphome::touchscreen::Touchscreen
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)
 
void send_touches_ ()
 
int16_t normalize_ (int16_t val, int16_t min_val, int16_t max_val, bool inverted=false)
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_dump_config ()
 
void set_component_state_ (uint8_t state)
 Helper to set component state (clears state bits and sets new state)
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name.
 
void set_interval (const char *name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a const char* name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
bool cancel_interval (const char *name)
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name.
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a const char* name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
bool cancel_timeout (const char *name)
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (const char *name, std::function< void()> &&f)
 Defer a callback to the next loop() call with a const char* name.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 

Protected Attributes

bool setup_done_ {false}
 True if the touchscreen setup has completed successfully.
 
InternalGPIOPininterrupt_pin_ {nullptr}
 
GPIOPinreset_pin_ {nullptr}
 
std::vector< GT911ButtonListener * > button_listeners_
 
uint8_t button_state_ {0xFF}
 
- Protected Attributes inherited from esphome::touchscreen::Touchscreen
display::Displaydisplay_ {nullptr}
 
int16_t x_raw_min_ {0}
 
int16_t x_raw_max_ {0}
 
int16_t y_raw_min_ {0}
 
int16_t y_raw_max_ {0}
 
int16_t display_width_ {0}
 
int16_t display_height_ {0}
 
uint16_t touch_timeout_ {0}
 
bool invert_x_ {false}
 
bool invert_y_ {false}
 
bool swap_x_y_ {false}
 
Trigger< TouchPoint, const TouchPoints_t & > touch_trigger_
 
Trigger< const TouchPoints_t & > update_trigger_
 
Trigger release_trigger_
 
std::vector< TouchListener * > touch_listeners_
 
std::map< uint8_t, TouchPointtouches_
 
TouchscreenInterrupt store_
 
bool first_touch_ {true}
 
bool need_update_ {false}
 
bool is_touched_ {false}
 
bool was_touched_ {false}
 
bool skip_update_ {false}
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
const char * component_source_ {nullptr}
 
uint16_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 Warn if blocked for this many ms (max 65.5s)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bits 5-7: Unused - reserved for future expansion.
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 
- Protected Attributes inherited from esphome::i2c::I2CDevice
uint8_t address_ {0x00}
 store the address of the device on the bus
 
I2CBusbus_ {nullptr}
 pointer to I2CBus instance
 

Detailed Description

Definition at line 16 of file gt911_touchscreen.h.

Member Function Documentation

◆ can_proceed()

bool esphome::gt911::GT911Touchscreen::can_proceed ( )
inlineoverridevirtual

Reimplemented from esphome::Component.

Definition at line 31 of file gt911_touchscreen.h.

◆ dump_config()

void esphome::gt911::GT911Touchscreen::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 138 of file gt911_touchscreen.cpp.

◆ register_button_listener()

void esphome::gt911::GT911Touchscreen::register_button_listener ( GT911ButtonListener * listener)
inline

Definition at line 35 of file gt911_touchscreen.h.

◆ set_interrupt_pin()

void esphome::gt911::GT911Touchscreen::set_interrupt_pin ( InternalGPIOPin * pin)
inline

Definition at line 33 of file gt911_touchscreen.h.

◆ set_reset_pin()

void esphome::gt911::GT911Touchscreen::set_reset_pin ( GPIOPin * pin)
inline

Definition at line 34 of file gt911_touchscreen.h.

◆ setup()

void esphome::gt911::GT911Touchscreen::setup ( )
overridevirtual

Initialize the GT911 touchscreen.

If reset_pin_ is set, the touchscreen will be hardware reset, and the rest of the setup will be scheduled to run 50ms later using set_timeout() to allow the device to stabilize after reset.

If interrupt_pin_ is set, it will be temporarily configured during reset to control I2C address selection.

After the timeout, or immediately if no reset is performed, setup_internal_() is called to complete the initialization.

Reimplemented from esphome::Component.

Definition at line 27 of file gt911_touchscreen.cpp.

◆ setup_internal_()

void esphome::gt911::GT911Touchscreen::setup_internal_ ( )
protected

Perform the internal setup routine for the GT911 touchscreen.

This function checks the I2C address, configures the interrupt pin (if available), reads the touchscreen mode from the controller, and attempts to read calibration data (maximum X and Y values) if not already set.

On success, sets setup_done_ to true. On failure, calls mark_failed() with an appropriate error message.

Definition at line 44 of file gt911_touchscreen.cpp.

◆ update_touches()

void esphome::gt911::GT911Touchscreen::update_touches ( )
overrideprotectedvirtual

Implements esphome::touchscreen::Touchscreen.

Definition at line 94 of file gt911_touchscreen.cpp.

Field Documentation

◆ button_listeners_

std::vector<GT911ButtonListener *> esphome::gt911::GT911Touchscreen::button_listeners_
protected

Definition at line 54 of file gt911_touchscreen.h.

◆ button_state_

uint8_t esphome::gt911::GT911Touchscreen::button_state_ {0xFF}
protected

Definition at line 55 of file gt911_touchscreen.h.

◆ interrupt_pin_

InternalGPIOPin* esphome::gt911::GT911Touchscreen::interrupt_pin_ {nullptr}
protected

Definition at line 52 of file gt911_touchscreen.h.

◆ reset_pin_

GPIOPin* esphome::gt911::GT911Touchscreen::reset_pin_ {nullptr}
protected

Definition at line 53 of file gt911_touchscreen.h.

◆ setup_done_

bool esphome::gt911::GT911Touchscreen::setup_done_ {false}
protected

True if the touchscreen setup has completed successfully.

Definition at line 50 of file gt911_touchscreen.h.


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