Fixposition SDK 0.0.0-heads/main-0-gde8559b
Collection of c++ libraries and apps for use with Fixposition products on Linux
Loading...
Searching...
No Matches
fpsdk::common::can::CanFrame Struct Reference

CAN frame abstraction for standard, extended and FD (and combinations thereof) CAN frames. More...

#include <can.hpp>

Inheritance diagram for fpsdk::common::can::CanFrame:
[legend]
Collaboration diagram for fpsdk::common::can::CanFrame:
[legend]

Public Member Functions

void SetData (const uint8_t *data, const std::size_t size)
 Set data (data_len_ and data_ fields)
 
bool RawToFrame (const uint8_t *data, const std::size_t size)
 Populate frame (this struct) from raw data.
 
void FrameToRaw ()
 Set raw CAN frame from frame (this struct)
 

Public Attributes

uint32_t can_id_ = 0
 CAN ID (masked by CAN_SFF_MASK resp CAN_EFF_MASK), i.e. flags removed)
 
bool is_eff_ = false
 true = extended frame (29 bits ID, CAN_EFF_FLAG), false = standard frame (11 bits ID)
 
bool is_fd_ = false
 true = CAN FD frame (up to CANFD_MAX_DLEN bytes), false = classical frame (up to CAN_MAX_DLEN bytes)
 
bool rtr_flag_ = false
 Remote transmission request flag (CAN_RTR_FLAG)
 
bool err_flag_ = false
 Error message frame flag (CAN_ERR_FLAG)
 
bool fd_brs_ = false
 Use bit rate switch for a FD frame (only valid if is_fd_ = true)
 
std::size_t data_len_ = false
 Number of bytes in payload data: up to CAN_MAX_DLEN for classical frames (is_fd_ = false), up to CANFD_MAX_DLEN for FD frames (is_fd_ = true)
 
const uint8_t * data_ = { can_frame_.data }
 Pointer to data (can_frame_.data resp. fd_frame_.data)
 
union { 
 
   struct can_frame   can_frame_ 
 Classical CAN frame (is_fd_ = false) More...
 
   struct canfd_frame   fd_frame_ = { 0, 0, 0, 0, 0, { 0 } } 
 FD CAN frame (is_fd_ = true) More...
 
};  
 Raw CAN frame.
 

Detailed Description

CAN frame abstraction for standard, extended and FD (and combinations thereof) CAN frames.

Definition at line 89 of file can.hpp.

Member Function Documentation

◆ SetData()

void fpsdk::common::can::CanFrame::SetData ( const uint8_t * data,
const std::size_t size )

Set data (data_len_ and data_ fields)

Parameters
[in]dataThe data
[in]sizeSize of the data

◆ RawToFrame()

bool fpsdk::common::can::CanFrame::RawToFrame ( const uint8_t * data,
const std::size_t size )

Populate frame (this struct) from raw data.

On success, all the fields of the struct are set from the data.

Parameters
[in]dataThe data (struct can_frame or struct canfd_frame)
[in]sizeSize of the data (CAN_MTU or CANFD_MTU)
Returns
true on success, false otherwise

◆ FrameToRaw()

void fpsdk::common::can::CanFrame::FrameToRaw ( )

Set raw CAN frame from frame (this struct)

Updates the raw CAN frame data (below) from the flags and data (above).

Member Data Documentation

◆ can_id_

uint32_t fpsdk::common::can::CanFrame::can_id_ = 0

CAN ID (masked by CAN_SFF_MASK resp CAN_EFF_MASK), i.e. flags removed)

Definition at line 92 of file can.hpp.

◆ is_eff_

bool fpsdk::common::can::CanFrame::is_eff_ = false

true = extended frame (29 bits ID, CAN_EFF_FLAG), false = standard frame (11 bits ID)

Definition at line 93 of file can.hpp.

◆ is_fd_

bool fpsdk::common::can::CanFrame::is_fd_ = false

true = CAN FD frame (up to CANFD_MAX_DLEN bytes), false = classical frame (up to CAN_MAX_DLEN bytes)

Definition at line 94 of file can.hpp.

◆ rtr_flag_

bool fpsdk::common::can::CanFrame::rtr_flag_ = false

Remote transmission request flag (CAN_RTR_FLAG)

Definition at line 95 of file can.hpp.

◆ err_flag_

bool fpsdk::common::can::CanFrame::err_flag_ = false

Error message frame flag (CAN_ERR_FLAG)

Definition at line 96 of file can.hpp.

◆ fd_brs_

bool fpsdk::common::can::CanFrame::fd_brs_ = false

Use bit rate switch for a FD frame (only valid if is_fd_ = true)

Definition at line 97 of file can.hpp.

◆ data_len_

std::size_t fpsdk::common::can::CanFrame::data_len_ = false

Number of bytes in payload data: up to CAN_MAX_DLEN for classical frames (is_fd_ = false), up to CANFD_MAX_DLEN for FD frames (is_fd_ = true)

Definition at line 98 of file can.hpp.

◆ data_

const uint8_t* fpsdk::common::can::CanFrame::data_ = { can_frame_.data }

Pointer to data (can_frame_.data resp. fd_frame_.data)

Definition at line 99 of file can.hpp.

◆ can_frame_

struct can_frame fpsdk::common::can::CanFrame::can_frame_

Classical CAN frame (is_fd_ = false)

Definition at line 134 of file can.hpp.

◆ fd_frame_

struct canfd_frame fpsdk::common::can::CanFrame::fd_frame_ = { 0, 0, 0, 0, 0, { 0 } }

FD CAN frame (is_fd_ = true)

Definition at line 135 of file can.hpp.


The documentation for this struct was generated from the following file: