Parking Garage Control System
ESP32 Parking Garage – ESP-IDF/FreeRTOS
Loading...
Searching...
No Matches
EspGpioInput Class Reference

ESP32 implementation of GPIO input with interrupt support. More...

#include <EspGpioInput.h>

Inheritance diagram for EspGpioInput:
Collaboration diagram for EspGpioInput:

Public Member Functions

 EspGpioInput (gpio_num_t pin, uint32_t debounceMs=0)
 Construct ESP32 GPIO input.
 
 ~EspGpioInput () override
 
 EspGpioInput (const EspGpioInput &)=delete
 
EspGpioInput & operator= (const EspGpioInput &)=delete
 
bool getLevel () const override
 Get current logic level of GPIO input.
 
void setInterruptHandler (std::function< void(bool level)> handler) override
 Set interrupt handler callback.
 
void enableInterrupt () override
 Enable interrupt for this GPIO.
 
void disableInterrupt () override
 Disable interrupt for this GPIO.
 
void simulateInterrupt (bool level)
 Simulate an interrupt for testing purposes.
 
- Public Member Functions inherited from IGpioInput
virtual ~IGpioInput ()=default
 

Detailed Description

ESP32 implementation of GPIO input with interrupt support.

Features:

  • Internal pull-up resistor enabled
  • Interrupt on both edges (rising and falling)
  • IRAM-safe interrupt handler
  • Software debouncing for buttons

Constructor & Destructor Documentation

◆ EspGpioInput() [1/2]

EspGpioInput::EspGpioInput ( gpio_num_t  pin,
uint32_t  debounceMs = 0 
)
explicit

Construct ESP32 GPIO input.

Parameters
pinGPIO pin number
debounceMsDebounce time in milliseconds (0 = no debouncing)

◆ ~EspGpioInput()

EspGpioInput::~EspGpioInput ( )
override

◆ EspGpioInput() [2/2]

EspGpioInput::EspGpioInput ( const EspGpioInput &  )
delete

Member Function Documentation

◆ disableInterrupt()

void EspGpioInput::disableInterrupt ( )
overridevirtual

Disable interrupt for this GPIO.

Implements IGpioInput.

◆ enableInterrupt()

void EspGpioInput::enableInterrupt ( )
overridevirtual

Enable interrupt for this GPIO.

Implements IGpioInput.

◆ getLevel()

bool EspGpioInput::getLevel ( ) const
overridevirtual

Get current logic level of GPIO input.

Returns
true if HIGH, false if LOW

Implements IGpioInput.

◆ operator=()

EspGpioInput & EspGpioInput::operator= ( const EspGpioInput &  )
delete

◆ setInterruptHandler()

void EspGpioInput::setInterruptHandler ( std::function< void(bool level)>  handler)
overridevirtual

Set interrupt handler callback.

Parameters
handlerFunction called when interrupt triggers (parameter: current level)

Implements IGpioInput.

◆ simulateInterrupt()

void EspGpioInput::simulateInterrupt ( bool  level)

Simulate an interrupt for testing purposes.

Directly calls the interrupt handler with the given level, bypassing actual GPIO hardware. Useful for Wokwi tests where direct GPIO manipulation doesn't trigger ISR.

Parameters
levelThe level to report (true=HIGH, false=LOW)

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