idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
GPIO Component

Type-safe GPIO pin management for ESP32. More...

Namespaces

namespace  idfxx
 

Classes

class  idfxx::gpio
 A GPIO pin. More...
 

Functions

result< void > idfxx::try_configure_gpios (const gpio::config &cfg, std::vector< gpio > gpios)
 Configures multiple GPIOs with the same settings.
 
template<typename... Gpios>
result< void > idfxx::try_configure_gpios (const gpio::config &cfg, Gpios &&... gpios)
 Configures multiple GPIOs with the same settings.
 
void idfxx::configure_gpios (const gpio::config &cfg, std::vector< gpio > gpios)
 Configures multiple GPIOs with the same settings.
 
template<typename... Gpios>
void idfxx::configure_gpios (const gpio::config &cfg, Gpios &&... gpios)
 Configures multiple GPIOs with the same settings.
 
std::string idfxx::to_string (gpio g)
 Returns a string representation of a GPIO pin.
 

GPIO Constants

Predefined GPIO instances for direct use.

Available GPIOs depend on the target chip.

constexpr gpio idfxx::gpio_nc = gpio_constant<GPIO_NUM_NC>::value
 
constexpr gpio idfxx::gpio_0 = gpio_constant<0>::value
 
constexpr gpio idfxx::gpio_1 = gpio_constant<1>::value
 
constexpr gpio idfxx::gpio_2 = gpio_constant<2>::value
 
constexpr gpio idfxx::gpio_3 = gpio_constant<3>::value
 
constexpr gpio idfxx::gpio_4 = gpio_constant<4>::value
 
constexpr gpio idfxx::gpio_5 = gpio_constant<5>::value
 
constexpr gpio idfxx::gpio_6 = gpio_constant<6>::value
 
constexpr gpio idfxx::gpio_7 = gpio_constant<7>::value
 
constexpr gpio idfxx::gpio_8 = gpio_constant<8>::value
 
constexpr gpio idfxx::gpio_9 = gpio_constant<9>::value
 
constexpr gpio idfxx::gpio_10 = gpio_constant<10>::value
 
constexpr gpio idfxx::gpio_11 = gpio_constant<11>::value
 
constexpr gpio idfxx::gpio_12 = gpio_constant<12>::value
 
constexpr gpio idfxx::gpio_13 = gpio_constant<13>::value
 
constexpr gpio idfxx::gpio_14 = gpio_constant<14>::value
 
constexpr gpio idfxx::gpio_15 = gpio_constant<15>::value
 
constexpr gpio idfxx::gpio_16 = gpio_constant<16>::value
 
constexpr gpio idfxx::gpio_17 = gpio_constant<17>::value
 
constexpr gpio idfxx::gpio_18 = gpio_constant<18>::value
 
constexpr gpio idfxx::gpio_19 = gpio_constant<19>::value
 
constexpr gpio idfxx::gpio_20 = gpio_constant<20>::value
 
constexpr gpio idfxx::gpio_21 = gpio_constant<21>::value
 
constexpr gpio idfxx::gpio_22 = gpio_constant<22>::value
 
constexpr gpio idfxx::gpio_23 = gpio_constant<23>::value
 
constexpr gpio idfxx::gpio_24 = gpio_constant<24>::value
 
constexpr gpio idfxx::gpio_25 = gpio_constant<25>::value
 
constexpr gpio idfxx::gpio_26 = gpio_constant<26>::value
 
constexpr gpio idfxx::gpio_27 = gpio_constant<27>::value
 
constexpr gpio idfxx::gpio_28 = gpio_constant<28>::value
 
constexpr gpio idfxx::gpio_29 = gpio_constant<29>::value
 
constexpr gpio idfxx::gpio_30 = gpio_constant<30>::value
 
constexpr gpio idfxx::gpio_31 = gpio_constant<31>::value
 
constexpr gpio idfxx::gpio_32 = gpio_constant<32>::value
 
constexpr gpio idfxx::gpio_33 = gpio_constant<33>::value
 
constexpr gpio idfxx::gpio_34 = gpio_constant<34>::value
 
constexpr gpio idfxx::gpio_35 = gpio_constant<35>::value
 
