Loading [MathJax]/extensions/tex2jax.js
iCub-main
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
bmsBattery.h
Go to the documentation of this file.
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3// Copyright: (C) 2015 iCub Facility
4// Authors: Marco Randazzo <marco.randazzo@iit.it>
5// CopyPolicy: Released under the terms of the GNU GPL v2.0.
6
7#ifndef __BMSBATTERY_H__
8#define __BMSBATTERY_H__
9
10#include <mutex>
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>
17
18// This is to provide compatibility with both YARP 3.11 and 3.12
20
21using namespace yarp::os;
22using namespace yarp::dev;
23
24class BmsBattery : public PeriodicThread, public yarp::dev::IBattery, public DeviceDriver
25{
26protected:
27 std::mutex mtx;
28
29 unsigned short batteryId;
30 short status;
31 double timeStamp;
32 yarp::sig::Vector data;
37 std::string battery_info;
38 unsigned char backpack_status;
39
43
44 ResourceFinder rf;
45 PolyDriver driver;
46 ISerialDevice *pSerial;
47 char serial_buff[255];
48 std::string remoteName;
49 std::string localName;
50
51public:
52 BmsBattery(int period = 20) : PeriodicThread((double)period/1000.0)
53 {}
54
55
57 {
58 }
59
60 virtual bool open(yarp::os::Searchable& config);
61 virtual bool close();
62
67 virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryInfo (std::string &info);
68 virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryTemperature (double &temperature);
69
70 virtual bool threadInit();
71 virtual void threadRelease();
72 virtual void run();
73
74private:
75 virtual bool verify_checksum(int& raw_battery_current, int& raw_battery_voltage, int& raw_battery_charge, int& raw_battery_checksum);
76};
77
78
79#endif
#define YARP_DEV_RETURN_VALUE_TYPE_CH312
unsigned short batteryId
Definition bmsBattery.h:29
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryTemperature(double &temperature)
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryStatus(Battery_status &status)
double timeStamp
Definition bmsBattery.h:31
std::string battery_info
Definition bmsBattery.h:37
std::string localName
Definition bmsBattery.h:49
ResourceFinder rf
Definition bmsBattery.h:44
double battery_voltage
Definition bmsBattery.h:34
short status
Definition bmsBattery.h:30
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryCurrent(double &current)
bool verboseEnable
Definition bmsBattery.h:40
yarp::sig::Vector data
Definition bmsBattery.h:32
bool screenEnable
Definition bmsBattery.h:41
virtual void threadRelease()
virtual bool close()
char serial_buff[255]
Definition bmsBattery.h:47
virtual bool open(yarp::os::Searchable &config)
std::string remoteName
Definition bmsBattery.h:48
virtual bool threadInit()
double battery_current
Definition bmsBattery.h:35
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryInfo(std::string &info)
bool debugEnable
Definition bmsBattery.h:42
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryCharge(double &charge)
BmsBattery(int period=20)
Definition bmsBattery.h:52
unsigned char backpack_status
Definition bmsBattery.h:38
std::mutex mtx
Definition bmsBattery.h:27
ISerialDevice * pSerial
Definition bmsBattery.h:46
double battery_temperature
Definition bmsBattery.h:36
PolyDriver driver
Definition bmsBattery.h:45
virtual void run()
double battery_charge
Definition bmsBattery.h:33
virtual YARP_DEV_RETURN_VALUE_TYPE_CH312 getBatteryVoltage(double &voltage)