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::energy::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. | |
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::energy::EnergyHarvester | |
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 | |
void | CalculateHarvestedPower () |
Calculates harvested Power. | |
void | DoDispose () override |
Defined in ns3::Object. | |
double | DoGetPower () const override |
void | DoInitialize () override |
Defined in ns3::Object. | |
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. | |
Private Attributes | |
EventId | m_energyHarvestingUpdateEvent |
energy harvesting event | |
Ptr< RandomVariableStream > | m_harvestablePower |
Random variable for the harvestable power. | |
TracedValue< double > | m_harvestedPower |
current harvested power, in Watt | |
Time | m_harvestedPowerUpdateInterval |
harvestable energy update interval | |
Time | m_lastHarvestingUpdateTime |
last harvesting time | |
TracedValue< double > | m_totalEnergyHarvestedJ |
total harvested energy, in Joule | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
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. | |
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 39 of file basic-energy-harvester.h.
ns3::energy::BasicEnergyHarvester::BasicEnergyHarvester | ( | ) |
Definition at line 61 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
ns3::energy::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 66 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
|
override |
Definition at line 72 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
int64_t ns3::energy::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 78 of file basic-energy-harvester.cc.
References m_harvestablePower, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Calculates harvested Power.
Definition at line 160 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 154 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
|
overrideprivatevirtual |
Reimplemented from ns3::energy::EnergyHarvester.
Definition at line 171 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 144 of file basic-energy-harvester.cc.
References m_lastHarvestingUpdateTime, ns3::Simulator::Now(), NS_LOG_FUNCTION, and UpdateHarvestedPower().
Time ns3::energy::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 93 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Get the type ID.
Definition at line 28 of file basic-energy-harvester.cc.
References ns3::TypeId::AddDeprecatedName(), GetHarvestedPowerUpdateInterval(), m_harvestablePower, m_harvestedPower, m_totalEnergyHarvestedJ, ns3::MakePointerAccessor(), ns3::MakePointerChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetHarvestedPowerUpdateInterval(), and ns3::TypeId::SetParent().
void ns3::energy::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 86 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 104 of file basic-energy-harvester.cc.
References CalculateHarvestedPower(), ns3::EventId::Cancel(), ns3::energy::EnergyHarvester::GetEnergySource(), ns3::Time::GetNanoSeconds(), ns3::energy::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, ns3::Simulator::Schedule(), and UpdateHarvestedPower().
Referenced by DoInitialize(), and UpdateHarvestedPower().
|
private |
energy harvesting event
Definition at line 117 of file basic-energy-harvester.h.
Referenced by UpdateHarvestedPower().
|
private |
Random variable for the harvestable power.
Definition at line 112 of file basic-energy-harvester.h.
Referenced by AssignStreams(), CalculateHarvestedPower(), and GetTypeId().
|
private |
current harvested power, in Watt
Definition at line 114 of file basic-energy-harvester.h.
Referenced by CalculateHarvestedPower(), DoGetPower(), GetTypeId(), and UpdateHarvestedPower().
|
private |
harvestable energy update interval
Definition at line 119 of file basic-energy-harvester.h.
Referenced by BasicEnergyHarvester(), GetHarvestedPowerUpdateInterval(), SetHarvestedPowerUpdateInterval(), and UpdateHarvestedPower().
|
private |
last harvesting time
Definition at line 118 of file basic-energy-harvester.h.
Referenced by DoInitialize(), and UpdateHarvestedPower().
|
private |
total harvested energy, in Joule
Definition at line 115 of file basic-energy-harvester.h.
Referenced by GetTypeId(), and UpdateHarvestedPower().