File tree 1 file changed +11
-2
lines changed
1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change 30
30
#include < sstream>
31
31
#include < string>
32
32
#include < vector>
33
-
33
+ # include < filesystem >
34
34
#include " usb_cam/usb_cam_node.hpp"
35
35
#include " usb_cam/utils.hpp"
36
36
@@ -121,6 +121,15 @@ void UsbCamNode::service_capture(
121
121
}
122
122
}
123
123
124
+ std::string resolve_device_path (const std::string & path)
125
+ {
126
+ if (std::filesystem::is_symlink (path)) {
127
+ // For some reason read_symlink only returns videox
128
+ return " /dev/" + std::string (std::filesystem::read_symlink (path));
129
+ }
130
+ return path;
131
+ }
132
+
124
133
void UsbCamNode::init ()
125
134
{
126
135
while (m_parameters.frame_id == " " ) {
@@ -246,7 +255,7 @@ void UsbCamNode::assign_params(const std::vector<rclcpp::Parameter> & parameters
246
255
} else if (parameter.get_name () == " av_device_format" ) {
247
256
m_parameters.av_device_format = parameter.value_to_string ();
248
257
} else if (parameter.get_name () == " video_device" ) {
249
- m_parameters.device_name = parameter.value_to_string ();
258
+ m_parameters.device_name = resolve_device_path ( parameter.value_to_string () );
250
259
} else if (parameter.get_name () == " brightness" ) {
251
260
m_parameters.brightness = parameter.as_int ();
252
261
} else if (parameter.get_name () == " contrast" ) {
You can’t perform that action at this time.
0 commit comments