- return can_message_t::convert_from_canfd_frame(cfd, nbytes);
-}
-
-/// @brief Create a RX_SETUP receive job using the BCM socket.
-///
-/// @return 0 if ok else -1
-int can_bus_dev_t::create_rx_filter(const can_signal_t& s)
-{
- uint32_t can_id = s.get_message().get_id();
-
- 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());
-
- 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;
-
- if(can_socket_ << bcm_msg)
- return 0;
- return -1;