Gazebo Common

API Reference

3.17.0
gz/common/Battery.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 #ifndef GZ_COMMON_BATTERY_HH_
18 #define GZ_COMMON_BATTERY_HH_
19 
20 #include <map>
21 #include <string>
22 #include <functional>
23 #include <memory>
24 #include <gz/common/Export.hh>
26 
27 namespace ignition
28 {
29  namespace common
30  {
31  // Forward declare private data class.
32  class BatteryPrivate;
33 
44  class IGNITION_COMMON_VISIBLE Battery
45  {
49 
51  public: explicit Battery();
52 
56  public: Battery(const std::string &_name, const double _voltage);
57 
60  public: Battery(const Battery &_battery);
61 
65  public: Battery &operator=(const Battery &_battery);
66 
68  public: virtual ~Battery();
69 
74  public: bool operator==(const Battery &_battery) const;
75 
80  public: bool operator!=(const Battery &_battery) const;
81 
83  public: virtual void Init();
84 
88  public: virtual void ResetVoltage();
89 
92  public: double InitVoltage() const;
93 
96  public: virtual void SetInitVoltage(const double _voltage);
97 
100  public: std::string Name() const;
101 
104  public: void SetName(const std::string &_name) const;
105 
108  public: uint32_t AddConsumer();
109 
114  public: bool RemoveConsumer(const uint32_t _consumerId);
115 
120  public: bool SetPowerLoad(const uint32_t _consumerId,
121  const double _powerLoad);
122 
127  public: bool PowerLoad(const uint32_t _consumerId,
128  double &_powerLoad) const;
129 
132  public: const PowerLoad_M &PowerLoads() const;
133 
136  public: double Voltage() const;
137 
145  public: void SetUpdateFunc(
146  std::function<double (Battery *)> _updateFunc);
147 
151  public: void ResetUpdateFunc();
152 
156  public: void Update();
157 
159  protected: void InitConsumers();
160 
164  private: double UpdateDefault(Battery *_battery);
165 
169  private: std::unique_ptr<BatteryPrivate> dataPtr;
171  };
172 
176  }
177 }
178 #endif
uint32_t AddConsumer()
Create a unique consumer.
virtual void Init()
Initialize.
Forward declarations for the common classes.
STL class.
STL class.
double InitVoltage() const
Return the initial voltage.
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
Microsoft Visual Studio does not automatically export the interface information for member variables ...
Definition: gz/common/SuppressWarning.hh:65
std::string Name() const
Return the name of the battery.
void SetName(const std::string &_name) const
Set the name of the battery.
void ResetUpdateFunc()
Reset function to update voltage, upon destruction of current callback function.
bool RemoveConsumer(const uint32_t _consumerId)
Remove a consumer.
A battery abstraction.
Definition: gz/common/Battery.hh:44
void InitConsumers()
Initialize the list of consumers.
std::shared_ptr< Battery > BatteryPtr
Definition: gz/common/Battery.hh:175
virtual ~Battery()
Destructor.
STL class.
virtual void SetInitVoltage(const double _voltage)
Set the initial voltage.
bool SetPowerLoad(const uint32_t _consumerId, const double _powerLoad)
Set consumer power load in watts.
void Update()
Update the battery. This will in turn trigger the function set using the SetUpdateFunc function.
bool PowerLoad(const uint32_t _consumerId, double &_powerLoad) const
Get consumer power load in watts.
virtual void ResetVoltage()
Reset the battery voltage to the initial value. The initial value might have been loaded from an sdf ...
bool operator==(const Battery &_battery) const
Equal to operator.
const PowerLoad_M & PowerLoads() const
Get list of power loads in watts.
double Voltage() const
Get the real voltage in volts.
bool operator!=(const Battery &_battery) const
Inequality operator.
std::map< uint32_t, double > PowerLoad_M
Typedef the powerload map.
Definition: gz/common/Battery.hh:48
Battery & operator=(const Battery &_battery)
Assignment operator.
void SetUpdateFunc(std::function< double(Battery *)> _updateFunc)
Setup function to update voltage.
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
Definition: gz/common/SuppressWarning.hh:68