1
0
mirror of https://github.com/esphome/esphome.git synced 2025-02-12 16:08:19 +00:00

Make get_flags() in GPIOPin mandatory (#8182)

Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
This commit is contained in:
Djordje Mandic 2025-02-03 18:14:55 +01:00 committed by GitHub
parent 8de5af4eec
commit 5108b9a8b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 34 additions and 5 deletions

View File

@ -57,6 +57,8 @@ class CH422GGPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags); void set_flags(gpio::Flags flags);
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
CH422GComponent *parent_{}; CH422GComponent *parent_{};
uint8_t pin_{}; uint8_t pin_{};

View File

@ -83,6 +83,8 @@ class MAX6956GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
MAX6956 *parent_; MAX6956 *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -61,6 +61,8 @@ class MCP23016GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
MCP23016 *parent_; MCP23016 *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -43,6 +43,8 @@ class MCP23XXXGPIOPin : public GPIOPin {
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
void set_interrupt_mode(MCP23XXXInterruptMode interrupt_mode) { interrupt_mode_ = interrupt_mode; } void set_interrupt_mode(MCP23XXXInterruptMode interrupt_mode) { interrupt_mode_ = interrupt_mode; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
MCP23XXXBase *parent_; MCP23XXXBase *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -117,6 +117,8 @@ class MPR121GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_inverted(bool inverted) { this->inverted_ = inverted; }
void set_flags(gpio::Flags flags) { this->flags_ = flags; } void set_flags(gpio::Flags flags) { this->flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
MPR121Component *parent_; MPR121Component *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -52,6 +52,8 @@ class PCA6416AGPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
PCA6416AComponent *parent_; PCA6416AComponent *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -65,6 +65,8 @@ class PCA9554GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
PCA9554Component *parent_; PCA9554Component *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -54,6 +54,8 @@ class PCF8574GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
void set_flags(gpio::Flags flags) { flags_ = flags; } void set_flags(gpio::Flags flags) { flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
PCF8574Component *parent_; PCF8574Component *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -52,6 +52,9 @@ class SN74HC165GPIOPin : public GPIOPin, public Parented<SN74HC165Component> {
void set_pin(uint16_t pin) { pin_ = pin; } void set_pin(uint16_t pin) { pin_ = pin; }
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
/// Always returns `gpio::Flags::FLAG_INPUT`.
gpio::Flags get_flags() const override { return gpio::Flags::FLAG_INPUT; }
protected: protected:
uint16_t pin_; uint16_t pin_;
bool inverted_; bool inverted_;

View File

@ -59,6 +59,9 @@ class SN74HC595GPIOPin : public GPIOPin, public Parented<SN74HC595Component> {
void set_pin(uint16_t pin) { pin_ = pin; } void set_pin(uint16_t pin) { pin_ = pin; }
void set_inverted(bool inverted) { inverted_ = inverted; } void set_inverted(bool inverted) { inverted_ = inverted; }
/// Always returns `gpio::Flags::FLAG_OUTPUT`.
gpio::Flags get_flags() const override { return gpio::Flags::FLAG_OUTPUT; }
protected: protected:
uint16_t pin_; uint16_t pin_;
bool inverted_; bool inverted_;

View File

@ -114,6 +114,8 @@ class NullPin : public GPIOPin {
void pin_mode(gpio::Flags flags) override {} void pin_mode(gpio::Flags flags) override {}
gpio::Flags get_flags() const override { return gpio::Flags::FLAG_NONE; }
bool digital_read() override { return false; } bool digital_read() override { return false; }
void digital_write(bool value) override {} void digital_write(bool value) override {}

View File

@ -20,6 +20,8 @@ class SX1509GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_inverted(bool inverted) { this->inverted_ = inverted; }
void set_flags(gpio::Flags flags) { this->flags_ = flags; } void set_flags(gpio::Flags flags) { this->flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
SX1509Component *parent_; SX1509Component *parent_;
uint8_t pin_; uint8_t pin_;

View File

@ -54,6 +54,8 @@ class TCA9555GPIOPin : public GPIOPin, public Parented<TCA9555Component> {
void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_inverted(bool inverted) { this->inverted_ = inverted; }
void set_flags(gpio::Flags flags) { this->flags_ = flags; } void set_flags(gpio::Flags flags) { this->flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
protected: protected:
uint8_t pin_; uint8_t pin_;
bool inverted_; bool inverted_;

View File

@ -275,6 +275,8 @@ class WeikaiGPIOPin : public GPIOPin {
void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_inverted(bool inverted) { this->inverted_ = inverted; }
void set_flags(gpio::Flags flags) { this->flags_ = flags; } void set_flags(gpio::Flags flags) { this->flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
void setup() override; void setup() override;
std::string dump_summary() const override; std::string dump_summary() const override;
void pin_mode(gpio::Flags flags) override { this->parent_->set_pin_direction_(this->pin_, flags); } void pin_mode(gpio::Flags flags) override { this->parent_->set_pin_direction_(this->pin_, flags); }

View File

@ -36,6 +36,8 @@ class XL9535GPIOPin : public GPIOPin {
void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_inverted(bool inverted) { this->inverted_ = inverted; }
void set_flags(gpio::Flags flags) { this->flags_ = flags; } void set_flags(gpio::Flags flags) { this->flags_ = flags; }
gpio::Flags get_flags() const override { return this->flags_; }
void setup() override; void setup() override;
std::string dump_summary() const override; std::string dump_summary() const override;
void pin_mode(gpio::Flags flags) override; void pin_mode(gpio::Flags flags) override;

View File

@ -56,12 +56,9 @@ class GPIOPin {
/** /**
* @brief Retrieve GPIO pin flags. * @brief Retrieve GPIO pin flags.
* *
* @note This is currently optional to limit changes but will be mandatory in a future update. * @return The GPIO flags describing the pin mode and properties.
* It is primarily applied to internal pins for now.
*
* @return The GPIO flags describing the pin mode and properties. Returns `gpio::Flags::FLAG_NONE` if not overridden.
*/ */
virtual gpio::Flags get_flags() const { return gpio::Flags::FLAG_NONE; } virtual gpio::Flags get_flags() const = 0;
virtual bool digital_read() = 0; virtual bool digital_read() = 0;