1#ifndef FULLY_MESHED_STATE_MACHINE_HPP_YPE958OH
2#define FULLY_MESHED_STATE_MACHINE_HPP_YPE958OH
4#include <vanetza/common/clock.hpp>
5#include <vanetza/dcc/channel_load.hpp>
6#include <vanetza/dcc/state_machine.hpp>
7#include <boost/circular_buffer.hpp>
8#include <boost/optional.hpp>
16static constexpr Clock::duration NDL_minDccSampling = std::chrono::milliseconds(100);
22 virtual Clock::duration transmission_interval()
const = 0;
23 virtual const char* name()
const = 0;
30 Clock::duration transmission_interval()
const override;
31 const char* name()
const override;
38 void update(
double min,
double max);
39 Clock::duration transmission_interval()
const override;
40 const char* name()
const override;
43 static const std::size_t sc_substates;
44 std::size_t m_substate;
50 Clock::duration transmission_interval()
const override;
51 const char* name()
const override;
91 double max_channel_load()
const;
92 double min_channel_load()
const;
98 boost::circular_buffer<ChannelLoad> m_channel_loads;
double message_rate() const
void update(ChannelLoad channel_load)
Clock::duration transmission_interval() const
const State & state() const