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