constexpr gpio idfxx::gpio_36 = gpio_constant<36>::value
 
constexpr gpio idfxx::gpio_37 = gpio_constant<37>::value
 
constexpr gpio idfxx::gpio_38 = gpio_constant<38>::value
 
constexpr gpio idfxx::gpio_39 = gpio_constant<39>::value
 
constexpr gpio idfxx::gpio_40 = gpio_constant<40>::value
 
constexpr gpio idfxx::gpio_41 = gpio_constant<41>::value
 
constexpr gpio idfxx::gpio_42 = gpio_constant<42>::value
 
constexpr gpio idfxx::gpio_43 = gpio_constant<43>::value
 
constexpr gpio idfxx::gpio_44 = gpio_constant<44>::value
 
constexpr gpio idfxx::gpio_45 = gpio_constant<45>::value
 
constexpr gpio idfxx::gpio_46 = gpio_constant<46>::value
 
constexpr gpio idfxx::gpio_47 = gpio_constant<47>::value
 
constexpr gpio idfxx::gpio_48 = gpio_constant<48>::value
 

Detailed Description

Type-safe GPIO pin management for ESP32.

Provides type-safe GPIO pin management with compile-time validation and ISR handler management supporting multiple handlers per pin.

Depends on Core Utilities for error handling.

Function Documentation

◆ configure_gpios() [1/2]

template<typename... Gpios>
void idfxx::configure_gpios ( const gpio::config cfg,
Gpios &&...  gpios 
)

Configures multiple GPIOs with the same settings.

Parameters
gpiosGPIOs to configure.
cfgConfiguration parameters.
Note
Only available when CONFIG_COMPILER_CXX_EXCEPTIONS is enabled in menuconfig.
Exceptions
std::system_erroron failure.

Definition at line 824 of file gpio.hpp.

References idfxx::try_configure_gpios(), and idfxx::unwrap().

◆ configure_gpios() [2/2]

void idfxx::configure_gpios ( const gpio::config cfg,
std::vector< gpio gpios 
)
inline

Configures multiple GPIOs with the same settings.

Parameters
gpiosVector of GPIOs to configure.
cfgConfiguration parameters.
Note
Only available when CONFIG_COMPILER_CXX_EXCEPTIONS is enabled in menuconfig.
Exceptions
std::system_erroron failure.

Definition at line 811 of file gpio.hpp.

References idfxx::try_configure_gpios(), and idfxx::unwrap().

◆ to_string()

std::string idfxx::to_string ( gpio  g)
inline

Returns a string representation of a GPIO pin.

Parameters
gThe GPIO pin to convert.
Returns
"GPIO_NC" for not-connected, or "GPIO_N" where N is the pin number.

Definition at line 1007 of file gpio.hpp.

References idfxx::gpio::is_connected(), and idfxx::gpio::num().

◆ try_configure_gpios() [1/2]

template<typename... Gpios>
result< void > idfxx::try_configure_gpios ( const gpio::config cfg,
Gpios &&...  gpios 
)

Configures multiple GPIOs with the same settings.

Parameters
gpiosGPIOs to configure.
cfgConfiguration parameters.
Return values
invalid_stateIf any gpio is gpio::nc().
invalid_argIf any gpio is input-only and an output mode is requested.

Definition at line 798 of file gpio.hpp.

References idfxx::try_configure_gpios().

◆ try_configure_gpios() [2/2]

result< void > idfxx::try_configure_gpios ( const gpio::config cfg,
std::vector< gpio gpios 
)

Configures multiple GPIOs with the same settings.

Parameters
gpiosVector of GPIOs to configure.
cfgConfiguration parameters.
Return values
invalid_stateIf any gpio is gpio::nc().
invalid_argIf any gpio is input-only and an output mode is requested.

Referenced by idfxx::configure_gpios(), idfxx::configure_gpios(), and idfxx::try_configure_gpios().

Variable Documentation

◆ gpio_0

constexpr gpio idfxx::gpio_0 = gpio_constant<0>::value
inlineconstexpr

Definition at line 851 of file gpio.hpp.

◆ gpio_1

constexpr gpio idfxx::gpio_1 = gpio_constant<1>::value
inlineconstexpr

