22 #ifndef WIFI_RADIO_ENERGY_MODEL_H 23 #define WIFI_RADIO_ENERGY_MODEL_H 25 #include "ns3/device-energy-model.h" 26 #include "ns3/traced-value.h" 27 #include "ns3/event-id.h" 28 #include "ns3/nstime.h" 34 class WifiTxCurrentModel;
double GetRxCurrentA(void) const
Gets receive current in Amperes.
void NotifyOn(void)
Defined in ns3::WifiPhyListener.
Simulation virtual time values and global simulation resolution.
static TypeId GetTypeId(void)
Get the type ID.
Smart pointer class similar to boost::intrusive_ptr.
void HandleEnergyRecharged(void)
Handles energy recharged.
TracedValue< double > m_totalEnergyConsumption
This variable keeps track of the total energy consumed by this model in watts.
Base class for device energy models.
double GetTxCurrentA(void) const
Gets transmit current in Amperes.
double m_rxCurrentA
receive current in Amperes
void SetWifiRadioState(const WifiPhyState state)
UpdateTxCurrentCallback m_updateTxCurrentCallback
Callback used to update the TX current stored in WifiRadioEnergyModel based on the nominal TX power u...
double m_ccaBusyCurrentA
CCA busy current in Amperes.
void ChangeState(int newState)
Changes state of the WifiRadioEnergyMode.
WifiRadioEnergyModelPhyListener * m_listener
WifiPhy listener.
virtual ~WifiRadioEnergyModelPhyListener()
void SetSleepCurrentA(double sleepCurrentA)
Sets sleep current in Amperes.
WifiRadioEnergyModelPhyListener * GetPhyListener(void)
void SetUpdateTxCurrentCallback(UpdateTxCurrentCallback callback)
Sets the update TX current callback.
void SwitchToIdle(void)
A helper function that makes scheduling m_changeStateCallback possible.
void SetRxCurrentA(double rxCurrentA)
Sets receive current in Amperes.
void NotifyRxEndOk(void)
Switches the WifiRadioEnergyModel back to IDLE state.
double m_idleCurrentA
idle current in Amperes
Callback< void > WifiRadioEnergyRechargedCallback
Callback type for energy recharged handling.
Callback< void > WifiRadioEnergyDepletionCallback
Callback type for energy depletion handling.
void SetCcaBusyCurrentA(double ccaBusyCurrentA)
Sets CCA busy current in Amperes.
Time GetMaximumTimeInState(int state) const
double GetTotalEnergyConsumption(void) const
void SetChangeStateCallback(DeviceEnergyModel::ChangeStateCallback callback)
Sets the change state callback.
Ptr< WifiTxCurrentModel > m_txCurrentModel
current model
double m_sleepCurrentA
sleep current in Amperes
WifiPhyState GetCurrentState(void) const
Ptr< EnergySource > m_source
energy source
void NotifySwitchingStart(Time duration)
receive notifications about PHY events.
void NotifyMaybeCcaBusyStart(Time duration)
void SetTxCurrentFromModel(double txPowerDbm)
Calls the CalcTxCurrent method of the TX current model to compute the TX current based on such model...
void SetEnergyRechargedCallback(WifiRadioEnergyRechargedCallback callback)
void NotifyOff(void)
Defined in ns3::WifiPhyListener.
WifiRadioEnergyModelPhyListener()
void NotifyRxEndError(void)
Switches the WifiRadioEnergyModel back to IDLE state.
Time m_lastUpdateTime
time stamp of previous energy update
double GetSwitchingCurrentA(void) const
Gets switching current in Amperes.
DeviceEnergyModel::ChangeStateCallback m_changeStateCallback
Change state callback used to notify the WifiRadioEnergyModel of a state change.
EventId m_switchToOffEvent
switch to off event
EventId m_switchToIdleEvent
switch to idle event
void NotifyTxStart(Time duration, double txPowerDbm)
Switches the WifiRadioEnergyModel to TX state and switches back to IDLE after TX duration.
Callback< void, double > UpdateTxCurrentCallback
Callback type for updating the transmit current based on the nominal TX power.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
WifiPhyState
The state of the PHY layer.
void NotifyWakeup(void)
Defined in ns3::WifiPhyListener.
WifiPhyState m_currentState
current state the radio is in
double GetStateA(int state) const
A WifiPhy listener class for notifying the WifiRadioEnergyModel of Wifi radio state change...
double GetCcaBusyCurrentA(void) const
Gets CCA busy current in Amperes.
void SetTxCurrentA(double txCurrentA)
Sets transmit current in Amperes.
void NotifySleep(void)
Defined in ns3::WifiPhyListener.
A WiFi radio energy model.
void NotifyRxStart(Time duration)
Switches the WifiRadioEnergyModel to RX state.
void SetEnergyDepletionCallback(WifiRadioEnergyDepletionCallback callback)
An identifier for simulation events.
void DoDispose(void)
Destructor implementation.
void HandleEnergyChanged(void)
Handles energy changed.
uint8_t m_nPendingChangeState
pending state change
WifiRadioEnergyDepletionCallback m_energyDepletionCallback
Energy depletion callback.
double DoGetCurrentA(void) const
void SetSwitchingCurrentA(double switchingCurrentA)
Sets switching current in Amperes.
void SetEnergySource(const Ptr< EnergySource > source)
Sets pointer to EnergySouce installed on node.
double m_switchingCurrentA
switching current in Amperes
void SetTxCurrentModel(const Ptr< WifiTxCurrentModel > model)
double GetSleepCurrentA(void) const
Gets sleep current in Amperes.
virtual ~WifiRadioEnergyModel()
a unique identifier for an interface.
void SetIdleCurrentA(double idleCurrentA)
Sets idle current in Amperes.
WifiRadioEnergyRechargedCallback m_energyRechargedCallback
Energy recharged callback.
double GetIdleCurrentA(void) const
Gets idle current in Amperes.
void HandleEnergyDepletion(void)
Handles energy depletion.
double m_txCurrentA
transmit current in Amperes