A WiFi radio energy model. More...
#include <wifi-radio-energy-model.h>
Public Types | |
typedef Callback< void > | WifiRadioEnergyDepletionCallback |
Public Types inherited from ns3::DeviceEnergyModel | |
typedef Callback< void, int > | ChangeStateCallback |
Public Member Functions | |
virtual void | ChangeState (int newState) |
Changes state of the WifiRadioEnergyMode. More... | |
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. More... | |
void | SetCcaBusyCurrentA (double ccaBusyCurrentA) |
void | SetEnergyDepletionCallback (WifiRadioEnergyDepletionCallback callback) |
virtual void | SetEnergySource (Ptr< EnergySource > source) |
Sets pointer to EnergySouce installed on node. More... | |
void | SetIdleCurrentA (double idleCurrentA) |
void | SetRxCurrentA (double rxCurrentA) |
void | SetSwitchingCurrentA (double switchingCurrentA) |
void | SetTxCurrentA (double txCurrentA) |
Public Member Functions inherited from ns3::DeviceEnergyModel | |
double | GetCurrentA (void) const |
Public Member Functions inherited from ns3::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 | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::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) |
Static Public Member Functions inherited from ns3::DeviceEnergyModel | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
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 | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (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).
Doxygen introspection did not find any typical Config paths.
Definition at line 147 of file wifi-radio-energy-model.h.
Callback type for energy depletion handling.
Definition at line 153 of file wifi-radio-energy-model.h.
|
virtual |
Changes state of the WifiRadioEnergyMode.
newState | New state the wifi radio is in. |
Implements DeviceEnergyModel::ChangeState.
Implements ns3::DeviceEnergyModel.
Definition at line 201 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::Time::GetNanoSeconds(), ns3::Time::GetSeconds(), ns3::WifiPhy::IDLE, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, SetWifiRadioState(), ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
|
privatevirtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 273 of file wifi-radio-energy-model.cc.
References NS_LOG_FUNCTION.
|
privatevirtual |
Implements DeviceEnergyModel::GetCurrentA.
Reimplemented from ns3::DeviceEnergyModel.
Definition at line 281 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::WifiPhy::IDLE, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState | ( | void | ) | const |
Definition at line 182 of file wifi-radio-energy-model.cc.
References NS_LOG_FUNCTION.
Referenced by BasicEnergyUpdateTest::StateSwitchTest().
WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener | ( | void | ) |
Definition at line 262 of file wifi-radio-energy-model.cc.
References NS_LOG_FUNCTION.
|
virtual |
Implements DeviceEnergyModel::GetTotalEnergyConsumption.
Implements ns3::DeviceEnergyModel.
Definition at line 104 of file wifi-radio-energy-model.cc.
References NS_LOG_FUNCTION.
|
virtual |
Handles energy depletion.
Implements DeviceEnergyModel::HandleEnergyDepletion
Implements ns3::DeviceEnergyModel.
Definition at line 250 of file wifi-radio-energy-model.cc.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback | ( | WifiRadioEnergyDepletionCallback | callback | ) |
callback | Callback function. |
Sets callback for energy depletion handling.
Definition at line 189 of file wifi-radio-energy-model.cc.
References 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 96 of file wifi-radio-energy-model.cc.
References NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by BasicEnergyUpdateTest::StateSwitchTest().
|
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 302 of file wifi-radio-energy-model.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::WifiPhy::IDLE, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::WifiPhy::SENSING, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
Referenced by ChangeState().