Ignition Common

API Reference

3.5.0

A battery abstraction. More...

#include <Battery.hh>

Public Types

typedef std::map< uint32_t, double > PowerLoad_M
 Typedef the powerload map. More...
 

Public Member Functions

 Battery ()
 Constructor. More...
 
 Battery (const std::string &_name, const double _voltage)
 Constructor that sets the name and initial voltage. More...
 
 Battery (const Battery &_battery)
 Copy constructor. More...
 
virtual ~Battery ()
 Destructor. More...
 
uint32_t AddConsumer ()
 Create a unique consumer. More...
 
virtual void Init ()
 Initialize. More...
 
double InitVoltage () const
 Return the initial voltage. More...
 
std::string Name () const
 Return the name of the battery. More...
 
bool operator!= (const Battery &_battery) const
 Inequality operator. More...
 
Batteryoperator= (const Battery &_battery)
 Assignment operator. More...
 
bool operator== (const Battery &_battery) const
 Equal to operator. More...
 
bool PowerLoad (const uint32_t _consumerId, double &_powerLoad) const
 Get consumer power load in watts. More...
 
const PowerLoad_MPowerLoads () const
 Get list of power loads in watts. More...
 
bool RemoveConsumer (const uint32_t _consumerId)
 Remove a consumer. More...
 
void ResetUpdateFunc ()
 Reset function to update voltage, upon destruction of current callback function. More...
 
virtual void ResetVoltage ()
 Reset the battery voltage to the initial value. The initial value might have been loaded from an sdf element. More...
 
virtual void SetInitVoltage (const double _voltage)
 Set the initial voltage. More...
 
void SetName (const std::string &_name) const
 Set the name of the battery. More...
 
bool SetPowerLoad (const uint32_t _consumerId, const double _powerLoad)
 Set consumer power load in watts. More...
 
void SetUpdateFunc (std::function< double(Battery *)> _updateFunc)
 Setup function to update voltage. More...
 
void Update ()
 Update the battery. This will in turn trigger the function set using the SetUpdateFunc function. More...
 
double Voltage () const
 Get the real voltage in volts. More...
 

Protected Member Functions

void InitConsumers ()
 Initialize the list of consumers. More...
 

Detailed Description

A battery abstraction.

The default battery model is ideal: It just takes the initial voltage value as its constant voltage value. This behavior can be changed by specifying a custom update function.

The battery handles a list of consumers. It updates itself after each simulation iteration. The update function takes the power loads for each consumer and current voltage value as inputs and returns a new voltage value.

Member Typedef Documentation

◆ PowerLoad_M

typedef std::map<uint32_t, double> PowerLoad_M

Typedef the powerload map.

See also
SetUpdateFunc

Constructor & Destructor Documentation

◆ Battery() [1/3]

Battery ( )
explicit

Constructor.

◆ Battery() [2/3]

Battery ( const std::string _name,
const double  _voltage 
)

Constructor that sets the name and initial voltage.

Parameters
[in]_nameName of the battery
[in]_voltageInitial voltage of the battery

◆ Battery() [3/3]

Battery ( const Battery _battery)

Copy constructor.

Parameters
[in]_batteryBattery to copy.

◆ ~Battery()

virtual ~Battery ( )
virtual

Destructor.

Member Function Documentation

◆ AddConsumer()

uint32_t AddConsumer ( )

Create a unique consumer.

Returns
Unique consumer identifier.

◆ Init()

virtual void Init ( )
virtual

Initialize.

◆ InitConsumers()

void InitConsumers ( )
protected

Initialize the list of consumers.

◆ InitVoltage()

double InitVoltage ( ) const

Return the initial voltage.

Returns
The initial voltage.

◆ Name()

std::string Name ( ) const

Return the name of the battery.

Returns
The name of the battery.

◆ operator!=()

bool operator!= ( const Battery _battery) const

Inequality operator.

Parameters
[in]_batterythe battery to compare to
Returns
true if names or initial voltages are not the same, false otherwise

◆ operator=()

Battery& operator= ( const Battery _battery)

Assignment operator.

Parameters
[in]_batteryThe new battery
Returns
a reference to this instance

◆ operator==()

bool operator== ( const Battery _battery) const

Equal to operator.

Parameters
[in]_batterythe battery to compare to
Returns
true if names and initial voltages are the same, false otherwise

◆ PowerLoad()

bool PowerLoad ( const uint32_t  _consumerId,
double &  _powerLoad 
) const

Get consumer power load in watts.

Parameters
[in]_consumerIdUnique consumer identifier.
[out]_powerLoadPower load consumption in watts.
Returns
True if getting the power load consumption was successful.

◆ PowerLoads()

const PowerLoad_M& PowerLoads ( ) const

Get list of power loads in watts.

Returns
List of power loads in watts.

◆ RemoveConsumer()

bool RemoveConsumer ( const uint32_t  _consumerId)

Remove a consumer.

Parameters
[in]_consumerIdUnique consumer identifier.
Returns
True if the consumer was removed. False if the consumer id was not found.

◆ ResetUpdateFunc()

void ResetUpdateFunc ( )

Reset function to update voltage, upon destruction of current callback function.

See also
UpdateDefault

◆ ResetVoltage()

virtual void ResetVoltage ( )
virtual

Reset the battery voltage to the initial value. The initial value might have been loaded from an sdf element.

See also
Load

◆ SetInitVoltage()

virtual void SetInitVoltage ( const double  _voltage)
virtual

Set the initial voltage.

Parameters
[in]_voltageInitial voltage.

◆ SetName()

void SetName ( const std::string _name) const

Set the name of the battery.

Parameters
[in]_nameName of the battery.

◆ SetPowerLoad()

bool SetPowerLoad ( const uint32_t  _consumerId,
const double  _powerLoad 
)

Set consumer power load in watts.

Parameters
[in]_consumerIdUnique consumer identifier.
[in]_powerLoadPower load in watts.
Returns
True if setting the power load consumption was successful.

◆ SetUpdateFunc()

void SetUpdateFunc ( std::function< double(Battery *)>  _updateFunc)

Setup function to update voltage.

Parameters
[in]_updateFuncThe update function callback that is used to modify the battery's voltage. The parameter to the update function callback is a reference to an instance of Battery::UpdateData. The update function must return the new battery voltage as a double.
See also
UpdateData

◆ Update()

void Update ( )

Update the battery. This will in turn trigger the function set using the SetUpdateFunc function.

See also
SetUpdateFunc.

◆ Voltage()

double Voltage ( ) const

Get the real voltage in volts.

Returns
Voltage.

The documentation for this class was generated from the following file: