Public Types | Public Member Functions | Static Public Member Functions

ns3::WifiRadioEnergyModel Class Reference

A WiFi radio energy model. More...

#include <wifi-radio-energy-model.h>

Inheritance diagram for ns3::WifiRadioEnergyModel:
Inheritance graph
[legend]
Collaboration diagram for ns3::WifiRadioEnergyModel:
Collaboration graph
[legend]

List of all members.

Public Types

enum  WifiRadioState { TX = 0, RX, IDLE, SLEEP }
typedef Callback< void > WifiRadioEnergyDepletionCallback

Public Member Functions

virtual void SetNode (Ptr< Node > node)
 Sets pointer to node.
virtual Ptr< NodeGetNode (void) const
 Gets pointer to node.
virtual void SetEnergySource (Ptr< EnergySource > source)
 Sets pointer to EnergySouce installed on node.
virtual double GetTotalEnergyConsumption (void) const
double GetTxCurrentA (void) const
void SetTxCurrentA (double txCurrentA)
double GetRxCurrentA (void) const
void SetRxCurrentA (double rxCurrentA)
double GetIdleCurrentA (void) const
void SetIdleCurrentA (double idleCurrentA)
double GetSleepCurrentA (void) const
void SetSleepCurrentA (double sleepCurrentA)
WifiRadioState GetCurrentState (void) const
void SetEnergyDepletionCallback (WifiRadioEnergyDepletionCallback callback)
virtual void ChangeState (int newState)
 Changes state of the WifiRadioEnergyMode.
virtual void HandleEnergyDepletion (void)
 Handles energy depletion.

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::WifiRadioEnergyModel.

Detailed Description

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: 1. Tx: State goes from IDLE to TX, radio is in TX state for TX_duration, then state goes from TX to IDLE. 2. Rx: State goes from IDLE to RX, radio is in RX state for RX_duration, then state goes from RX to IDLE. 3. Go_to_Sleep: State goes from IDLE to SLEEP. 4. End_of_Sleep: State goes from SLEEP to IDLE. The class keeps track of what state the radio is currently in.

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).


Member Typedef Documentation

Callback type for energy depletion handling.


Member Enumeration Documentation

Wifi radio states.

Enumerator:
TX 

Radio is transmitting.

RX 

Radio is receiving.

IDLE 

Radio is idling.

SLEEP 

Radio is asleep.


Member Function Documentation

virtual void ns3::WifiRadioEnergyModel::ChangeState ( int  newState  )  [virtual]

Changes state of the WifiRadioEnergyMode.

Parameters:
newState New state the wifi radio is in.

Implements DeviceEnergyModel::ChangeState.

Implements ns3::DeviceEnergyModel.

WifiRadioState ns3::WifiRadioEnergyModel::GetCurrentState ( void   )  const
Returns:
Current state.
virtual Ptr<Node> ns3::WifiRadioEnergyModel::GetNode ( void   )  const [virtual]

Gets pointer to node.

Returns:
Pointer to node.

Implements DeviceEnergyModel::GetNode.

Implements ns3::DeviceEnergyModel.

virtual double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption ( void   )  const [virtual]
Returns:
Total energy consumption of the wifi device.

Implements DeviceEnergyModel::GetTotalEnergyConsumption.

Implements ns3::DeviceEnergyModel.

static TypeId ns3::WifiRadioEnergyModel::GetTypeId ( void   )  [static]

This method returns the TypeId associated to ns3::WifiRadioEnergyModel.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::DeviceEnergyModel/$ns3::WifiRadioEnergyModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::WifiRadioEnergyModel

Attributes defined for this type:

  • TxCurrentA: The radio Tx current in Ampere.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.0174
    • Flags: construct write read
  • RxCurrentA: The radio Rx current in Ampere.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.0197
    • Flags: construct write read
  • IdleCurrentA: The default radio Idle current in Ampere.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.000426
    • Flags: construct write read
  • SleepCurrentA: The default radio Sleep current in Ampere.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 2e-05
    • Flags: construct write read

TraceSources defined for this type:

  • TotalEnergyConsumption: Total energy consumption of the radio device.

Reimplemented from ns3::DeviceEnergyModel.

virtual void ns3::WifiRadioEnergyModel::HandleEnergyDepletion ( void   )  [virtual]

Handles energy depletion.

Implements DeviceEnergyModel::HandleEnergyDepletion

Implements ns3::DeviceEnergyModel.

void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback ( WifiRadioEnergyDepletionCallback  callback  ) 
Parameters:
callback Callback function.

Sets callback for energy depletion handling.

virtual void ns3::WifiRadioEnergyModel::SetEnergySource ( Ptr< EnergySource source  )  [virtual]

Sets pointer to EnergySouce installed on node.

Parameters:
source Pointer to EnergySource installed on node.

Implements DeviceEnergyModel::SetEnergySource.

Implements ns3::DeviceEnergyModel.

virtual void ns3::WifiRadioEnergyModel::SetNode ( Ptr< Node node  )  [virtual]

Sets pointer to node.

Parameters:
node Pointer to node.

Implements DeviceEnergyModel::SetNode.

Implements ns3::DeviceEnergyModel.


The documentation for this class was generated from the following files: