7 #ifndef __BCBBATTERY_H__
8 #define __BCBBATTERY_H__
11 #include <yarp/conf/version.h>
12 #include <yarp/os/PeriodicThread.h>
13 #include <yarp/dev/IBattery.h>
14 #include <yarp/dev/PolyDriver.h>
15 #include <yarp/dev/ISerialDevice.h>
16 #include <yarp/os/ResourceFinder.h>
17 #include <yarp/sig/Vector.h>
20 using namespace yarp::os;
27 static const int debugTextBufferSize = 10000;
28 char debugTextBuffer[debugTextBufferSize];
31 bool verboseEnable =
false;
32 bool screenEnable =
true;
36 static const int buff_len = 10000;
37 unsigned char tmp_buff[buff_len];
38 static const int packet_len =10;
39 unsigned char packet[packet_len];
42 ISerialDevice* iSerial =
nullptr;
44 double battery_charge = 0;
45 double battery_voltage = 0;
46 double battery_current = 0;
47 std::string battery_info =
"icub battery system v1.0";
48 int backpack_status = 0;
49 IBattery::Battery_status battery_status = IBattery::Battery_status::BATTERY_OK_STANDBY;
52 PeriodicThread((double)period),
60 std::string c_exp (
"\\0.......\\r\\n(?!.*\\0.......\\r\\n)");
64 void startTransmission();
65 void stopTransmission();
66 virtual bool threadInit()
override;
67 virtual void threadRelease()
override;
68 virtual void run()
override;
71 class BcbBattery:
public yarp::dev::IBattery,
public DeviceDriver
78 ISerialDevice *iSerial =
nullptr;
84 virtual bool open(yarp::os::Searchable& config);
87 virtual bool getBatteryVoltage (
double &voltage)
override;
88 virtual bool getBatteryCurrent (
double ¤t)
override;
89 virtual bool getBatteryCharge (
double &charge)
override;
90 virtual bool getBatteryStatus (Battery_status &status)
override;
91 virtual bool getBatteryInfo (std::string &info)
override;
92 virtual bool getBatteryTemperature (
double &temperature)
override;
batteryReaderThread(ISerialDevice *_iSerial, double period)