Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mobile_robotics
ADC
external
libuvc_ros
Commits
4b74f518
Commit
4b74f518
authored
Feb 10, 2016
by
Ken Tossell
Browse files
Merge pull request #27 from joshvillbrandt/feat/open-camera-index
Implement missing index select behavior
parents
b4486d97
4f30e9a0
Changes
1
Hide whitespace changes
Inline
Side-by-side
libuvc_camera/src/camera_driver.cpp
View file @
4b74f518
...
...
@@ -309,19 +309,38 @@ void CameraDriver::OpenCamera(UVCCameraConfig &new_config) {
ROS_INFO
(
"Opening camera with vendor=0x%x, product=0x%x, serial=
\"
%s
\"
, index=%d"
,
vendor_id
,
product_id
,
new_config
.
serial
.
c_str
(),
new_config
.
index
);
uvc_error_t
find_err
=
uvc_find_device
(
ctx_
,
&
dev_
,
uvc_device_t
**
devs
;
uvc_error_t
find_err
=
uvc_find_devices
(
ctx_
,
&
devs
,
vendor_id
,
product_id
,
new_config
.
serial
.
empty
()
?
NULL
:
new_config
.
serial
.
c_str
());
// TODO: index
if
(
find_err
!=
UVC_SUCCESS
)
{
uvc_perror
(
find_err
,
"uvc_find_device"
);
return
;
}
// select device by index
dev_
=
NULL
;
int
dev_idx
=
0
;
while
(
devs
[
dev_idx
]
!=
NULL
)
{
if
(
dev_idx
==
new_config
.
index
)
{
dev_
=
devs
[
dev_idx
];
}
else
{
uvc_unref_device
(
devs
[
dev_idx
]);
}
dev_idx
++
;
}
if
(
dev_
==
NULL
)
{
ROS_ERROR
(
"Unable to find device at index %d"
,
new_config
.
index
);
return
;
}
uvc_error_t
open_err
=
uvc_open
(
dev_
,
&
devh_
);
if
(
open_err
!=
UVC_SUCCESS
)
{
...
...
@@ -370,10 +389,10 @@ void CameraDriver::OpenCamera(UVCCameraConfig &new_config) {
return
;
}
uvc_error_t
stream_err
=
uvc_start_
iso_
streaming
(
devh_
,
&
ctrl
,
&
CameraDriver
::
ImageCallbackAdapter
,
this
);
uvc_error_t
stream_err
=
uvc_start_streaming
(
devh_
,
&
ctrl
,
&
CameraDriver
::
ImageCallbackAdapter
,
this
,
0
);
if
(
stream_err
!=
UVC_SUCCESS
)
{
uvc_perror
(
stream_err
,
"uvc_start_
iso_
streaming"
);
uvc_perror
(
stream_err
,
"uvc_start_streaming"
);
uvc_close
(
devh_
);
uvc_unref_device
(
dev_
);
return
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment