17#define LOG_PIN(prefix, pin) log_pin(TAG, F(prefix), pin)
19#define LOG_PIN(prefix, pin) log_pin(TAG, prefix, pin)
45 return static_cast<Flags>(
static_cast<uint8_t
>(lhs) &
static_cast<uint8_t
>(rhs));
48 return static_cast<Flags>(
static_cast<uint8_t
>(lhs) |
static_cast<uint8_t
>(rhs));
90 virtual bool is_held()
const {
return false; }
117 { pin.get_pin() } -> std::same_as<uint8_t>;
118 { pin.is_inverted() } -> std::same_as<bool>;
119 { pin.to_isr() } -> std::same_as<ISRInternalGPIOPin>;
120 { pin.detach_interrupt() } -> std::same_as<void>;
121 { pin.attach_interrupt(func, arg,
type) } -> std::same_as<void>;
142void log_pin(
const char *tag,
const __FlashStringHelper *prefix, GPIOPin *pin);
144void log_pin(
const char *tag,
const char *prefix, GPIOPin *pin);
virtual void pin_mode(gpio::Flags flags)=0
virtual void digital_write(bool value)=0
virtual bool is_internal()
Only the platform pin class behind the InternalGPIOPin alias may return true: callers static_cast to ...
virtual gpio::Flags get_flags() const =0
Retrieve GPIO pin flags.
virtual bool digital_read()=0
virtual bool is_held() const
virtual size_t dump_summary(char *buffer, size_t len) const
Write a summary of this pin to the provided buffer.
Copy of GPIOPin that is safe to use from ISRs (with no virtual functions)
ISRInternalGPIOPin(void *arg)
void digital_write(bool value)
void pin_mode(gpio::Flags flags)
ISRInternalGPIOPin()=default
constexpr FlagsHelper(Flags val)
constexpr FlagsHelper operator|(Flags lhs, Flags rhs)
constexpr FlagsHelper operator&(Flags lhs, Flags rhs)
void HOT esp_log_printf_(int level, const char *tag, int line, const char *format,...)
void log_pin_with_prefix(const char *tag, const char *prefix, GPIOPin *pin)
constexpr size_t GPIO_SUMMARY_MAX_LEN
Maximum buffer size for dump_summary output.
void log_pin(const char *tag, const __FlashStringHelper *prefix, GPIOPin *pin)