3-phase PV router
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
RelayEngine< N, D > Class Template Reference

This class implements the relay management engine. More...

#include <utils_relay.h>

Collaboration diagram for RelayEngine< N, D >:
Collaboration graph
[legend]

Public Member Functions

constexpr RelayEngine (const relayOutput(&ref)[N])
 Construct a list of relays.
 
constexpr RelayEngine (integral_constant< uint8_t, D > ic, const relayOutput(&ref)[N])
 Construct a list of relays with a custom sliding average.
 
constexpr const auto & get_relay (uint8_t idx) const
 Get the relay object.
 
constexpr auto get_size () const
 Get the number of relays.
 
void inc_duration () const
 Increment the duration's state of each relay.
 
void initializePins () const
 Initialize the pins used by the relays.
 
void printConfiguration () const
 Print the configuration of each relay.
 
void proceed_relays () const
 Proceed all relays in increasing order (surplus) or decreasing order (import)
 

Static Public Member Functions

static auto get_average ()
 Get the current average.
 
static void update_average (int16_t currentPower)
 Update the sliding average.
 

Private Attributes

const relayOutput relay [N]
 
uint8_t settle_change { 60 }
 

Static Private Attributes

static EWMA_average< D *60/DATALOG_PERIOD_IN_SECONDSewma_average
 

Detailed Description

template<uint8_t N, uint8_t D = 10>
class RelayEngine< N, D >

This class implements the relay management engine.

Template Parameters
DThe duration in minutes of the sliding average
NThe number of relays to be used. This parameter is deduced automatically.

Definition at line 252 of file utils_relay.h.

Constructor & Destructor Documentation

◆ RelayEngine() [1/2]

template<uint8_t N, uint8_t D = 10>
constexpr RelayEngine< N, D >::RelayEngine ( const relayOutput(&)  ref[N])
inlineexplicitconstexpr

Construct a list of relays.

Definition at line 259 of file utils_relay.h.

◆ RelayEngine() [2/2]

template<uint8_t N, uint8_t D = 10>
constexpr RelayEngine< N, D >::RelayEngine ( integral_constant< uint8_t, D >  ic,
const relayOutput(&)  ref[N] 
)
inlineconstexpr

Construct a list of relays with a custom sliding average.

Definition at line 268 of file utils_relay.h.

Member Function Documentation

◆ get_average()

template<uint8_t N, uint8_t D = 10>
static auto RelayEngine< N, D >::get_average ( )
inlinestatic

Get the current average.

Returns
auto The current average

Definition at line 299 of file utils_relay.h.

Here is the caller graph for this function:

◆ get_relay()

template<uint8_t N, uint8_t D = 10>
constexpr const auto & RelayEngine< N, D >::get_relay ( uint8_t  idx) const
inlineconstexpr

Get the relay object.

Template Parameters
idxThe index of the relay
Returns
constexpr const auto& The relay object

Definition at line 289 of file utils_relay.h.

Here is the caller graph for this function:

◆ get_size()

template<uint8_t N, uint8_t D = 10>
constexpr auto RelayEngine< N, D >::get_size ( ) const
inlineconstexpr

Get the number of relays.

Returns
constexpr auto The number of relays

Definition at line 278 of file utils_relay.h.

Here is the caller graph for this function:

◆ inc_duration()

template<uint8_t N, uint8_t D>
void RelayEngine< N, D >::inc_duration

Increment the duration's state of each relay.

Definition at line 402 of file utils_relay.h.

Here is the caller graph for this function:

◆ initializePins()

template<uint8_t N, uint8_t D = 10>
void RelayEngine< N, D >::initializePins ( ) const
inline

Initialize the pins used by the relays.

Definition at line 368 of file utils_relay.h.

Here is the caller graph for this function:

◆ printConfiguration()

template<uint8_t N, uint8_t D = 10>
void RelayEngine< N, D >::printConfiguration ( ) const
inline

Print the configuration of each relay.

Definition at line 382 of file utils_relay.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ proceed_relays()

template<uint8_t N, uint8_t D = 10>
void RelayEngine< N, D >::proceed_relays ( ) const
inline

Proceed all relays in increasing order (surplus) or decreasing order (import)

Definition at line 328 of file utils_relay.h.

Here is the caller graph for this function:

◆ update_average()

template<uint8_t N, uint8_t D = 10>
static void RelayEngine< N, D >::update_average ( int16_t  currentPower)
inlinestatic

Update the sliding average.

Parameters
currentPowerCurrent power at the grid

Definition at line 309 of file utils_relay.h.

Here is the caller graph for this function:

Member Data Documentation

◆ ewma_average

template<uint8_t N, uint8_t D = 10>
EWMA_average< D * 60 / DATALOG_PERIOD_IN_SECONDS > RelayEngine< N, D >::ewma_average
inlinestaticprivate

EWMA average

Definition at line 399 of file utils_relay.h.

◆ relay

template<uint8_t N, uint8_t D = 10>
const relayOutput RelayEngine< N, D >::relay[N]
private

Array of relays

Definition at line 395 of file utils_relay.h.

◆ settle_change

template<uint8_t N, uint8_t D = 10>
uint8_t RelayEngine< N, D >::settle_change { 60 }
mutableprivate

Delay in seconds until next change occurs

Definition at line 397 of file utils_relay.h.


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