ns-3
|
A WiFi radio energy model. More...
#include <wifi-radio-energy-model.h>
Public Types | |
typedef Callback< void > | WifiRadioEnergyDepletionCallback |
Public Member Functions | |
virtual void | SetEnergySource (Ptr< EnergySource > source) |
Sets pointer to EnergySouce installed on node. | |
virtual double | GetTotalEnergyConsumption (void) const |
double | GetIdleCurrentA (void) const |
void | SetIdleCurrentA (double idleCurrentA) |
double | GetCcaBusyCurrentA (void) const |
void | SetCcaBusyCurrentA (double ccaBusyCurrentA) |
double | GetTxCurrentA (void) const |
void | SetTxCurrentA (double txCurrentA) |
double | GetRxCurrentA (void) const |
void | SetRxCurrentA (double rxCurrentA) |
double | GetSwitchingCurrentA (void) const |
void | SetSwitchingCurrentA (double switchingCurrentA) |
WifiPhy::State | GetCurrentState (void) const |
void | SetEnergyDepletionCallback (WifiRadioEnergyDepletionCallback callback) |
virtual void | ChangeState (int newState) |
Changes state of the WifiRadioEnergyMode. | |
virtual void | HandleEnergyDepletion (void) |
Handles energy depletion. | |
WifiRadioEnergyModelPhyListener * | GetPhyListener (void) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::WifiRadioEnergyModel. |
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).
Callback type for energy depletion handling.
void ns3::WifiRadioEnergyModel::ChangeState | ( | int | newState | ) | [virtual] |
Changes state of the WifiRadioEnergyMode.
newState | New state the wifi radio is in. |
Implements DeviceEnergyModel::ChangeState.
Implements ns3::DeviceEnergyModel.
References ns3::WifiPhy::CCA_BUSY, ns3::Time::GetNanoSeconds(), ns3::Time::GetSeconds(), ns3::EnergySource::GetSupplyVoltage(), ns3::WifiPhy::IDLE, ns3::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::WifiPhy::SWITCHING, ns3::WifiPhy::TX, and ns3::EnergySource::UpdateEnergySource().
WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState | ( | void | ) | const |
double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption | ( | void | ) | const [virtual] |
Implements DeviceEnergyModel::GetTotalEnergyConsumption.
Implements ns3::DeviceEnergyModel.
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:
Attributes defined for this type:
TraceSources defined for this type:
Reimplemented from ns3::DeviceEnergyModel.
References ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
void ns3::WifiRadioEnergyModel::HandleEnergyDepletion | ( | void | ) | [virtual] |
Handles energy depletion.
Implements DeviceEnergyModel::HandleEnergyDepletion
Implements ns3::DeviceEnergyModel.
References NS_LOG_DEBUG.
void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback | ( | WifiRadioEnergyDepletionCallback | callback | ) |
callback | Callback function. |
Sets callback for energy depletion handling.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
void ns3::WifiRadioEnergyModel::SetEnergySource | ( | Ptr< EnergySource > | source | ) | [virtual] |
Sets pointer to EnergySouce installed on node.
source | Pointer to EnergySource installed on node. |
Implements DeviceEnergyModel::SetEnergySource.
Implements ns3::DeviceEnergyModel.
References NS_ASSERT, and NS_LOG_FUNCTION.