7 #ifndef __CANBUSFTSENSOR_H__
8 #define __CANBUSFTSENSOR_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/dev/MultipleAnalogSensorsInterfaces.h>
16 #include <yarp/sig/Vector.h>
18 using namespace yarp::os;
46 public yarp::dev::IAnalogSensor,
48 public yarp::dev::ISixAxisForceTorqueSensors
52 ANALOG_FORMAT_ERR = 0,
53 ANALOG_FORMAT_8_BIT = 8,
54 ANALOG_FORMAT_16_BIT = 16,
61 ANALOG_NOT_RESPONDING=-1,
74 mutable std::mutex
mtx;
97 virtual bool open(yarp::os::Searchable& config);
102 virtual int read(yarp::sig::Vector &
out);
103 virtual int getState(
int ch);
104 virtual int getChannels();
105 int calibrateSensor();
106 virtual int calibrateChannel(
int ch,
double v);
108 virtual int calibrateSensor(
const yarp::sig::Vector&
v);
109 virtual int calibrateChannel(
int ch);
111 virtual bool threadInit();
112 virtual void threadRelease();
116 virtual size_t getNrOfSixAxisForceTorqueSensors()
const override;
117 virtual yarp::dev::MAS_status getSixAxisForceTorqueSensorStatus(
size_t sens_index)
const override;
118 virtual bool getSixAxisForceTorqueSensorName(
size_t sens_index, std::string &name)
const override;
119 virtual bool getSixAxisForceTorqueSensorFrameName(
size_t sens_index, std::string &frameName)
const override;
120 virtual bool getSixAxisForceTorqueSensorMeasure(
size_t sens_index, yarp::sig::Vector&
out,
double& timestamp)
const override;
124 bool decode8 (
const unsigned char *msg,
int msg_id,
double *
data);
125 bool decode16(
const unsigned char *msg,
int msg_id,
double *
data);
126 bool sensor_start (yarp::os::Searchable& config);
128 bool readFullScaleAnalog(
int ch);
canbusftsensor : driver for CAN communication with IIT's analog sensor boards, including the MAIS and...
unsigned short useCalibration
ICanBufferFactory * pCanBufferFactory
AnalogDataFormat dataFormat
CanBusFtSensor(int period=20)
yarp::sig::Vector scaleFactor
bool read(yarp::os::Searchable &cfgtotal, pc104Data &pc104data)