Embedded Artistry Framework
Embedded Systems C++ Framework
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members
nRFGPIOOutput< TPort, TPin > Class Template Referencefinal

#include <nrf_gpio.hpp>

Inheritance diagram for nRFGPIOOutput< TPort, TPin >:
Inheritance graph

Public Member Functions

 nRFGPIOOutput () noexcept
 Construct a generic GPIO output. More...
 
 nRFGPIOOutput (const char *name) noexcept
 Construct a named GPIO output. More...
 
 ~nRFGPIOOutput () final=default
 Default destructor. More...
 
void set (bool v) noexcept final
 Set the current GPIO pin state. More...
 
gpio::direction direction () const noexcept
 Check the direction of the GPIO pin. 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 DriverBaseoperator++ () noexcept
 Increment operator is a no-op, but is used for iterator compatibility. More...
 

Static Public Member Functions

static constexpr embvm::DriverType type () noexcept
 GPIO 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 Member Functions

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...
 

Constructor & Destructor Documentation

◆ nRFGPIOOutput() [1/2]

template<uint8_t TPort, uint8_t TPin>
nRFGPIOOutput< TPort, TPin >::nRFGPIOOutput ( )
inlineexplicitnoexcept

Construct a generic GPIO output.

◆ nRFGPIOOutput() [2/2]

template<uint8_t TPort, uint8_t TPin>
nRFGPIOOutput< TPort, TPin >::nRFGPIOOutput ( const char *  name)
inlineexplicitnoexcept

Construct a named GPIO output.

Parameters
nameThe name of the GPIO pin

◆ ~nRFGPIOOutput()

template<uint8_t TPort, uint8_t TPin>
nRFGPIOOutput< TPort, TPin >::~nRFGPIOOutput ( )
finaldefault

Default destructor.

Member Function Documentation

◆ direction()

gpio::direction embvm::gpio::base< TDir >::direction ( ) const
inlinenoexceptinherited

Check the direction of the GPIO pin.

Returns
The configured direction of this GPIO pin.

◆ DriverType()

constexpr embvm::DriverType_t embvm::DriverBase::DriverType ( ) const
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.

Returns
the registered driver type as a embvm::DriverType_t value

References embvm::DriverBase::type_.

◆ name()

constexpr const std::string_view& embvm::DriverBase::name ( ) const
inlinenoexceptinherited

Provides a string_view reference of the driver name.

Returns
std::string_view ref containing the driver name.

References embvm::DriverBase::name_.

◆ name_cstr()

constexpr const char* embvm::DriverBase::name_cstr ( ) const
inlinenoexceptinherited

Provides a c-string version of the driver name.

Returns
c-string containing the driver name

References embvm::DriverBase::name_.

◆ operator++()

virtual DriverBase& embvm::DriverBase::operator++ ( )
inlinevirtualnoexceptinherited

Increment operator is a no-op, but is used for iterator compatibility.

◆ restart()

void embvm::DriverBase::restart ( )
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().

◆ set()

template<uint8_t TPort, uint8_t TPin>
void nRFGPIOOutput< TPort, TPin >::set ( bool  v)
inlinefinalvirtualnoexcept

Set the current GPIO pin state.

Derived classes must implement the set() function.

Parameters
vThe desired GPIO state. True for logic 1, false for logic 0.

Implements embvm::gpio::output.

◆ start()

void embvm::DriverBase::start ( )
inlinenoexceptinherited

◆ start_()

template<uint8_t TPort, uint8_t TPin>
void nRFGPIOOutput< TPort, TPin >::start_ ( )
inlinefinalprivatevirtualnoexcept

Derived classes override the start_ method to control driver-specific startup behavior.

(Template Method Pattern)

Implements embvm::gpio::output.

◆ started()

type_safe::boolean embvm::DriverBase::started ( ) const
inlinenoexceptinherited

Check if the driver has been started.

Returns
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_().

◆ stop()

void embvm::DriverBase::stop ( )
inlinenoexceptinherited

◆ stop_()

template<uint8_t TPort, uint8_t TPin>
void nRFGPIOOutput< TPort, TPin >::stop_ ( )
inlinefinalprivatevirtualnoexcept

Derived classes override the start_ method to control driver-specific startup behavior.

(Template Method Pattern)

Implements embvm::gpio::output.

◆ type()

static constexpr embvm::DriverType embvm::gpio::base< TDir >::type ( )
inlinestaticnoexceptinherited

GPIO Driver Type ID.

Returns
GPIO type ID.

Member Data Documentation

◆ name_

const std::string_view embvm::DriverBase::name_
protectedinherited

Name of the driver instance.

Referenced by embvm::DriverBase::name(), and embvm::DriverBase::name_cstr().

◆ started_

type_safe::boolean embvm::DriverBase::started_ = false
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().

◆ type_

const embvm::DriverType_t embvm::DriverBase::type_
protectedinherited

Type ID of the driver instance.

Referenced by embvm::DriverBase::DriverType().


The documentation for this class was generated from the following file: