26class CanBusSkin :
public yarp::os::PeriodicThread,
public yarp::dev::IAnalogSensor,
public yarp::dev::DeviceDriver
36 yarp::os::Bottle msg4C_Timer;
37 yarp::os::Bottle msg4C_CDCOffsetL;
38 yarp::os::Bottle msg4C_CDCOffsetH;
39 yarp::os::Bottle msg4C_TimeL;
40 yarp::os::Bottle msg4C_TimeH;
43 yarp::os::Bottle msg4E_Shift;
44 yarp::os::Bottle msg4E_Shift3_1;
45 yarp::os::Bottle msg4E_NoLoad;
46 yarp::os::Bottle msg4E_Param;
47 yarp::os::Bottle msg4E_EnaL;
48 yarp::os::Bottle msg4E_EnaH;
52 yarp::os::BufferedPort<yarp::sig::Vector> portSkinDiagnosticsOut;
63 bool _isDiagnosticPresent;
84 yarp::sig::VectorOf<iCub::skin::diagnostics::DetectedError>
errors;
90 virtual bool open(yarp::os::Searchable& config);
97 virtual int read(yarp::sig::Vector &
out);
112 bool diagnoseSkin(
void);
123 void checkParameterListLength(
const std::string &i_paramName, yarp::os::Bottle &i_paramList,
const int &i_length,
const yarp::os::Value &i_defaultValue);
128 bool sendCANMessage4C(
void);
129 bool checkFirmwareVersion(
void);
134 bool sendCANMessage4E(
void);
139 bool sendCANMessage(uint8_t destAddr, uint8_t command,
void *
data);
144 bool readOldConfiguration(yarp::os::Searchable& config);
149 bool readNewConfiguration(yarp::os::Searchable& config);
154 bool readNewSpecialConfiguration(yarp::os::Searchable& config);