Vanetza
 
Loading...
Searching...
No Matches
vanetza::dcc::FullyMeshedStateMachine Class Reference

#include <fully_meshed_state_machine.hpp>

Inheritance diagram for vanetza::dcc::FullyMeshedStateMachine:

Public Member Functions

void update (ChannelLoad channel_load)
 
double message_rate () const
 
Clock::duration transmission_interval () const
 
const Statestate () const
 

Private Member Functions

double max_channel_load () const
 
double min_channel_load () const
 

Private Attributes

Relaxed m_relaxed
 
Active m_active
 
Restrictive m_restrictive
 
Statem_state
 
boost::circular_buffer< ChannelLoadm_channel_loads
 

Detailed Description

Fully meshed TRC state machine as per TS 102 687 v1.1.1

States are modelled according to C2C-CC DCC Whitepaper / BSP v1.2 State transitions are deferred internally for ramping up and cooling down over time.

Definition at line 60 of file fully_meshed_state_machine.hpp.

Constructor & Destructor Documentation

◆ FullyMeshedStateMachine()

vanetza::dcc::FullyMeshedStateMachine::FullyMeshedStateMachine ( )

Definition at line 93 of file fully_meshed_state_machine.cpp.

◆ ~FullyMeshedStateMachine()

vanetza::dcc::FullyMeshedStateMachine::~FullyMeshedStateMachine ( )

Definition at line 99 of file fully_meshed_state_machine.cpp.

Member Function Documentation

◆ max_channel_load()

double vanetza::dcc::FullyMeshedStateMachine::max_channel_load ( ) const
private

Definition at line 163 of file fully_meshed_state_machine.cpp.

◆ message_rate()

double vanetza::dcc::FullyMeshedStateMachine::message_rate ( ) const

Get currently allowed maximum message rate depending on state

Returns
messages per second

Definition at line 129 of file fully_meshed_state_machine.cpp.

◆ min_channel_load()

double vanetza::dcc::FullyMeshedStateMachine::min_channel_load ( ) const
private

Definition at line 146 of file fully_meshed_state_machine.cpp.

◆ state()

const State & vanetza::dcc::FullyMeshedStateMachine::state ( ) const

Get state machine's active state

Definition at line 140 of file fully_meshed_state_machine.cpp.

◆ transmission_interval()

Clock::duration vanetza::dcc::FullyMeshedStateMachine::transmission_interval ( ) const
virtual

Get advised transmission interval between consecutive messages

Returns
message transmission interval

Implements vanetza::dcc::StateMachine.

Definition at line 135 of file fully_meshed_state_machine.cpp.

◆ update()

void vanetza::dcc::FullyMeshedStateMachine::update ( ChannelLoad  channel_load)
virtual

Notify state machine about current channel load. This method expects to be called in regular intervals of NDL_minDccSampling length.

Implements vanetza::dcc::StateMachine.

Definition at line 103 of file fully_meshed_state_machine.cpp.

Member Data Documentation

◆ m_active

Active vanetza::dcc::FullyMeshedStateMachine::m_active
private

Definition at line 95 of file fully_meshed_state_machine.hpp.

◆ m_channel_loads

boost::circular_buffer<ChannelLoad> vanetza::dcc::FullyMeshedStateMachine::m_channel_loads
private

Definition at line 98 of file fully_meshed_state_machine.hpp.

◆ m_relaxed

Relaxed vanetza::dcc::FullyMeshedStateMachine::m_relaxed
private

Definition at line 94 of file fully_meshed_state_machine.hpp.

◆ m_restrictive

Restrictive vanetza::dcc::FullyMeshedStateMachine::m_restrictive
private

Definition at line 96 of file fully_meshed_state_machine.hpp.

◆ m_state

State* vanetza::dcc::FullyMeshedStateMachine::m_state
private

Definition at line 97 of file fully_meshed_state_machine.hpp.


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