|
Embedded Artistry Framework
Embedded Systems C++ Framework
|
This class manages a GPIO object which is attached to an LED. More...
#include <led.hpp>

Public Member Functions | |
| gpio (embvm::gpio::output &g) noexcept | |
| Default constructor. More... | |
| gpio (embvm::gpio::output &g, const char *name) noexcept | |
| Construct an led::gpio() with a C-string name. More... | |
| gpio (embvm::gpio::output &g, const std::string &name) noexcept | |
| Construct an led::gpio() with a std::string name. More... | |
| gpio (embvm::gpio::output &g, const std::string_view &name) noexcept | |
| Construct an led::gpio() with a std::string_view name. More... | |
| ~gpio () final=default | |
| Default destructor. More... | |
| void | start_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
| void | stop_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
| void | on () noexcept final |
| Turn on the LED. More... | |
| void | off () noexcept final |
| Turn off the LED. More... | |
| void | toggle () noexcept final |
| Toggle the LED state. More... | |
| void | start () noexcept |
| Start the driver. More... | |
| void | stop () noexcept |
| Stop the driver. More... | |
| void | restart () noexcept |
| Restart the driver. More... | |
| type_safe::boolean | started () const noexcept |
| Check if the driver has been started. More... | |
| constexpr embvm::DriverType_t | DriverType () const noexcept |
| Returns the registered type ID of the driver. More... | |
| constexpr const std::string_view & | name () const noexcept |
| Provides a string_view reference of the driver name. More... | |
| constexpr const char * | name_cstr () const noexcept |
| Provides a c-string version of the driver name. More... | |
| virtual DriverBase & | operator++ () noexcept |
| Increment operator is a no-op, but is used for iterator compatibility. More... | |
Static Public Member Functions | |
| static constexpr embvm::DriverType | type () noexcept |
| LED Driver Type ID. More... | |
Protected Attributes | |
| type_safe::boolean | started_ = false |
| Tracks the driver state. More... | |
| const std::string_view | name_ |
| Name of the driver instance. More... | |
| const embvm::DriverType_t | type_ |
| Type ID of the driver instance. More... | |
Private Attributes | |
| embvm::gpio::output & | g_ |
| The GPIO output object which this LED driver is managing. More... | |
| bool | on_ = false |
| State of the LED, required to implement toggle(). More... | |
This class manages a GPIO object which is attached to an LED.
This class provides a specialization of the led::base() object. The led::gpio() class manages a embvm::gpio::output object that is connected to an LED in hardware. All interactions with the LED are forwarded to the embvm::gpio::output.
This class is used in the same way as led::base(). The only additonal requirement is that it must be initialized with a embvm::gpio::output object. This driver assumes that is is the sole owner of the embvm::gpio::output object after creation. If other code messes with the embvm::gpio::output state outside of this interface, proper functioning is no longer guaranteed.
| TActiveHigh | If true, the LED turns on when the GPIO is set high. If false, the LED turns on when the GPIO is set low. |
|
inlineexplicitnoexcept |
Default constructor.
Initializes the led::gpio() instance with a GPIO output object to manage.
| g | The embvm::gpio::output object which the LED driver will manage. |
|
inlineexplicitnoexcept |
Construct an led::gpio() with a C-string name.
Initializes the led::gpio() instance with a GPIO output object to manage and uses the specified name.
| g | The embvm::gpio::output object which the LED driver will manage. |
| name | The name of the LED instance. |
|
inlineexplicitnoexcept |
Construct an led::gpio() with a std::string name.
Initializes the led::gpio() instance with a GPIO output object to manage and uses the specified name.
| g | The embvm::gpio::output object which the LED driver will manage. |
| name | The name of the LED instance. |
|
inlineexplicitnoexcept |
Construct an led::gpio() with a std::string_view name.
Initializes the led::gpio() instance with a GPIO output object to manage and uses the specified name.
| g | The embvm::gpio::output object which the LED driver will manage. |
| name | The name of the LED instance. led::base() uses a std::string_view, so the std::string must remain valid |
|
finaldefault |
Default destructor.
|
inlinenoexceptinherited |
Returns the registered type ID of the driver.
When using DriverBase interfaces, clients can retrieve the registered driver type in order to up-cast to the correct interface.
The type is returned as a embvm::DriverType_t rather than a embvm::DriverType enum to work with custom user-defined types. Enforcing a embvm::DriverType return value would prevent clients from defining and using their own custom types.
References embvm::DriverBase::type_.
|
inlinenoexceptinherited |
Provides a string_view reference of the driver name.
std::string_view ref containing the driver name. References embvm::DriverBase::name_.
|
inlinenoexceptinherited |
Provides a c-string version of the driver name.
References embvm::DriverBase::name_.
|
inlinefinalvirtualnoexcept |
Turn off the LED.
Implements embvm::led::base.
Referenced by NRF52DKHWPlatform::leds_off(), and NRF52DongleHWPlatform::leds_off().
|
inlinefinalvirtualnoexcept |
|
inlinevirtualnoexceptinherited |
Increment operator is a no-op, but is used for iterator compatibility.
|
inlinenoexceptinherited |
Restart the driver.
Calls stop() and then start() on the driver. If the driver is not started, then it will be started after the start() function is invoked.
References embvm::DriverBase::start(), and embvm::DriverBase::stop().
|
inlinenoexceptinherited |
Start the driver.
If the driver is not started, call the start_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::start_(), and embvm::DriverBase::started_.
Referenced by NRF52DongleHWPlatform::init_(), NRF52DKHWPlatform::init_(), BlinkySimulatorHWPlatform::init_(), FWDemoSimulatorHWPlatform::init_(), FrameworkDemoSimPlatform::initHWPlatform_(), embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::start_(), embvm::i2c::activeMaster< 128 >::start_(), embdrv::aardvarkSPIMaster::start_(), embdrv::aardvarkI2CMaster::start_(), embdrv::aardvarkGPIOInput< 4 >::start_(), embdrv::vl53l1x::start_(), embdrv::aardvarkGPIOOutput< 5 >::start_(), BlinkySimulatorHWPlatform::startBlink(), and FWDemoSimulatorHWPlatform::startLEDTimer().
|
inlinefinalvirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Implements embvm::led::base.
References embvm::led::base::off().
|
inlinenoexceptinherited |
Check if the driver has been started.
true if the driver is running (started), false if not running (stopped). References embvm::DriverBase::started_.
Referenced by embdrv::aardvarkSPIMaster::configure_(), embdrv::aardvarkGPIOInput< 4 >::get(), embdrv::aardvarkGPIOOutput< 5 >::set(), embdrv::vl53l1x::start_(), embdrv::aardvarkAdapter::start_(), and embdrv::aardvarkAdapter::stop_().
|
inlinenoexceptinherited |
Stop the driver.
If the driver has been started, call the stop_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::started_, and embvm::DriverBase::stop_().
Referenced by embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::stop_(), embvm::i2c::activeMaster< 128 >::stop_(), embdrv::aardvarkSPIMaster::stop_(), embdrv::aardvarkI2CMaster::stop_(), embdrv::aardvarkGPIOInput< 4 >::stop_(), embdrv::aardvarkGPIOOutput< 5 >::stop_(), FWDemoSimulatorHWPlatform::~FWDemoSimulatorHWPlatform(), and embdrv::SimulatorTimer::~SimulatorTimer().
|
inlinefinalvirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Implements embvm::led::base.
|
inlinefinalvirtualnoexcept |
Toggle the LED state.
If the LED is on, turn it off. If the LED is off, turn it on. The logic for implementing toggle is left to the base class, as there may be efficient options that depend on the specific implementation.
Derived classes must implement the toggle() function.
Implements embvm::led::base.
References embvm::led::base::off(), and embvm::led::base::on().
Referenced by BlinkySimulatorHWPlatform::init_().
|
inlinestaticnoexceptinherited |
|
private |
The GPIO output object which this LED driver is managing.
|
protectedinherited |
Name of the driver instance.
Referenced by embvm::DriverBase::name(), and embvm::DriverBase::name_cstr().
|
private |
State of the LED, required to implement toggle().
|
protectedinherited |
Tracks the driver state.
True if the driver has been started, false if it has been stopped or not yet started.
Referenced by embvm::DriverBase::start(), embvm::DriverBase::started(), and embvm::DriverBase::stop().
|
protectedinherited |
Type ID of the driver instance.
Referenced by embvm::DriverBase::DriverType().
1.8.15