summaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/utils/socketcan-bcm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CAN-binder/low-can-binding/utils/socketcan-bcm.cpp')
-rw-r--r--CAN-binder/low-can-binding/utils/socketcan-bcm.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/CAN-binder/low-can-binding/utils/socketcan-bcm.cpp b/CAN-binder/low-can-binding/utils/socketcan-bcm.cpp
index 1009a421..cd84a851 100644
--- a/CAN-binder/low-can-binding/utils/socketcan-bcm.cpp
+++ b/CAN-binder/low-can-binding/utils/socketcan-bcm.cpp
@@ -21,6 +21,8 @@
#include <sys/ioctl.h>
#include <fcntl.h>
+#include "../binding/application.hpp"
+
namespace utils
{
/// @brief Connect the socket.
@@ -90,7 +92,10 @@ namespace utils
cm = ::can_message_t::convert_from_frame(msg.frames ,
nbytes-sizeof(struct bcm_msg_head),
timestamp);
- cm.set_sub_id((int)s.socket());
+ if(application_t::instance().get_diagnostic_manager().is_diagnostic_response(cm))
+ {cm.set_sub_id(msg.frames.data[2]);}
+ else
+ {cm.set_sub_id((int)s.socket());}
return s;
}