a linear model of the Wifi transmit current More...
#include <wifi-tx-current-model.h>
Public Member Functions | |
LinearWifiTxCurrentModel () | |
virtual | ~LinearWifiTxCurrentModel () |
double | CalcTxCurrent (double txPowerDbm) const |
double | GetEta (void) const |
double | GetIdleCurrent (void) const |
double | GetVoltage (void) const |
void | SetEta (double eta) |
void | SetIdleCurrent (double idleCurrent) |
void | SetVoltage (double voltage) |
![]() | |
WifiTxCurrentModel () | |
virtual | ~WifiTxCurrentModel () |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
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) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
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 double | DbmToW (double dbm) |
Convert from dBm to Watts. More... | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Attributes | |
double | m_eta |
double | m_idleCurrent |
double | m_voltage |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
a linear model of the Wifi transmit current
Doxygen introspection did not find any typical Config paths.
This model assumes that the transmit current is a linear function of the nominal transmit power used to send the frame. In particular, the power absorbed during the transmission of a frame is given by the power absorbed by the power amplifier
plus the power absorbed by the RF subsystem. The latter is assumed to be the same as the power absorbed in the IDLE state
.
The efficiency of the power amplifier is given by
, where
is the output power, i.e., the nominal transmit power. Hence,
It turns out that . By dividing both sides by the supply voltage
:
, where
and
are, respectively, the transmit current and the idle current.
For more information, refer to: Francesco Ivan Di Piazza, Stefano Mangione, and Ilenia Tinnirello. "On the Effects of Transmit Power Control on the Energy Consumption of WiFi Network Cards", Proceedings of ICST QShine 2009, pp. 463–475
If the tx current corresponding to a given nominal transmit power is known, the efficiency of the power amplifier is given by the above formula:
No TraceSources are defined for this type.
Definition at line 88 of file wifi-tx-current-model.h.
ns3::LinearWifiTxCurrentModel::LinearWifiTxCurrentModel | ( | ) |
Definition at line 90 of file wifi-tx-current-model.cc.
|
virtual |
Definition at line 94 of file wifi-tx-current-model.cc.
|
virtual |
txPowerDbm | the nominal tx power in dBm |
Implements ns3::WifiTxCurrentModel.
Definition at line 135 of file wifi-tx-current-model.cc.
References ns3::WifiTxCurrentModel::DbmToW(), m_eta, m_idleCurrent, and m_voltage.
double ns3::LinearWifiTxCurrentModel::GetEta | ( | void | ) | const |
Definition at line 117 of file wifi-tx-current-model.cc.
References m_eta.
Referenced by GetTypeId().
double ns3::LinearWifiTxCurrentModel::GetIdleCurrent | ( | void | ) | const |
Definition at line 129 of file wifi-tx-current-model.cc.
References m_idleCurrent.
Referenced by GetTypeId().
|
static |
Definition at line 66 of file wifi-tx-current-model.cc.
References GetEta(), GetIdleCurrent(), GetVoltage(), SetEta(), SetIdleCurrent(), ns3::TypeId::SetParent(), and SetVoltage().
double ns3::LinearWifiTxCurrentModel::GetVoltage | ( | void | ) | const |
Definition at line 123 of file wifi-tx-current-model.cc.
References m_voltage.
Referenced by GetTypeId().
void ns3::LinearWifiTxCurrentModel::SetEta | ( | double | eta | ) |
eta | (dimension-less) |
Set the power amplifier efficiency.
Definition at line 99 of file wifi-tx-current-model.cc.
References m_eta.
Referenced by GetTypeId().
void ns3::LinearWifiTxCurrentModel::SetIdleCurrent | ( | double | idleCurrent | ) |
idleCurrent | (Ampere) |
Set the current in the IDLE state.
Definition at line 111 of file wifi-tx-current-model.cc.
References m_idleCurrent.
Referenced by GetTypeId().
void ns3::LinearWifiTxCurrentModel::SetVoltage | ( | double | voltage | ) |
voltage | (Volts) |
Set the supply voltage.
Definition at line 105 of file wifi-tx-current-model.cc.
References m_voltage.
Referenced by GetTypeId().
|
private |
Definition at line 135 of file wifi-tx-current-model.h.
Referenced by CalcTxCurrent(), GetEta(), and SetEta().
|
private |
Definition at line 137 of file wifi-tx-current-model.h.
Referenced by CalcTxCurrent(), GetIdleCurrent(), and SetIdleCurrent().
|
private |
Definition at line 136 of file wifi-tx-current-model.h.
Referenced by CalcTxCurrent(), GetVoltage(), and SetVoltage().