#pragma once
#include "./message.hpp"
-
+struct bcm_msg
+{
+ struct bcm_msg_head msg_head;
+ union {
+ struct canfd_frame fd_frames[MAX_BCM_CAN_FRAMES];
+ struct can_frame frames[MAX_BCM_CAN_FRAMES];
+ };
+};
/// @class can_message_t
///
private:
uint32_t id_; ///< id_ - The ID of the message. */
bool rtr_flag_; ///< rtr_flag_ - Telling if the frame has RTR flag positionned. Then frame hasn't data field*/
- uint32_t flags_; ///< flags_ - flags of a CAN FD frame. Needed if we catch FD frames.*/
struct bcm_msg bcm_msg_;
public:
can_message_t();
- can_message_t(uint32_t maxdlen, uint32_t id, uint32_t length, message_format_t format, bool rtr_flag_, uint32_t flags, std::vector<uint8_t>& data, uint64_t timestamp);
+ can_message_t( uint32_t maxdlen,
+ uint32_t id,
+ uint32_t length,
+ bool rtr_flag_,
+ uint32_t flags,
+ std::vector<uint8_t>& data,
+ uint64_t timestamp);
uint32_t get_id() const;
+ void set_id(const canid_t id);
+ bool is_correct_to_send();
static std::shared_ptr<can_message_t> convert_from_frame(const canfd_frame& frame, size_t nbytes, uint64_t timestamp);
struct canfd_frame convert_to_canfd_frame();
- struct can_frame convert_to_can_frame();
-
- bool is_correct_to_send();
- bool is_set();
- struct bcm_msg get_bcm_msg();
+ struct std::vector<canfd_frame> convert_to_canfd_frame_vector();
+ struct bcm_msg& get_bcm_msg();
void set_bcm_msg(struct bcm_msg bcm_msg);
+ struct can_frame convert_to_can_frame();
+ bool is_set();
std::string get_debug_message();
- uint32_t get_flags();
};