46 GPIOImpl(
const int8_t rx_pin,
const int8_t tx_pin) : _rx_pin{(gpio_num_t)rx_pin}, _tx_pin{(gpio_num_t)tx_pin}
49 inline gpio_num_t rx_pin()
const
53 inline gpio_num_t tx_pin()
const
68 inline virtual m5::hal::error::error_t pinModeRX(
const gpio::Mode m)
override
70 return pin_mode(rx_pin(), m);
72 inline virtual m5::hal::error::error_t writeDigitalRX(
const bool high)
override
74 return write_digital(rx_pin(), high);
76 inline virtual m5::hal::error::error_t readDigitalRX(
bool& high)
override
78 return read_digital(rx_pin(), high);
80 inline virtual m5::hal::error::error_t writeAnalogRX(
const uint16_t v)
override
82 return write_analog(rx_pin(), v);
84 inline virtual m5::hal::error::error_t readAnalogRX(uint16_t& v)
86 return read_analog(v, rx_pin());
89 inline virtual m5::hal::error::error_t pulseInRX(uint32_t& duration,
const int state,
90 const uint32_t timeout_us)
override
92 return pulse_in(duration, rx_pin(), state, timeout_us);
96 inline virtual m5::hal::error::error_t pinModeTX(
const gpio::Mode m)
override
98 return pin_mode(tx_pin(), m);
100 inline virtual m5::hal::error::error_t writeDigitalTX(
const bool high)
override
102 return write_digital(tx_pin(), high);
104 inline virtual m5::hal::error::error_t readDigitalTX(
bool& high)
override
106 return read_digital(tx_pin(), high);
108 inline virtual m5::hal::error::error_t writeAnalogTX(
const uint16_t v)
override
110 return write_analog(tx_pin(), v);
112 inline virtual m5::hal::error::error_t readAnalogTX(uint16_t& v)
114 return read_analog(v, tx_pin());
116 inline virtual m5::hal::error::error_t pulseInTX(uint32_t& duration,
const int state,
117 const uint32_t timeout_us)
override
119 return pulse_in(duration, tx_pin(), state, timeout_us);
123 m5::hal::error::error_t pin_mode(
const gpio_num_t pin,
const gpio::Mode m);
124 m5::hal::error::error_t write_digital(
const gpio_num_t pin,
const bool high);
125 m5::hal::error::error_t read_digital(
const gpio_num_t pin,
bool& high);
126 m5::hal::error::error_t write_analog(
const gpio_num_t pin,
const uint16_t value);
127 m5::hal::error::error_t read_analog(uint16_t& value,
const gpio_num_t pin);
128 m5::hal::error::error_t pulse_in(uint32_t& duration,
const gpio_num_t pin,
const int state,
129 const uint32_t timeout_us);
132 gpio_num_t _rx_pin{(gpio_num_t)-1}, _tx_pin{(gpio_num_t)-1};