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