Skip to main content

cid_frames

Function cid_frames 

Source
pub fn cid_frames(node: NodeId, alias: u16) -> [CanFrame; 4]
Expand description

Build the four CID frames (CID7..CID4) reserving alias for node.

Send them in order, then wait ALIAS_RESERVE_MS (200 ms) before sending RID and AMD. Node::start does this for you.

use rolcb::can::{cid_frames, CanHeader};
use rolcb::NodeId;

let f = cid_frames(NodeId::new(0x0501_0101_2200), 0x285);
assert_eq!(f[0].id, 0x1705_0285); // CID7: bits 47-36 = 0x050
assert_eq!(f[3].id, 0x1420_0285); // CID4: bits 11-0  = 0x200
assert!(f.iter().all(|f| f.data().is_empty()));
assert!(matches!(f[1].header(), CanHeader::Cid { seq: 6, node_id_bits: 0x101, alias: 0x285 }));