#![allow(clippy::print_stdout)]
use bitframe::prelude::*;
#[bitframe]
pub struct CcsdsPrimaryHeader {
pub version: u3,
pub is_telecommand: bool,
pub has_secondary: bool,
pub apid: u11,
pub seq_flags: u2,
pub seq_count: u14,
pub data_length: u16,
}
fn main() -> Result<(), bitframe::Error> {
let packet: &[u8] = &[
0x19, 0x23, 0xC0, 0x2A, 0x00, 0xFF, 0xDE, 0xAD, 0xBE, 0xEF, ];
let (header, payload) = CcsdsPrimaryHeaderRef::parse(packet)?;
println!("=== CCSDS Primary Header ===");
println!(" Version: {}", header.version());
println!(" Telecommand: {}", header.is_telecommand());
println!(" Secondary hdr: {}", header.has_secondary());
println!(" APID: {:#05x}", header.apid());
println!(" Seq flags: {}", header.seq_flags());
println!(" Seq count: {}", header.seq_count());
println!(" Data length: {}", header.data_length());
println!(" Payload bytes: {}", payload.len());
println!();
println!("Debug: {header:?}");
Ok(())
}