pub struct SbfHeader {
pub crc: u16,
pub block_id: u16,
pub block_rev: u8,
pub length: u16,
pub tow_ms: u32,
pub wnc: u16,
}Expand description
SBF block header
Fields§
§crc: u16CRC-16 checksum
block_id: u16Block ID (13 bits)
block_rev: u8Block revision (3 bits)
length: u16Total block length (including header)
tow_ms: u32Time of week in milliseconds (0xFFFFFFFF if not available)
wnc: u16GPS week number (0xFFFF if not available)
Implementations§
Source§impl SbfHeader
impl SbfHeader
Sourcepub fn parse_from_block(block_data: &[u8]) -> SbfResult<Self>
pub fn parse_from_block(block_data: &[u8]) -> SbfResult<Self>
Sourcepub fn validate_crc(&self, block_data: &[u8]) -> SbfResult<()>
pub fn validate_crc(&self, block_data: &[u8]) -> SbfResult<()>
Sourcepub fn tow_seconds(&self) -> Option<f64>
pub fn tow_seconds(&self) -> Option<f64>
Get TOW in seconds (scaled from milliseconds)
Returns None if TOW is not available (0xFFFFFFFF)
Sourcepub fn tow_ms_raw(&self) -> Option<u32>
pub fn tow_ms_raw(&self) -> Option<u32>
Get raw TOW in milliseconds
Returns None if TOW is not available (0xFFFFFFFF)
Sourcepub fn week_number(&self) -> Option<u16>
pub fn week_number(&self) -> Option<u16>
Get week number
Returns None if WNc is not available (0xFFFF)
Sourcepub fn has_valid_time(&self) -> bool
pub fn has_valid_time(&self) -> bool
Check if time fields are valid
Sourcepub const fn body_offset() -> usize
pub const fn body_offset() -> usize
Get body offset (where block-specific data starts)
Most blocks have TOW (4 bytes) + WNc (2 bytes) after the 8-byte header, so body starts at offset 14 from block start, or offset 12 from CRC.
Trait Implementations§
impl Copy for SbfHeader
impl Eq for SbfHeader
impl StructuralPartialEq for SbfHeader
Auto Trait Implementations§
impl Freeze for SbfHeader
impl RefUnwindSafe for SbfHeader
impl Send for SbfHeader
impl Sync for SbfHeader
impl Unpin for SbfHeader
impl UnsafeUnpin for SbfHeader
impl UnwindSafe for SbfHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more