Code Review
/
apps
/
agl-service-can-low-level.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Reworked reading CAN devices from BCM socket.
[apps/agl-service-can-low-level.git]
/
CAN-binder
/
low-can-binding
/
can
/
can-bus-dev.cpp
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
1aaefc9
..
955e617
100644
(file)
--- a/
CAN-binder/low-can-binding/can/can-bus-dev.cpp
+++ b/
CAN-binder/low-can-binding/can/can-bus-dev.cpp
@@
-27,8
+27,7
@@
#include "can-message.hpp"
#include "../low-can-binding.hpp"
#include "canutil/write.h"
#include "can-message.hpp"
#include "../low-can-binding.hpp"
#include "canutil/write.h"
-
-#define U64_DATA(p) (*(unsigned long long*)(p)->data)
+#include "../bitfield/bitfield.h"
/// @brief Class constructor
///
/// @brief Class constructor
///
@@
-47,6
+46,9
@@
int can_bus_dev_t::get_index() const
{
return index_;
}
{
return index_;
}
+utils::socketcan_t& can_bus_dev_t::get_socket()
+{
+ return can_socket_;
}
/// @brief Open the can socket and returning it
}
/// @brief Open the can socket and returning it
@@
-127,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();
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;
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;
if(can_socket_ << bcm_msg)
return 0;