35 #include <libphidget22/phidget22.h>
43 int32_t serial_number,
int hub_port,
bool is_hub_port_device,
44 std::function<
void(
const double[3],
double)> data_handler)
45 : data_handler_(data_handler)
47 PhidgetReturnCode ret = PhidgetAccelerometer_create(&
accel_handle_);
48 if (ret != EPHIDGET_OK)
50 throw Phidget22Error(
"Failed to create Accelerometer handle", ret);
54 reinterpret_cast<PhidgetHandle
>(
accel_handle_), serial_number, hub_port,
55 is_hub_port_device, 0);
57 ret = PhidgetAccelerometer_setOnAccelerationChangeHandler(
59 if (ret != EPHIDGET_OK)
61 throw Phidget22Error(
"Failed to set change handler for acceleration",
68 PhidgetHandle handle =
reinterpret_cast<PhidgetHandle
>(
accel_handle_);
73 double ×tamp)
const
76 PhidgetReturnCode ret =
78 if (ret != EPHIDGET_OK)
89 if (ret != EPHIDGET_OK)
99 PhidgetReturnCode ret =
100 PhidgetAccelerometer_setDataInterval(
accel_handle_, interval_ms);
101 if (ret != EPHIDGET_OK)
108 double timestamp)
const
114 void *ctx,
const double acceleration[3],
117 ((
Accelerometer *)ctx)->dataHandler(acceleration, timestamp);