summaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/can/can-bus-dev.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CAN-binder/low-can-binding/can/can-bus-dev.cpp')
-rw-r--r--CAN-binder/low-can-binding/can/can-bus-dev.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/CAN-binder/low-can-binding/can/can-bus-dev.cpp b/CAN-binder/low-can-binding/can/can-bus-dev.cpp
index df0c0d6f..955e617d 100644
--- a/CAN-binder/low-can-binding/can/can-bus-dev.cpp
+++ b/CAN-binder/low-can-binding/can/can-bus-dev.cpp
@@ -27,6 +27,7 @@
#include "can-message.hpp"
#include "../low-can-binding.hpp"
#include "canutil/write.h"
+#include "../bitfield/bitfield.h"
/// @brief Class constructor
///
@@ -45,6 +46,9 @@ int can_bus_dev_t::get_index() const
{
return index_;
}
+utils::socketcan_t& can_bus_dev_t::get_socket()
+{
+ return can_socket_;
}
/// @brief Open the can socket and returning it
@@ -125,13 +129,12 @@ int can_bus_dev_t::create_rx_filter(const can_signal_t& s)
struct utils::canfd_bcm_msg bcm_msg;
uint8_t bit_size = s.get_bit_size();
- float val = (float)exp2(bit_size);
- uint64_t filter = eightbyte_encode_float(val, s.get_bit_position(), bit_size, s.get_factor(), s.get_offset());
+ float val = (float)exp2(bit_size)-1;
bcm_msg.msg_head.opcode = RX_SETUP;
bcm_msg.msg_head.can_id = can_id;
bcm_msg.msg_head.nframes = 1;
- U64_DATA(&bcm_msg.frames[0]) = filter;
+ bitfield_encode_float(val, s.get_bit_position(), bit_size, s.get_factor(), s.get_offset(), bcm_msg.frames[0].data, CANFD_MAX_DLEN);
if(can_socket_ << bcm_msg)
return 0;