Skip to main content

agent_can/sim/
types.rs

1pub const CAN_FLAG_EXTENDED: u8 = 1 << 0;
2pub const CAN_FLAG_FD: u8 = 1 << 1;
3pub const CAN_FLAG_BRS: u8 = 1 << 2;
4pub const CAN_FLAG_ESI: u8 = 1 << 3;
5pub const CAN_FLAG_RTR: u8 = 1 << 4;
6pub const CAN_FLAG_RESERVED_MASK: u8 = 0b1110_0000;
7
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct SimCanFrame {
10    pub arb_id: u32,
11    pub len: u8,
12    pub flags: u8,
13    pub data: [u8; 64],
14}
15
16impl SimCanFrame {
17    pub fn payload(&self) -> &[u8] {
18        let len = usize::from(self.len.min(64));
19        &self.data[..len]
20    }
21}