1#include "dcc_mco_field.hpp"
10DccMcoField::DccMcoField() :
11 m_cbr_l0_hop(0), m_cbr_l1_hop(0), m_output_power(0)
15DccMcoField::DccMcoField(uint32_t field)
17 m_cbr_l0_hop = field >> 24;
18 m_cbr_l1_hop = field >> 16;
19 m_output_power = field >> 11;
22DccMcoField::operator uint32_t()
const
24 uint32_t field = m_cbr_l0_hop;
27 field |= m_cbr_l1_hop;
30 field |= m_output_power.raw();
36void DccMcoField::local_cbr(
const ChannelLoad& cbr)
38 m_cbr_l0_hop = std::floor(cbr.value() * 255.0);
41dcc::ChannelLoad DccMcoField::local_cbr()
const
43 return ChannelLoad(m_cbr_l0_hop / 255.0);
46void DccMcoField::neighbour_cbr(
const ChannelLoad& cbr)
48 m_cbr_l1_hop = std::floor(cbr.value() * 255.0);
51dcc::ChannelLoad DccMcoField::neighbour_cbr()
const
53 return ChannelLoad(m_cbr_l1_hop / 255.0);
56void DccMcoField::output_power(
unsigned dbm)
58 m_output_power = std::min(dbm, 31u);
61unsigned DccMcoField::output_power()
const
63 return m_output_power.raw();