Base class for device energy models. More...
#include "device-energy-model.h"
Public Types | |
typedef Callback< void, int > | ChangeStateCallback |
Callback type for ChangeState function. | |
Public Member Functions | |
DeviceEnergyModel () | |
~DeviceEnergyModel () override | |
virtual void | ChangeState (int newState)=0 |
double | GetCurrentA () const |
virtual double | GetTotalEnergyConsumption () const =0 |
virtual void | HandleEnergyChanged ()=0 |
This function is called by the EnergySource object when energy stored in the energy source is changed. | |
virtual void | HandleEnergyDepletion ()=0 |
This function is called by the EnergySource object when energy stored in the energy source is depleted. | |
virtual void | HandleEnergyRecharged ()=0 |
This function is called by the EnergySource object when energy stored in the energy source is recharged. | |
virtual void | SetEnergySource (Ptr< EnergySource > source)=0 |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Private Member Functions | |
virtual double | DoGetCurrentA () const |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoDispose () |
Destructor implementation. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Base class for device energy models.
A device energy model should represent the energy consumption behavior of a specific device. It will update remaining energy stored in the EnergySource object installed on node. When energy is depleted, each DeviceEnergyModel object installed on the same node will be informed by the EnergySource.
Definition at line 34 of file device-energy-model.h.
typedef Callback<void, int> ns3::energy::DeviceEnergyModel::ChangeStateCallback |
Callback type for ChangeState function.
Devices uses this state to notify DeviceEnergyModel of a state change.
Definition at line 41 of file device-energy-model.h.
ns3::energy::DeviceEnergyModel::DeviceEnergyModel | ( | ) |
Definition at line 31 of file device-energy-model.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::WifiRadioEnergyModel::GetTypeId().
|
override |
Definition at line 36 of file device-energy-model.cc.
References NS_LOG_FUNCTION.
|
pure virtual |
newState | New state the device is in. |
DeviceEnergyModel is a state based model. This function is implemented by all child of DeviceEnergyModel to change the model's state. States are to be defined by each child using an enum (int).
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
Referenced by ns3::lorawan::LoraRadioEnergyModel::LoraRadioEnergyModel(), and ns3::AcousticModemEnergyModelHelper::DoInstall().
|
privatevirtual |
Child class does not have to implement this method if current draw for its states are not know. This default method will always return 0.0A. For the devices who does know the current draw of its states, this method must be overwritten.
Reimplemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
Definition at line 53 of file device-energy-model.cc.
References NS_LOG_FUNCTION.
Referenced by GetCurrentA().
double ns3::energy::DeviceEnergyModel::GetCurrentA | ( | ) | const |
This function returns the current draw at the device in its current state. This function is called from the EnergySource to obtain the total current draw at any given time during simulation.
Definition at line 42 of file device-energy-model.cc.
References DoGetCurrentA(), and NS_LOG_FUNCTION.
|
pure virtual |
DeviceEnergyModel records its own energy consumption during simulation.
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
|
static |
Get the type ID.
Definition at line 22 of file device-energy-model.cc.
References ns3::TypeId::AddDeprecatedName(), and ns3::TypeId::SetParent().
|
pure virtual |
This function is called by the EnergySource object when energy stored in the energy source is changed.
Should be implemented by child classes.
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
|
pure virtual |
This function is called by the EnergySource object when energy stored in the energy source is depleted.
Should be implemented by child classes.
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
|
pure virtual |
This function is called by the EnergySource object when energy stored in the energy source is recharged.
Should be implemented by child classes.
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.
|
pure virtual |
source | Pointer to energy source installed on node. |
This function sets the pointer to energy source installed on node. Should be called only by DeviceEnergyModel helper classes.
Implemented in ns3::AcousticModemEnergyModel, ns3::energy::SimpleDeviceEnergyModel, ns3::lorawan::LoraRadioEnergyModel, and ns3::WifiRadioEnergyModel.