Definition at line 854 of file gpio.hpp.

◆ gpio_10

constexpr gpio idfxx::gpio_10 = gpio_constant<10>::value
inlineconstexpr

Definition at line 881 of file gpio.hpp.

◆ gpio_11

constexpr gpio idfxx::gpio_11 = gpio_constant<11>::value
inlineconstexpr

Definition at line 884 of file gpio.hpp.

◆ gpio_12

constexpr gpio idfxx::gpio_12 = gpio_constant<12>::value
inlineconstexpr

Definition at line 887 of file gpio.hpp.

◆ gpio_13

constexpr gpio idfxx::gpio_13 = gpio_constant<13>::value
inlineconstexpr

Definition at line 890 of file gpio.hpp.

◆ gpio_14

constexpr gpio idfxx::gpio_14 = gpio_constant<14>::value
inlineconstexpr

Definition at line 893 of file gpio.hpp.

◆ gpio_15

constexpr gpio idfxx::gpio_15 = gpio_constant<15>::value
inlineconstexpr

Definition at line 896 of file gpio.hpp.

◆ gpio_16

constexpr gpio idfxx::gpio_16 = gpio_constant<16>::value
inlineconstexpr

Definition at line 899 of file gpio.hpp.

◆ gpio_17

constexpr gpio idfxx::gpio_17 = gpio_constant<17>::value
inlineconstexpr

Definition at line 902 of file gpio.hpp.

◆ gpio_18

constexpr gpio idfxx::gpio_18 = gpio_constant<18>::value
inlineconstexpr

Definition at line 905 of file gpio.hpp.

◆ gpio_19

constexpr gpio idfxx::gpio_19 = gpio_constant<19>::value
inlineconstexpr

Definition at line 908 of file gpio.hpp.

◆ gpio_2

constexpr gpio idfxx::gpio_2 = gpio_constant<2>::value
inlineconstexpr

Definition at line 857 of file gpio.hpp.

◆ gpio_20

constexpr gpio idfxx::gpio_20 = gpio_constant<20>::value
inlineconstexpr

Definition at line 911 of file gpio.hpp.

◆ gpio_21

constexpr gpio idfxx::gpio_21 = gpio_constant<21>::value
inlineconstexpr

Definition at line 914 of file gpio.hpp.

◆ gpio_22

constexpr gpio idfxx::gpio_22 = gpio_constant<22>::value
inlineconstexpr

Definition at line 917 of file gpio.hpp.

◆ gpio_23

constexpr gpio idfxx::gpio_23 = gpio_constant<23>::value
inlineconstexpr

Definition at line 920 of file gpio.hpp.

◆ gpio_24

constexpr gpio idfxx::gpio_24 = gpio_constant<24>::value
inlineconstexpr

Definition at line 923 of file gpio.hpp.

◆ gpio_25

constexpr gpio idfxx::gpio_25 = gpio_constant<25>::value
inlineconstexpr

Definition at line 926 of file gpio.hpp.

◆ gpio_26

constexpr gpio idfxx::gpio_26 = gpio_constant<26>::value
inlineconstexpr

Definition at line 929 of file gpio.hpp.

◆ gpio_27

constexpr gpio idfxx::gpio_27 = gpio_constant<27>::value
inlineconstexpr

Definition at line 932 of file gpio.hpp.

◆ gpio_28

constexpr gpio idfxx::gpio_28 = gpio_constant<28>::value
inlineconstexpr

Definition at line 935 of file gpio.hpp.

◆ gpio_29

constexpr gpio idfxx::gpio_29 = gpio_constant<29>::value
inlineconstexpr

Definition at line 938 of file gpio.hpp.

◆ gpio_3

constexpr gpio idfxx::gpio_3 = gpio_constant<3>::value
inlineconstexpr

Definition at line 860 of file gpio.hpp.

◆ gpio_30

constexpr gpio idfxx::gpio_30 = gpio_constant<30>::value
inlineconstexpr

Definition at line 941 of file gpio.hpp.

◆ gpio_31

constexpr gpio idfxx::gpio_31 = gpio_constant<31>::value
inlineconstexpr

