YARP
Yet Another Robot Platform
fakeBattery.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 #ifndef YARP_FAKEBATTERY_H
7 #define YARP_FAKEBATTERY_H
8 
10 #include <yarp/os/RpcServer.h>
11 
12 #include <yarp/dev/IBattery.h>
13 #include <yarp/dev/PolyDriver.h>
14 
15 #include <mutex>
16 
17 #include "FakeBatteryService.h"
18 
24 class FakeBattery :
26  public yarp::dev::IBattery,
28  public FakeBatteryService
29 {
30 protected:
31  std::mutex m_mutex;
32  double battery_charge {50.0};
33  double battery_voltage {30.0};
34  double battery_current {3.0};
35  double battery_temperature {20.0};
36  std::string battery_info {"Fake battery system v2.0"};
38 
39  bool debugEnable {false};
40 
42 public:
43  FakeBattery();
44  FakeBattery(const FakeBattery&) = delete;
45  FakeBattery(FakeBattery&&) = delete;
46  FakeBattery& operator=(const FakeBattery&) = delete;
48 
49  ~FakeBattery() override = default;
50 
51  // yarp::dev::DeviceDriver
52  bool open(yarp::os::Searchable& config) override;
53  bool close() override;
54 
55  // yarp::os::PeriodicThread
56  void run() override;
57 
58  // yarp::dev::IBattery
59  bool getBatteryVoltage(double& voltage) override;
60  bool getBatteryCurrent(double& current) override;
61  bool getBatteryCharge(double& charge) override;
62  bool getBatteryStatus(Battery_status& status) override;
63  bool getBatteryInfo(std::string& info) override;
64  bool getBatteryTemperature(double& temperature) override;
65 
66  // FakeBatteryService
67  void setBatteryVoltage(const double voltage) override;
68  void setBatteryCurrent(const double current) override;
69  void setBatteryCharge(const double charge) override;
70  void setBatteryInfo(const std::string& info) override;
71  void setBatteryTemperature(const double temperature) override;
72  double getBatteryVoltage() override;
73  double getBatteryCurrent() override;
74  double getBatteryCharge() override;
75  std::string getBatteryStatus() override;
76  std::string getBatteryInfo() override;
77  double getBatteryTemperature() override;
78 
79 private:
80  void updateStatus();
81 };
82 
83 #endif
fakeBattery: Documentation to be added
Definition: fakeBattery.h:29
FakeBattery(const FakeBattery &)=delete
void setBatteryTemperature(const double temperature) override
std::string getBatteryStatus() override
double getBatteryCharge() override
std::string getBatteryInfo() override
std::string battery_info
Definition: fakeBattery.h:36
double battery_temperature
Definition: fakeBattery.h:35
void setBatteryInfo(const std::string &info) override
yarp::os::RpcServer ctrl_port
Definition: fakeBattery.h:41
FakeBattery & operator=(FakeBattery &&)=delete
void setBatteryCurrent(const double current) override
bool debugEnable
Definition: fakeBattery.h:39
void run() override
Loop function.
Definition: fakeBattery.cpp:79
FakeBattery & operator=(const FakeBattery &)=delete
Battery_status battery_status
Definition: fakeBattery.h:37
bool open(yarp::os::Searchable &config) override
Open the DeviceDriver.
Definition: fakeBattery.cpp:35
void setBatteryVoltage(const double voltage) override
bool close() override
Close the DeviceDriver.
Definition: fakeBattery.cpp:68
double battery_charge
Definition: fakeBattery.h:32
double battery_voltage
Definition: fakeBattery.h:33
void setBatteryCharge(const double charge) override
double getBatteryVoltage() override
std::mutex m_mutex
Definition: fakeBattery.h:31
double battery_current
Definition: fakeBattery.h:34
double getBatteryCurrent() override
FakeBattery(FakeBattery &&)=delete
~FakeBattery() override=default
double getBatteryTemperature() override
Interface implemented by all device drivers.
Definition: DeviceDriver.h:35
A generic battery interface.
Definition: IBattery.h:30
An abstraction for a periodic thread.
A port that is specialized as an RPC server.
Definition: RpcServer.h:24
A base class for nested structures that can be searched.
Definition: Searchable.h:66