7 #ifndef __CANBUSANALOGSENSOR_H__
8 #define __CANBUSANALOGSENSOR_H__
11 #include <yarp/os/PeriodicThread.h>
12 #include <yarp/dev/IAnalogSensor.h>
13 #include <yarp/dev/PolyDriver.h>
14 #include <yarp/dev/CanBusInterface.h>
15 #include <yarp/sig/Vector.h>
17 using namespace yarp::os;
42 class CanBusAnalogSensor :
public PeriodicThread,
public yarp::dev::IAnalogSensor,
public DeviceDriver
46 ANALOG_FORMAT_ERR = 0,
47 ANALOG_FORMAT_8_BIT = 8,
48 ANALOG_FORMAT_16_BIT = 16,
55 ANALOG_NOT_RESPONDING=-1,
89 virtual bool open(yarp::os::Searchable& config);
94 virtual int read(yarp::sig::Vector &
out);
95 virtual int getState(
int ch);
96 virtual int getChannels();
97 int calibrateSensor();
98 virtual int calibrateChannel(
int ch,
double v);
100 virtual int calibrateSensor(
const yarp::sig::Vector& v);
101 virtual int calibrateChannel(
int ch);
103 virtual bool threadInit();
104 virtual void threadRelease();
109 bool decode8 (
const unsigned char *msg,
int msg_id,
double *
data);
110 bool decode16(
const unsigned char *msg,
int msg_id,
double *
data);
111 bool sensor_start (yarp::os::Searchable& config);
113 bool readFullScaleAnalog(
int ch);
canbusanalogsensor : driver for CAN communication with IIT's analog sensor boards,...
ICanBufferFactory * pCanBufferFactory
yarp::sig::Vector scaleFactor
AnalogDataFormat dataFormat
CanBusAnalogSensor(int period=20)
unsigned short useCalibration
bool read(yarp::os::Searchable &cfgtotal, pc104Data &pc104data)