35 #include <libphidget22/phidget22.h>
43 bool is_hub_port_device,
int channel,
44 std::function<
void(
int,
double)> input_handler)
45 : channel_(channel), input_handler_(input_handler)
47 PhidgetReturnCode ret = PhidgetCurrentInput_create(&
ci_handle_);
48 if (ret != EPHIDGET_OK)
51 "Failed to create CurrentInput handle for channel " +
52 std::to_string(channel),
57 serial_number, hub_port, is_hub_port_device,
60 ret = PhidgetCurrentInput_setOnCurrentChangeHandler(
62 if (ret != EPHIDGET_OK)
65 "Failed to set change handler for CurrentInput channel " +
66 std::to_string(channel),
73 PhidgetHandle handle =
reinterpret_cast<PhidgetHandle
>(
ci_handle_);
80 PhidgetReturnCode ret =
81 PhidgetCurrentInput_getCurrent(
ci_handle_, &sensor_value);
82 if (ret != EPHIDGET_OK)
92 PhidgetReturnCode ret =
93 PhidgetCurrentInput_setDataInterval(
ci_handle_, data_interval_ms);
94 if (ret != EPHIDGET_OK)
106 PhidgetCurrentInputHandle ,
void *ctx,
double sensorValue)
108 ((
CurrentInput *)ctx)->currentChangeHandler(sensorValue);