Definition at line 944 of file gpio.hpp.

◆ gpio_32

constexpr gpio idfxx::gpio_32 = gpio_constant<32>::value
inlineconstexpr

Definition at line 947 of file gpio.hpp.

◆ gpio_33

constexpr gpio idfxx::gpio_33 = gpio_constant<33>::value
inlineconstexpr

Definition at line 950 of file gpio.hpp.

◆ gpio_34

constexpr gpio idfxx::gpio_34 = gpio_constant<34>::value
inlineconstexpr

Definition at line 953 of file gpio.hpp.

◆ gpio_35

constexpr gpio idfxx::gpio_35 = gpio_constant<35>::value
inlineconstexpr

Definition at line 956 of file gpio.hpp.

◆ gpio_36

constexpr gpio idfxx::gpio_36 = gpio_constant<36>::value
inlineconstexpr

Definition at line 959 of file gpio.hpp.

◆ gpio_37

constexpr gpio idfxx::gpio_37 = gpio_constant<37>::value
inlineconstexpr

Definition at line 962 of file gpio.hpp.

◆ gpio_38

constexpr gpio idfxx::gpio_38 = gpio_constant<38>::value
inlineconstexpr

Definition at line 965 of file gpio.hpp.

◆ gpio_39

constexpr gpio idfxx::gpio_39 = gpio_constant<39>::value
inlineconstexpr

Definition at line 968 of file gpio.hpp.

◆ gpio_4

constexpr gpio idfxx::gpio_4 = gpio_constant<4>::value
inlineconstexpr

Definition at line 863 of file gpio.hpp.

◆ gpio_40

constexpr gpio idfxx::gpio_40 = gpio_constant<40>::value
inlineconstexpr

Definition at line 971 of file gpio.hpp.

◆ gpio_41

constexpr gpio idfxx::gpio_41 = gpio_constant<41>::value
inlineconstexpr

Definition at line 974 of file gpio.hpp.

◆ gpio_42

constexpr gpio idfxx::gpio_42 = gpio_constant<42>::value
inlineconstexpr

Definition at line 977 of file gpio.hpp.

◆ gpio_43

constexpr gpio idfxx::gpio_43 = gpio_constant<43>::value
inlineconstexpr

Definition at line 980 of file gpio.hpp.

◆ gpio_44

constexpr gpio idfxx::gpio_44 = gpio_constant<44>::value
inlineconstexpr

Definition at line 983 of file gpio.hpp.

◆ gpio_45

constexpr gpio idfxx::gpio_45 = gpio_constant<45>::value
inlineconstexpr

Definition at line 986 of file gpio.hpp.

◆ gpio_46

constexpr gpio idfxx::gpio_46 = gpio_constant<46>::value
inlineconstexpr

Definition at line 989 of file gpio.hpp.

◆ gpio_47

constexpr gpio idfxx::gpio_47 = gpio_constant<47>::value
inlineconstexpr

Definition at line 992 of file gpio.hpp.

◆ gpio_48

constexpr gpio idfxx::gpio_48 = gpio_constant<48>::value
inlineconstexpr

Definition at line 995 of file gpio.hpp.

◆ gpio_5

constexpr gpio idfxx::gpio_5 = gpio_constant<5>::value
inlineconstexpr

Definition at line 866 of file gpio.hpp.

◆ gpio_6

constexpr gpio idfxx::gpio_6 = gpio_constant<6>::value
inlineconstexpr

Definition at line 869 of file gpio.hpp.

◆ gpio_7

constexpr gpio idfxx::gpio_7 = gpio_constant<7>::value
inlineconstexpr

Definition at line 872 of file gpio.hpp.

◆ gpio_8

constexpr gpio idfxx::gpio_8 = gpio_constant<8>::value
inlineconstexpr

Definition at line 875 of file gpio.hpp.

◆ gpio_9

constexpr gpio idfxx::gpio_9 = gpio_constant<9>::value
inlineconstexpr

Definition at line 878 of file gpio.hpp.

◆ gpio_nc

constexpr gpio idfxx::gpio_nc = gpio_constant<GPIO_NUM_NC>::value
inlineconstexpr

Definition at line 849 of file gpio.hpp.