esphome/esphome/components/gpio/output/gpio_binary_output.h

30 lines
672 B
C++

#pragma once
#include "esphome/core/component.h"
#include "esphome/core/esphal.h"
#include "esphome/components/output/binary_output.h"
namespace esphome {
namespace gpio {
class GPIOBinaryOutput : public output::BinaryOutput, public Component {
public:
void set_pin(GPIOPin *pin) { pin_ = pin; }
void setup() override {
this->turn_off();
this->pin_->setup();
this->turn_off();
}
void dump_config() override;
float get_setup_priority() const override { return setup_priority::HARDWARE; }
protected:
void write_state(bool state) override { this->pin_->digital_write(state); }
GPIOPin *pin_;
};
} // namespace gpio
} // namespace esphome