BasicEnergyHarvester increases remaining energy stored in an associated Energy Source. More...
#include "basic-energy-harvester.h"
Public Member Functions | |
BasicEnergyHarvester () | |
BasicEnergyHarvester (Time updateInterval) | |
~BasicEnergyHarvester () override | |
int64_t | AssignStreams (int64_t stream) |
Time | GetHarvestedPowerUpdateInterval () const |
void | SetHarvestedPowerUpdateInterval (Time updateInterval) |
Public Member Functions inherited from ns3::EnergyHarvester | |
EnergyHarvester () | |
~EnergyHarvester () override | |
Ptr< EnergySource > | GetEnergySource () const |
Ptr< Node > | GetNode () const |
double | GetPower () const |
void | SetEnergySource (Ptr< EnergySource > source) |
void | SetNode (Ptr< Node > node) |
Sets pointer to node containing this EnergyHarvester. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::EnergyHarvester | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Private Member Functions | |
void | CalculateHarvestedPower () |
Calculates harvested Power. More... | |
void | DoDispose () override |
Defined in ns3::Object. More... | |
double | DoGetPower () const override |
void | DoInitialize () override |
Defined in ns3::Object. More... | |
void | UpdateHarvestedPower () |
This function is called every m_energyHarvestingUpdateInterval in order to update the amount of power that will be provided by the harvester in the next interval. More... | |
Private Attributes | |
EventId | m_energyHarvestingUpdateEvent |
energy harvesting event More... | |
Ptr< RandomVariableStream > | m_harvestablePower |
Random variable for the harvestable power. More... | |
TracedValue< double > | m_harvestedPower |
current harvested power, in Watt More... | |
Time | m_harvestedPowerUpdateInterval |
harvestable energy update interval More... | |
Time | m_lastHarvestingUpdateTime |
last harvesting time More... | |
TracedValue< double > | m_totalEnergyHarvestedJ |
total harvested energy, in Joule More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
BasicEnergyHarvester increases remaining energy stored in an associated Energy Source.
The BasicEnergyHarvester implements a simple model in which the amount of power provided by the harvester varies over time according to a customizable generic random variable and time update intervals.
Unit of power is chosen as Watt since energy models typically calculate energy as (time in seconds * power in Watt).
Definition at line 48 of file basic-energy-harvester.h.
ns3::BasicEnergyHarvester::BasicEnergyHarvester | ( | ) |
Definition at line 70 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
ns3::BasicEnergyHarvester::BasicEnergyHarvester | ( | Time | updateInterval | ) |
updateInterval | Energy harvesting update interval. |
BasicEnergyHarvester constructor function that sets the interval between each update of the value of the power harvested by this energy harvester.
Definition at line 75 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
|
override |
Definition at line 81 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
int64_t ns3::BasicEnergyHarvester::AssignStreams | ( | int64_t | stream | ) |
stream | Random variable stream number. |
This function sets the stream number to be used by the random variable that determines the amount of power that can be harvested by this energy harvester.
Definition at line 87 of file basic-energy-harvester.cc.
References m_harvestablePower, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Calculates harvested Power.
Definition at line 169 of file basic-energy-harvester.cc.
References ns3::RandomVariableStream::GetValue(), m_harvestablePower, m_harvestedPower, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Time::S.
Referenced by UpdateHarvestedPower().
|
overrideprivatevirtual |
Defined in ns3::Object.
Reimplemented from ns3::Object.
Definition at line 163 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
|
overrideprivatevirtual |
Reimplemented from ns3::EnergyHarvester.
Definition at line 180 of file basic-energy-harvester.cc.
References m_harvestedPower, and NS_LOG_FUNCTION.
|
overrideprivatevirtual |
Defined in ns3::Object.
Reimplemented from ns3::Object.
Definition at line 153 of file basic-energy-harvester.cc.
References m_lastHarvestingUpdateTime, ns3::Simulator::Now(), NS_LOG_FUNCTION, and UpdateHarvestedPower().
Time ns3::BasicEnergyHarvester::GetHarvestedPowerUpdateInterval | ( | ) | const |
This function returns the interval between each update of the value of the power harvested by this energy harvester.
Definition at line 102 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Get the type ID.
Definition at line 38 of file basic-energy-harvester.cc.
References GetHarvestedPowerUpdateInterval(), m_harvestablePower, m_harvestedPower, m_totalEnergyHarvestedJ, ns3::MakePointerAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetHarvestedPowerUpdateInterval(), and ns3::TypeId::SetParent().
void ns3::BasicEnergyHarvester::SetHarvestedPowerUpdateInterval | ( | Time | updateInterval | ) |
updateInterval | Energy harvesting update interval. |
This function sets the interval between each update of the value of the power harvested by this energy harvester.
Definition at line 95 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
private |
This function is called every m_energyHarvestingUpdateInterval in order to update the amount of power that will be provided by the harvester in the next interval.
Definition at line 113 of file basic-energy-harvester.cc.
References CalculateHarvestedPower(), ns3::EventId::Cancel(), ns3::EnergyHarvester::GetEnergySource(), ns3::Time::GetNanoSeconds(), ns3::EnergyHarvester::GetNode(), ns3::Time::GetSeconds(), ns3::Simulator::IsFinished(), m_energyHarvestingUpdateEvent, m_harvestedPower, m_harvestedPowerUpdateInterval, m_lastHarvestingUpdateTime, m_totalEnergyHarvestedJ, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Time::S, and ns3::Simulator::Schedule().
Referenced by DoInitialize().
|
private |
energy harvesting event
Definition at line 126 of file basic-energy-harvester.h.
Referenced by UpdateHarvestedPower().
|
private |
Random variable for the harvestable power.
Definition at line 121 of file basic-energy-harvester.h.
Referenced by AssignStreams(), CalculateHarvestedPower(), and GetTypeId().
|
private |
current harvested power, in Watt
Definition at line 123 of file basic-energy-harvester.h.
Referenced by CalculateHarvestedPower(), DoGetPower(), GetTypeId(), and UpdateHarvestedPower().
|
private |
harvestable energy update interval
Definition at line 128 of file basic-energy-harvester.h.
Referenced by BasicEnergyHarvester(), GetHarvestedPowerUpdateInterval(), SetHarvestedPowerUpdateInterval(), and UpdateHarvestedPower().
|
private |
last harvesting time
Definition at line 127 of file basic-energy-harvester.h.
Referenced by DoInitialize(), and UpdateHarvestedPower().
|
private |
total harvested energy, in Joule
Definition at line 124 of file basic-energy-harvester.h.
Referenced by GetTypeId(), and UpdateHarvestedPower().