1#include <vanetza/common/runtime.hpp>
2#include <vanetza/dcc/state_machine.hpp>
3#include <vanetza/dcc/state_machine_budget.hpp>
10StateMachineBudget::StateMachineBudget(
const StateMachine& fsm,
const Runtime& rt) :
11 m_fsm(fsm), m_runtime(rt)
15Clock::duration StateMachineBudget::delay()
17 Clock::duration delay = Clock::duration::max();
20 const auto last_tx = m_last_tx.get();
21 const auto tx_interval = m_fsm.transmission_interval();
22 if (last_tx + tx_interval < m_runtime.now()) {
23 delay = Clock::duration::zero();
25 delay = last_tx + tx_interval - m_runtime.now();
28 delay = Clock::duration::zero();
34void StateMachineBudget::notify()
36 m_last_tx = m_runtime.now();