dev_iio improvements
This commit is contained in:
parent
661af23316
commit
199e94886e
2 changed files with 23 additions and 6 deletions
|
|
@ -97,6 +97,7 @@ static int dev_iio_create(const char* path, dev_iio_t **const out_iio) {
|
|||
goto dev_iio_create_err;
|
||||
}
|
||||
|
||||
(*out_iio)->flags = 0x00000000U;
|
||||
(*out_iio)->anglvel_x_fd = NULL;
|
||||
(*out_iio)->anglvel_y_fd = NULL;
|
||||
(*out_iio)->anglvel_z_fd = NULL;
|
||||
|
|
@ -172,6 +173,7 @@ static int dev_iio_create(const char* path, dev_iio_t **const out_iio) {
|
|||
|
||||
char* const anglvel_scale = read_file((*out_iio)->path, scale_main_file);
|
||||
if (anglvel_scale != NULL) {
|
||||
(*out_iio)->flags |= DEV_IIO_HAS_ANGLVEL;
|
||||
(*out_iio)->anglvel_scale_x = (*out_iio)->anglvel_scale_y = (*out_iio)->anglvel_scale_z = strtod(anglvel_scale, NULL);
|
||||
free((void*)anglvel_scale);
|
||||
|
||||
|
|
@ -199,6 +201,7 @@ static int dev_iio_create(const char* path, dev_iio_t **const out_iio) {
|
|||
|
||||
char* const accel_scale = read_file((*out_iio)->path, scale_main_file);
|
||||
if (accel_scale != NULL) {
|
||||
(*out_iio)->flags |= DEV_IIO_HAS_ACCEL;
|
||||
(*out_iio)->accel_scale_x = (*out_iio)->accel_scale_y = (*out_iio)->accel_scale_z = strtod(accel_scale, NULL);
|
||||
free((void*)accel_scale);
|
||||
|
||||
|
|
@ -296,6 +299,7 @@ static int dev_iio_create(const char* path, dev_iio_t **const out_iio) {
|
|||
|
||||
free(tmp);
|
||||
|
||||
/*
|
||||
printf(
|
||||
"anglvel scale: x=%f, y=%f, z=%f | accel scale: x=%f, y=%f, z=%f\n",
|
||||
(*out_iio)->anglvel_scale_x,
|
||||
|
|
@ -305,9 +309,8 @@ static int dev_iio_create(const char* path, dev_iio_t **const out_iio) {
|
|||
(*out_iio)->accel_scale_y,
|
||||
(*out_iio)->accel_scale_z
|
||||
);
|
||||
*/
|
||||
|
||||
// give time to change the scale
|
||||
sleep(4);
|
||||
res = 0;
|
||||
|
||||
dev_iio_create_err:
|
||||
|
|
|
|||
22
dev_in.c
22
dev_in.c
|
|
@ -107,6 +107,15 @@ int iio_open_device(
|
|||
goto iio_open_device_err;
|
||||
}
|
||||
|
||||
const char *const dev_name = dev_iio_get_name(out_dev->iiodev);
|
||||
|
||||
printf(
|
||||
"Opened iio device:\n name: %s has accel: %s\n has anglvel: %s\n",
|
||||
(dev_name != NULL) ? dev_name : "NULL",
|
||||
dev_iio_has_accel(out_dev->iiodev) ? "yes" : "no",
|
||||
dev_iio_has_anglvel(out_dev->iiodev) ? "yes" : "no"
|
||||
);
|
||||
|
||||
iio_open_device_err:
|
||||
return res;
|
||||
}
|
||||
|
|
@ -123,15 +132,17 @@ int evdev_open_device(
|
|||
|
||||
out_dev->has_rumble_support = libevdev_has_event_type(out_dev->evdev, EV_FF) && libevdev_has_event_code(out_dev->evdev, EV_FF, FF_RUMBLE);
|
||||
|
||||
const char *const dev_name = libevdev_get_name(out_dev->evdev);
|
||||
|
||||
const int grab_res = libevdev_grab(out_dev->evdev, LIBEVDEV_GRAB);
|
||||
out_dev->grabbed = grab_res == 0;
|
||||
if (!out_dev->grabbed) {
|
||||
fprintf(stderr, "Unable to grab the device (%s): %d.\n", libevdev_get_name(out_dev->evdev), grab_res);
|
||||
fprintf(stderr, "Unable to grab the device (%s): %d.\n", dev_name != NULL ? "NULL" : dev_name, grab_res);
|
||||
}
|
||||
|
||||
if (out_dev->has_rumble_support) {
|
||||
printf("Opened device\n name: %s\n rumble: %s\n",
|
||||
libevdev_get_name(out_dev->evdev),
|
||||
printf("Opened ev device\n name: %s\n rumble: %s\n",
|
||||
dev_name != NULL ? "NULL" : dev_name,
|
||||
libevdev_has_event_code(out_dev->evdev, EV_FF, FF_RUMBLE) ? "true" : "false"
|
||||
);
|
||||
|
||||
|
|
@ -155,7 +166,7 @@ int evdev_open_device(
|
|||
}
|
||||
} else {
|
||||
printf("Opened device\n name: %s\n rumble: no force-feedback\n",
|
||||
libevdev_get_name(out_dev->evdev)
|
||||
dev_name != NULL ? "NULL" : dev_name
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -268,6 +279,9 @@ void* dev_in_thread_func(void *ptr) {
|
|||
fprintf(stderr, "Device (iio) %zu not found -- Attempt reconnection for device named %s\n", i, dev_in_data->input_dev_decl->dev[i]->filters.iio.name);
|
||||
|
||||
const int open_res = iio_open_device(&dev_in_data->input_dev_decl->dev[i]->filters.iio, &devices[i].dev.iio);
|
||||
if (open_res == 0) {
|
||||
devices[i].type = DEV_IN_TYPE_IIO;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue