#![allow(clippy::print_stdout)]
use bitframe::prelude::*;
#[bitframe]
pub struct CanStdFrame {
pub id: u11,
pub rtr: bool,
pub ide: bool,
pub _reserved: u1,
pub dlc: u4,
pub _pad: u14,
}
fn main() -> Result<(), bitframe::Error> {
let bytes: &[u8] = &[0x24, 0x62, 0x00, 0x00];
let (frame, _) = CanStdFrameRef::parse(bytes)?;
println!("=== CAN Standard Frame ===");
println!(" ID: {:#05x} ({})", frame.id(), frame.id());
println!(" RTR: {}", frame.rtr());
println!(" IDE: {}", frame.ide());
println!(" DLC: {}", frame.dlc());
println!(
" Size: {} bits / {} bytes",
CanStdFrameRef::SIZE_BITS,
CanStdFrameRef::SIZE_BYTES
);
println!();
println!("Debug: {frame:?}");
Ok(())
}