34 public yarp::dev::IThreeAxisLinearAccelerometers,
35 public yarp::dev::IThreeAxisGyroscopes,
36 public yarp::dev::IThreeAxisMagnetometers
40 bool open(yarp::os::Searchable & config)
override;
41 bool close()
override;
44#if YARP_VERSION_COMPARE(>=, 4, 1, 0) || defined(YARP_NEXT)
45 yarp::dev::ReturnValue getNrOfThreeAxisLinearAccelerometers(std::size_t & num)
const override;
46 yarp::dev::MAS_status getThreeAxisLinearAccelerometerStatus(std::size_t sens_index)
const override;
47 yarp::dev::ReturnValue getThreeAxisLinearAccelerometerName(std::size_t sens_index, std::string & name)
const override;
48 yarp::dev::ReturnValue getThreeAxisLinearAccelerometerFrameName(std::size_t sens_index, std::string & frameName)
const override;
49 yarp::dev::ReturnValue getThreeAxisLinearAccelerometerMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
51 std::size_t getNrOfThreeAxisLinearAccelerometers()
const override;
52 yarp::dev::MAS_status getThreeAxisLinearAccelerometerStatus(std::size_t sens_index)
const override;
53 bool getThreeAxisLinearAccelerometerName(std::size_t sens_index, std::string & name)
const override;
54 bool getThreeAxisLinearAccelerometerFrameName(std::size_t sens_index, std::string & frameName)
const override;
55 bool getThreeAxisLinearAccelerometerMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
59#if YARP_VERSION_COMPARE(>=, 4, 1, 0) || defined(YARP_NEXT)
60 yarp::dev::ReturnValue getNrOfThreeAxisGyroscopes(std::size_t & num)
const override;
61 yarp::dev::MAS_status getThreeAxisGyroscopeStatus(std::size_t sens_index)
const override;
62 yarp::dev::ReturnValue getThreeAxisGyroscopeName(std::size_t sens_index, std::string & name)
const override;
63 yarp::dev::ReturnValue getThreeAxisGyroscopeFrameName(std::size_t sens_index, std::string & frameName)
const override;
64 yarp::dev::ReturnValue getThreeAxisGyroscopeMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
66 std::size_t getNrOfThreeAxisGyroscopes()
const override;
67 yarp::dev::MAS_status getThreeAxisGyroscopeStatus(std::size_t sens_index)
const override;
68 bool getThreeAxisGyroscopeName(std::size_t sens_index, std::string & name)
const override;
69 bool getThreeAxisGyroscopeFrameName(std::size_t sens_index, std::string & frameName)
const override;
70 bool getThreeAxisGyroscopeMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
74#if YARP_VERSION_COMPARE(>=, 4, 1, 0) || defined(YARP_NEXT)
75 yarp::dev::ReturnValue getNrOfThreeAxisMagnetometers(std::size_t & num)
const override;
76 yarp::dev::MAS_status getThreeAxisMagnetometerStatus(std::size_t sens_index)
const override;
77 yarp::dev::ReturnValue getThreeAxisMagnetometerName(std::size_t sens_index, std::string & name)
const override;
78 yarp::dev::ReturnValue getThreeAxisMagnetometerFrameName(std::size_t sens_index, std::string & frameName)
const override;
79 yarp::dev::ReturnValue getThreeAxisMagnetometerMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
81 std::size_t getNrOfThreeAxisMagnetometers()
const override;
82 yarp::dev::MAS_status getThreeAxisMagnetometerStatus(std::size_t sens_index)
const override;
83 bool getThreeAxisMagnetometerName(std::size_t sens_index, std::string & name)
const override;
84 bool getThreeAxisMagnetometerFrameName(std::size_t sens_index, std::string & frameName)
const override;
85 bool getThreeAxisMagnetometerMeasure(std::size_t sens_index, yarp::sig::Vector & out,
double & timestamp)
const override;
99 static int AttachHandler(CPhidgetHandle ENC,
void * userptr);
100 static int DetachHandler(CPhidgetHandle ENC,
void * userptr);
101 static int ErrorHandler(CPhidgetHandle ENC,
void * userptr,
int ErrorCode,
const char * Description);
102 static int SpatialDataHandler(CPhidgetSpatialHandle spatial,
void * userptr, CPhidgetSpatial_SpatialEventDataHandle * data,
int count);
103 static int display_properties(CPhidgetSpatialHandle phid);
106 CPhidgetSpatialHandle hSpatial0;
107 mutable std::mutex mtx;
109 double acceleration[3];
110 double angularRate[3];
111 double magneticField[3];
113 double timestamp {0.0};