BasicEnergyHarvester increases remaining energy stored in an associated Energy Source. More...
#include "basic-energy-harvester.h"
Public Member Functions | |
BasicEnergyHarvester () | |
BasicEnergyHarvester (Time updateInterval) | |
virtual | ~BasicEnergyHarvester () |
int64_t | AssignStreams (int64_t stream) |
Time | GetHarvestedPowerUpdateInterval (void) const |
void | SetHarvestedPowerUpdateInterval (Time updateInterval) |
Public Member Functions inherited from ns3::EnergyHarvester | |
EnergyHarvester () | |
virtual | ~EnergyHarvester () |
Ptr< EnergySource > | GetEnergySource (void) const |
Ptr< Node > | GetNode (void) const |
double | GetPower (void) 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... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) 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) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) 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 erros. 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 (void) |
Static Public Member Functions inherited from ns3::EnergyHarvester | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | CalculateHarvestedPower (void) |
Calculates harvested Power. More... | |
void | DoDispose (void) |
Defined in ns3::Object. More... | |
virtual double | DoGetPower (void) const |
void | DoInitialize (void) |
Defined in ns3::Object. More... | |
void | UpdateHarvestedPower (void) |
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 |
Ptr< RandomVariableStream > | m_harvestablePower |
TracedValue< double > | m_harvestedPower |
Time | m_harvestedPowerUpdateInterval |
Time | m_lastHarvestingUpdateTime |
TracedValue< double > | m_totalEnergyHarvestedJ |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
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 (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid (void) |
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.
Introspection did not find any typical Config paths.
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).
Size of this type is 160 bytes (on a 64-bit architecture).
Definition at line 48 of file basic-energy-harvester.h.
ns3::BasicEnergyHarvester::BasicEnergyHarvester | ( | ) |
Definition at line 67 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 72 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 78 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 84 of file basic-energy-harvester.cc.
References m_harvestablePower, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Calculates harvested Power.
Definition at line 166 of file basic-energy-harvester.cc.
References ns3::RandomVariableStream::GetValue(), m_harvestablePower, m_harvestedPower, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by UpdateHarvestedPower().
|
privatevirtual |
Defined in ns3::Object.
Reimplemented from ns3::EnergyHarvester.
Definition at line 160 of file basic-energy-harvester.cc.
References NS_LOG_FUNCTION.
|
privatevirtual |
Reimplemented from ns3::EnergyHarvester.
Definition at line 177 of file basic-energy-harvester.cc.
References m_harvestedPower, and NS_LOG_FUNCTION.
|
privatevirtual |
Defined in ns3::Object.
Reimplemented from ns3::Object.
Definition at line 150 of file basic-energy-harvester.cc.
References m_lastHarvestingUpdateTime, ns3::Simulator::Now(), NS_LOG_FUNCTION, and UpdateHarvestedPower().
Time ns3::BasicEnergyHarvester::GetHarvestedPowerUpdateInterval | ( | void | ) | const |
This function returns the interval between each update of the value of the power harvested by this energy harvester.
Definition at line 99 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
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 92 of file basic-energy-harvester.cc.
References m_harvestedPowerUpdateInterval, and NS_LOG_FUNCTION.
Referenced by BasicEnergyHarvesterTestCase::DoRun(), and 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 110 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, and ns3::Simulator::Schedule().
Referenced by DoInitialize().
|
private |
Definition at line 123 of file basic-energy-harvester.h.
Referenced by UpdateHarvestedPower().
|
private |
Definition at line 118 of file basic-energy-harvester.h.
Referenced by AssignStreams(), CalculateHarvestedPower(), and GetTypeId().
|
private |
Definition at line 120 of file basic-energy-harvester.h.
Referenced by CalculateHarvestedPower(), DoGetPower(), GetTypeId(), and UpdateHarvestedPower().
|
private |
Definition at line 125 of file basic-energy-harvester.h.
Referenced by BasicEnergyHarvester(), GetHarvestedPowerUpdateInterval(), SetHarvestedPowerUpdateInterval(), and UpdateHarvestedPower().
|
private |
Definition at line 124 of file basic-energy-harvester.h.
Referenced by DoInitialize(), and UpdateHarvestedPower().
|
private |
Definition at line 121 of file basic-energy-harvester.h.
Referenced by GetTypeId(), and UpdateHarvestedPower().