28 public yarp::dev::IThreeAxisLinearAccelerometers,
29 public yarp::dev::IThreeAxisGyroscopes,
30 public yarp::dev::IThreeAxisMagnetometers
34 bool open(yarp::os::Searchable & config)
override;
35 bool close()
override;
38 size_t getNrOfThreeAxisLinearAccelerometers()
const;
39 yarp::dev::MAS_status getThreeAxisLinearAccelerometerStatus(
size_t sens_index)
const;
40 bool getThreeAxisLinearAccelerometerName(
size_t sens_index, std::string & name)
const;
41 bool getThreeAxisLinearAccelerometerFrameName(
size_t sens_index, std::string & frameName)
const;
42 bool getThreeAxisLinearAccelerometerMeasure(
size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const;
45 size_t getNrOfThreeAxisGyroscopes()
const;
46 yarp::dev::MAS_status getThreeAxisGyroscopeStatus(
size_t sens_index)
const;
47 bool getThreeAxisGyroscopeName(
size_t sens_index, std::string & name)
const;
48 bool getThreeAxisGyroscopeFrameName(
size_t sens_index, std::string & frameName)
const;
49 bool getThreeAxisGyroscopeMeasure(
size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const;
52 size_t getNrOfThreeAxisMagnetometers()
const;
53 yarp::dev::MAS_status getThreeAxisMagnetometerStatus(
size_t sens_index)
const;
54 bool getThreeAxisMagnetometerName(
size_t sens_index, std::string & name)
const;
55 bool getThreeAxisMagnetometerFrameName(
size_t sens_index, std::string & frameName)
const;
56 bool getThreeAxisMagnetometerMeasure(
size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const;
69 static int AttachHandler(CPhidgetHandle ENC,
void * userptr);
70 static int DetachHandler(CPhidgetHandle ENC,
void * userptr);
71 static int ErrorHandler(CPhidgetHandle ENC,
void * userptr,
int ErrorCode,
const char * Description);
72 static int SpatialDataHandler(CPhidgetSpatialHandle spatial,
void * userptr, CPhidgetSpatial_SpatialEventDataHandle * data,
int count);
73 static int display_properties(CPhidgetSpatialHandle phid);
76 CPhidgetSpatialHandle hSpatial0;
77 mutable std::mutex mtx;
79 double acceleration[3];
80 double angularRate[3];
81 double magneticField[3];
83 double timestamp {0.0};