A WiFi radio energy model. More...
#include <wifi-radio-energy-model.h>
Public Types | |
typedef Callback< void > | WifiRadioEnergyDepletionCallback |
![]() | |
typedef Callback< void, int > | ChangeStateCallback |
Public Member Functions | |
WifiRadioEnergyModel () | |
virtual | ~WifiRadioEnergyModel () |
virtual void | ChangeState (int newState) |
Changes state of the WifiRadioEnergyMode. | |
double | GetCcaBusyCurrentA (void) const |
WifiPhy::State | GetCurrentState (void) const |
double | GetIdleCurrentA (void) const |
WifiRadioEnergyModelPhyListener * | GetPhyListener (void) |
double | GetRxCurrentA (void) const |
double | GetSwitchingCurrentA (void) const |
virtual double | GetTotalEnergyConsumption (void) const |
double | GetTxCurrentA (void) const |
virtual void | HandleEnergyDepletion (void) |
Handles energy depletion. | |
void | SetCcaBusyCurrentA (double ccaBusyCurrentA) |
void | SetEnergyDepletionCallback (WifiRadioEnergyDepletionCallback callback) |
virtual void | SetEnergySource (Ptr< EnergySource > source) |
Sets pointer to EnergySouce installed on node. | |
void | SetIdleCurrentA (double idleCurrentA) |
void | SetRxCurrentA (double rxCurrentA) |
void | SetSwitchingCurrentA (double switchingCurrentA) |
void | SetTxCurrentA (double txCurrentA) |
![]() | |
DeviceEnergyModel () | |
virtual | ~DeviceEnergyModel () |
double | GetCurrentA (void) const |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Start (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::WifiRadioEnergyModel. |
Private Member Functions | |
void | DoDispose (void) |
virtual double | DoGetCurrentA (void) const |
void | SetWifiRadioState (const WifiPhy::State state) |
Private Attributes | |
double | m_ccaBusyCurrentA |
WifiPhy::State | m_currentState |
WifiRadioEnergyDepletionCallback | m_energyDepletionCallback |
double | m_idleCurrentA |
Time | m_lastUpdateTime |
WifiRadioEnergyModelPhyListener * | m_listener |
double | m_rxCurrentA |
Ptr< EnergySource > | m_source |
double | m_switchingCurrentA |
TracedValue< double > | m_totalEnergyConsumption |
double | m_txCurrentA |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
A WiFi radio energy model.
4 states are defined for the radio: TX, RX, IDLE, SLEEP. Default state is IDLE. The different types of transactions that are defined are:
Energy calculation: For each transaction, this model notifies EnergySource object. The EnergySource object will query this model for the total current. Then the EnergySource object uses the total current to calculate energy.
Default values for power consumption are based on CC2420 radio chip, with supply voltage as 2.5V and currents as 17.4 mA (TX), 18.8 mA (RX), 20 uA (sleep) and 426 uA (idle).
Definition at line 146 of file wifi-radio-energy-model.h.
Callback type for energy depletion handling.
Definition at line 152 of file wifi-radio-energy-model.h.
ns3::WifiRadioEnergyModel::WifiRadioEnergyModel | ( | ) |
Definition at line 77 of file wifi-radio-energy-model.cc.
References ns3::DeviceEnergyModel::ChangeState(), ns3::IDLE, m_currentState, m_energyDepletionCallback, m_lastUpdateTime, m_listener, m_source, ns3::MakeCallback(), NS_LOG_FUNCTION, ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Nullify(), ns3::Seconds(), and ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback().
|
virtual |
Definition at line 89 of file wifi-radio-energy-model.cc.
References m_listener.
|
virtual |
Changes state of the WifiRadioEnergyMode.
newState | New state the wifi radio is in. |
Implements DeviceEnergyModel::ChangeState.
Implements ns3::DeviceEnergyModel.
Definition at line 193 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::Time::GetNanoSeconds(), ns3::Time::GetSeconds(), ns3::EnergySource::GetSupplyVoltage(), ns3::WifiPhy::IDLE, m_ccaBusyCurrentA, m_currentState, m_idleCurrentA, m_lastUpdateTime, m_rxCurrentA, m_source, m_switchingCurrentA, m_totalEnergyConsumption, m_txCurrentA, ns3::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, SetWifiRadioState(), ns3::WifiPhy::SWITCHING, ns3::WifiPhy::TX, and ns3::EnergySource::UpdateEnergySource().
|
private |
Definition at line 263 of file wifi-radio-energy-model.cc.
References m_energyDepletionCallback, m_source, and ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Nullify().
|
privatevirtual |
Implements DeviceEnergyModel::GetCurrentA.
Definition at line 270 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::WifiPhy::IDLE, m_ccaBusyCurrentA, m_currentState, m_idleCurrentA, m_rxCurrentA, m_switchingCurrentA, m_txCurrentA, NS_FATAL_ERROR, ns3::WifiPhy::RX, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
double ns3::WifiRadioEnergyModel::GetCcaBusyCurrentA | ( | void | ) | const |
Definition at line 122 of file wifi-radio-energy-model.cc.
References m_ccaBusyCurrentA.
Referenced by GetTypeId(), and BasicEnergyUpdateTest::StateSwitchTest().
WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState | ( | void | ) | const |
Definition at line 175 of file wifi-radio-energy-model.cc.
References m_currentState.
Referenced by BasicEnergyUpdateTest::StateSwitchTest().
double ns3::WifiRadioEnergyModel::GetIdleCurrentA | ( | void | ) | const |
Definition at line 109 of file wifi-radio-energy-model.cc.
References m_idleCurrentA.
Referenced by GetTypeId(), and BasicEnergyUpdateTest::StateSwitchTest().
WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener | ( | void | ) |
Definition at line 253 of file wifi-radio-energy-model.cc.
References m_listener.
double ns3::WifiRadioEnergyModel::GetRxCurrentA | ( | void | ) | const |
Definition at line 148 of file wifi-radio-energy-model.cc.
References m_rxCurrentA.
Referenced by GetTypeId(), and BasicEnergyUpdateTest::StateSwitchTest().
double ns3::WifiRadioEnergyModel::GetSwitchingCurrentA | ( | void | ) | const |
Definition at line 161 of file wifi-radio-energy-model.cc.
References m_switchingCurrentA.
Referenced by GetTypeId(), and BasicEnergyUpdateTest::StateSwitchTest().
|
virtual |
Implements DeviceEnergyModel::GetTotalEnergyConsumption.
Implements ns3::DeviceEnergyModel.
Definition at line 103 of file wifi-radio-energy-model.cc.
References m_totalEnergyConsumption.
double ns3::WifiRadioEnergyModel::GetTxCurrentA | ( | void | ) | const |
Definition at line 135 of file wifi-radio-energy-model.cc.
References m_txCurrentA.
Referenced by GetTypeId(), and BasicEnergyUpdateTest::StateSwitchTest().
|
static |
This method returns the TypeId associated to ns3::WifiRadioEnergyModel.
Attributes defined for this type:
TraceSources defined for this type:
Reimplemented from ns3::DeviceEnergyModel.
Definition at line 35 of file wifi-radio-energy-model.cc.
References GetCcaBusyCurrentA(), GetIdleCurrentA(), GetRxCurrentA(), GetSwitchingCurrentA(), GetTxCurrentA(), m_totalEnergyConsumption, ns3::MakeTraceSourceAccessor(), SetCcaBusyCurrentA(), SetIdleCurrentA(), ns3::TypeId::SetParent(), SetRxCurrentA(), SetSwitchingCurrentA(), and SetTxCurrentA().
|
virtual |
Handles energy depletion.
Implements DeviceEnergyModel::HandleEnergyDepletion
Implements ns3::DeviceEnergyModel.
Definition at line 242 of file wifi-radio-energy-model.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_energyDepletionCallback, and NS_LOG_DEBUG.
void ns3::WifiRadioEnergyModel::SetCcaBusyCurrentA | ( | double | ccaBusyCurrentA | ) |
Definition at line 128 of file wifi-radio-energy-model.cc.
References m_ccaBusyCurrentA, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback | ( | WifiRadioEnergyDepletionCallback | callback | ) |
callback | Callback function. |
Sets callback for energy depletion handling.
Definition at line 181 of file wifi-radio-energy-model.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_energyDepletionCallback, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
virtual |
Sets pointer to EnergySouce installed on node.
source | Pointer to EnergySource installed on node. |
Implements DeviceEnergyModel::SetEnergySource.
Implements ns3::DeviceEnergyModel.
Definition at line 95 of file wifi-radio-energy-model.cc.
References m_source, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by BasicEnergyUpdateTest::StateSwitchTest().
void ns3::WifiRadioEnergyModel::SetIdleCurrentA | ( | double | idleCurrentA | ) |
Definition at line 115 of file wifi-radio-energy-model.cc.
References m_idleCurrentA, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiRadioEnergyModel::SetRxCurrentA | ( | double | rxCurrentA | ) |
Definition at line 154 of file wifi-radio-energy-model.cc.
References m_rxCurrentA, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiRadioEnergyModel::SetSwitchingCurrentA | ( | double | switchingCurrentA | ) |
Definition at line 167 of file wifi-radio-energy-model.cc.
References m_switchingCurrentA, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiRadioEnergyModel::SetTxCurrentA | ( | double | txCurrentA | ) |
Definition at line 141 of file wifi-radio-energy-model.cc.
References m_txCurrentA, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
private |
state | New state the radio device is currently in. |
Sets current state. This function is private so that only the energy model can change its own state.
Definition at line 290 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::WifiPhy::IDLE, m_currentState, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
Referenced by ChangeState().
|
private |
Definition at line 246 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetCcaBusyCurrentA(), and SetCcaBusyCurrentA().
|
private |
Definition at line 253 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetCurrentState(), SetWifiRadioState(), and WifiRadioEnergyModel().
|
private |
Definition at line 257 of file wifi-radio-energy-model.h.
Referenced by DoDispose(), HandleEnergyDepletion(), SetEnergyDepletionCallback(), and WifiRadioEnergyModel().
|
private |
Definition at line 245 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetIdleCurrentA(), and SetIdleCurrentA().
|
private |
Definition at line 254 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), and WifiRadioEnergyModel().
|
private |
Definition at line 260 of file wifi-radio-energy-model.h.
Referenced by GetPhyListener(), WifiRadioEnergyModel(), and ~WifiRadioEnergyModel().
|
private |
Definition at line 244 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetRxCurrentA(), and SetRxCurrentA().
|
private |
Definition at line 240 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoDispose(), SetEnergySource(), and WifiRadioEnergyModel().
|
private |
Definition at line 247 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetSwitchingCurrentA(), and SetSwitchingCurrentA().
|
private |
Definition at line 250 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), GetTotalEnergyConsumption(), and GetTypeId().
|
private |
Definition at line 243 of file wifi-radio-energy-model.h.
Referenced by ChangeState(), DoGetCurrentA(), GetTxCurrentA(), and SetTxCurrentA().