From 30b3cfd1d20fef41f3a1077d3be3bcd3bb383d77 Mon Sep 17 00:00:00 2001 From: Ken Tossell <ken@tossell.net> Date: Sun, 12 Jan 2014 06:34:18 -0500 Subject: [PATCH] Added more informative error messages in the case of uvc_open() failure --- libuvc_camera/src/camera_driver.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/libuvc_camera/src/camera_driver.cpp b/libuvc_camera/src/camera_driver.cpp index 7fee454..04bffed 100644 --- a/libuvc_camera/src/camera_driver.cpp +++ b/libuvc_camera/src/camera_driver.cpp @@ -271,7 +271,29 @@ void CameraDriver::OpenCamera(UVCCameraConfig &new_config) { uvc_error_t open_err = uvc_open(dev_, &devh_); if (open_err != UVC_SUCCESS) { - uvc_perror(open_err, "uvc_open"); + switch (open_err) { + case UVC_ERROR_ACCESS: +#ifdef __linux__ + ROS_ERROR("Permission denied opening /dev/bus/usb/%03d/%03d", + uvc_get_bus_number(dev_), uvc_get_device_address(dev_)); +#else + ROS_ERROR("Permission denied opening device %d on bus %d", + uvc_get_device_address(dev_), uvc_get_bus_number(dev_)); +#endif + break; + default: +#ifdef __linux__ + ROS_ERROR("Can't open /dev/bus/usb/%03d/%03d: %s (%d)", + uvc_get_bus_number(dev_), uvc_get_device_address(dev_), + uvc_strerror(open_err), open_err); +#else + ROS_ERROR("Can't open device %d on bus %d: %s (%d)", + uvc_get_device_address(dev_), uvc_get_bus_number(dev_), + uvc_strerror(open_err), open_err); +#endif + break; + } + uvc_unref_device(dev_); return; } -- GitLab