6#include "driver/gpio.h"
7#include "driver/ledc.h"
23 Gate(gpio_num_t lightBarrierPin, gpio_num_t motorPin, ledc_channel_t ledcChannel);
33 Gate(gpio_num_t buttonPin, uint32_t buttonDebounceMs,
34 gpio_num_t lightBarrierPin, gpio_num_t motorPin, ledc_channel_t ledcChannel);
37 void close()
override;
38 bool isOpen()
const override;
44 bool hasButton()
const {
return m_button !=
nullptr; }
59 std::unique_ptr<EspGpioInput> m_button;
60 std::unique_ptr<EspGpioInput> m_lightBarrier;
61 std::unique_ptr<EspServoOutput> m_motor;
Concrete gate implementation using GPIO.
Definition Gate.h:15
void open() override
Open the barrier.
Definition Gate.cpp:29
EspGpioInput & getButton()
Get button for interrupt configuration.
Definition Gate.h:50
bool isOpen() const override
Check if barrier is currently open.
Definition Gate.cpp:45
void close() override
Close the barrier.
Definition Gate.cpp:37
bool isCarDetected() const override
Check if car is detected in light barrier.
Definition Gate.cpp:49
bool hasButton() const
Check if gate has a button.
Definition Gate.h:44
EspGpioInput & getLightBarrier()
Get light barrier for interrupt configuration.
Definition Gate.h:56
Gate interface for barrier control abstraction.
Definition IGate.h:9