Create IO instance from configuration.
23 {
24 if (config == nullptr) {
25 return nullptr;
26 }
27
32
33
34 if (io_config.
type == IoType::GPIO) {
40 }
else if (io_config.
type == IoType::PWM) {
45 }
46
48 if (!instance) {
49 return nullptr;
50 }
51
52
54}
static MeshXIoFactory & getInstance()
Get singleton instance.
Definition meshx_io_factory.cpp:26
std::unique_ptr< MeshXIoInterface > create(const IoConfig &config)
Create IO instance.
Definition meshx_io_factory.cpp:69
void * meshx_io_handle_t
Opaque handle to IO instance.
Definition meshx_io_bridge.h:26
IoType
IO Type enumeration.
Definition meshx_io_factory.hpp:24
IO Configuration Structure.
Definition meshx_io_factory.hpp:35
bool signal_inversion
Definition meshx_io_factory.hpp:47
uint8_t pull
Definition meshx_io_factory.hpp:44
uint32_t frequency
Definition meshx_io_factory.hpp:51
uint8_t resolution
Definition meshx_io_factory.hpp:53
struct meshx::IoConfig::@322131243157366012127327120072350016325131204373::@367141106155340206106161007235363020301330311260 gpio
uint8_t logical_pin
Definition meshx_io_factory.hpp:36
uint8_t duty_cycle
Definition meshx_io_factory.hpp:52
uint8_t mode
Definition meshx_io_factory.hpp:43
struct meshx::IoConfig::@322131243157366012127327120072350016325131204373::@240320275032304141243012114035354247040336106337 pwm
IoType type
Definition meshx_io_factory.hpp:37
union meshx::IoConfig::@322131243157366012127327120072350016325131204373 config
uint8_t drive
Definition meshx_io_factory.hpp:45
uint8_t initial_level
Definition meshx_io_factory.hpp:46
std::string name
Definition meshx_io_factory.hpp:38
uint8_t channel
Definition meshx_io_factory.hpp:54
struct meshx_io_config_t::@200043212040355171322045102300102313244163277162::@121023260072206274007113107267121236225137237146 pwm
uint8_t channel
Definition meshx_io_bridge.h:65
uint8_t io_type
Definition meshx_io_bridge.h:49
uint8_t mode
Definition meshx_io_bridge.h:54
struct meshx_io_config_t::@200043212040355171322045102300102313244163277162::@136271060226257263336073166042050314245271222173 gpio
uint8_t drive
Definition meshx_io_bridge.h:56
union meshx_io_config_t::@200043212040355171322045102300102313244163277162 config
bool signal_inversion
Definition meshx_io_bridge.h:58
uint8_t resolution
Definition meshx_io_bridge.h:64
uint8_t duty_cycle
Definition meshx_io_bridge.h:63
const char * name
Definition meshx_io_bridge.h:50
uint8_t pull
Definition meshx_io_bridge.h:55
uint8_t initial_level
Definition meshx_io_bridge.h:57
uint8_t logical_pin
Definition meshx_io_bridge.h:48
uint32_t frequency
Definition meshx_io_bridge.h:62