Skip to content

Commit ca54f74

Browse files
Merge pull request #49 from nobleo/nobleo_socketcan_bridge
Add nobleo_socketcan_bridge
2 parents ae7e01b + 8acd447 commit ca54f74

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
diff --git a/package.xml b/package.xml
2+
index c0e3fe7..d8cccf0 100644
3+
--- a/package.xml
4+
+++ b/package.xml
5+
@@ -20,6 +20,8 @@ SPDX-License-Identifier: Apache-2.0
6+
<buildtool_depend>ament_cmake</buildtool_depend>
7+
8+
<build_depend>ament_cmake_ros</build_depend>
9+
+ <build_depend>linux-kernel-headers</build_depend>
10+
+ <build_export_depend>linux-kernel-headers</build_export_depend>
11+
12+
<depend>can_msgs</depend>
13+
<depend>diagnostic_msgs</depend>
14+
diff --git a/src/socketcan_bridge.cpp b/src/socketcan_bridge.cpp
15+
index 8a4dab0..1f40924 100644
16+
--- a/src/socketcan_bridge.cpp
17+
+++ b/src/socketcan_bridge.cpp
18+
@@ -6,6 +6,7 @@
19+
20+
#include <fmt/core.h>
21+
#include <fmt/ostream.h>
22+
+#include <fmt/ranges.h>
23+
#include <linux/can.h>
24+
#include <linux/can/error.h>
25+
#include <linux/can/raw.h>
26+
@@ -199,7 +200,7 @@ can_frame from_msg(const can_msgs::msg::Frame & msg)
27+
28+
can_frame frame;
29+
frame.can_id = id;
30+
- frame.len = msg.dlc;
31+
+ frame.can_dlc = msg.dlc; // Conda defaults to ancient 4.18 kernel headers
32+
std::ranges::copy(msg.data, frame.data);
33+
return frame;
34+
}
35+
@@ -211,7 +212,7 @@ can_msgs::msg::Frame to_msg(const can_frame & frame)
36+
msg.is_extended = (frame.can_id & CAN_EFF_FLAG) == CAN_EFF_FLAG;
37+
msg.is_error = (frame.can_id & CAN_ERR_FLAG) == CAN_ERR_FLAG;
38+
msg.id = frame.can_id & (msg.is_extended ? CAN_EFF_MASK : CAN_SFF_MASK);
39+
- msg.dlc = frame.len;
40+
+ msg.dlc = frame.can_dlc;
41+
std::copy_n(frame.data, sizeof(frame.data), msg.data.begin());
42+
return msg;
43+
}

vinca.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ packages_select_by_deps:
157157
- if: linux
158158
then:
159159
# Depends on socketcan
160+
- nobleo_socketcan_bridge
160161
- ros2_socketcan
161162
# Depends on v4l
162163
- usb_cam

0 commit comments

Comments
 (0)