Skip to main content

Crate sbf_tools

Crate sbf_tools 

Source
Expand description

§SBF - Septentrio Binary Format Parser

Parse Septentrio Binary Format (SBF) streams from GNSS receivers.

§Features

  • Read SBF blocks from any Read source
  • Decode measurement, PVT, nav, status, SBAS, INS, and event blocks
  • Decode Meas3 epochs with the stateful Meas3Decoder
  • Keep unknown blocks as raw payloads
  • Parse-only API

§Quick Start

use std::fs::File;
use sbf_tools::{SbfReader, SbfBlock};

let file = File::open("data.sbf").unwrap();
let reader = SbfReader::new(file);

for result in reader {
    match result {
        Ok(block) => match block {
            SbfBlock::PvtGeodetic(pvt) => {
                if let (Some(lat), Some(lon)) = (pvt.latitude_deg(), pvt.longitude_deg()) {
                    println!("Position: {:.6}°, {:.6}°", lat, lon);
                }
            }
            SbfBlock::Dop(dop) => {
                println!("PDOP: {:.2}, HDOP: {:.2}", dop.pdop(), dop.hdop());
            }
            _ => {}
        },
        Err(e) => eprintln!("Error: {}", e),
    }
}

See README.md and the examples under examples/ for block counting and Meas3 decoding.

Re-exports§

pub use blocks::block_ids;
pub use blocks::block_name;
pub use blocks::fallback_name;
pub use blocks::BaseVectorCartBlock;
pub use blocks::BaseVectorGeodBlock;
pub use blocks::BdsAlmBlock;
pub use blocks::BdsCNav2Block;
pub use blocks::BdsCNav3Block;
pub use blocks::BdsNavBlock;
pub use blocks::BdsRawB1cBlock;
pub use blocks::BdsRawB2aBlock;
pub use blocks::BdsUtcBlock;
pub use blocks::ChannelStatusBlock;
pub use blocks::CosmosStatusBlock;
pub use blocks::DiskData;
pub use blocks::DiskStatusBlock;
pub use blocks::DopBlock;
pub use blocks::DynDnsStatusBlock;
pub use blocks::EncapsulatedOutputBlock;
pub use blocks::EndOfPvtBlock;
pub use blocks::ExtEventAttEulerBlock;
pub use blocks::ExtEventBaseVectGeodBlock;
pub use blocks::GalNavBlock;
pub use blocks::GeoRawL5Block;
pub use blocks::GisActionBlock;
pub use blocks::GisDatabaseStatus;
pub use blocks::GisStatusBlock;
pub use blocks::GloNavBlock;
pub use blocks::GpsNavBlock;
pub use blocks::IrnssRawBlock;
pub use blocks::LBandBeamInfo;
pub use blocks::LBandBeamsBlock;
pub use blocks::Meas3BlockSet;
pub use blocks::Meas3Cn0HiResBlock;
pub use blocks::Meas3DecodedEpoch;
pub use blocks::Meas3Decoder;
pub use blocks::Meas3DopplerBlock;
pub use blocks::Meas3Measurement;
pub use blocks::Meas3MpBlock;
pub use blocks::Meas3PpBlock;
pub use blocks::Meas3RangesBlock;
pub use blocks::Meas3Satellite;
pub use blocks::MeasEpochBlock;
pub use blocks::NtripClientStatusBlock;
pub use blocks::NtripConnectionSlot;
pub use blocks::NtripServerStatusBlock;
pub use blocks::P2ppSession;
pub use blocks::P2ppStatusBlock;
pub use blocks::PosCartBlock;
pub use blocks::PosCovCartesianBlock;
pub use blocks::PosCovGeodeticBlock;
pub use blocks::PosLocalBlock;
pub use blocks::PosProjectedBlock;
pub use blocks::PvtCartesianBlock;
pub use blocks::PvtGeodeticBlock;
pub use blocks::PvtSupportABlock;
pub use blocks::QzsAlmBlock;
pub use blocks::QzsNavBlock;
pub use blocks::ReceiverStatusBlock;
pub use blocks::ReceiverTimeBlock;
pub use blocks::RfBandEntry;
pub use blocks::RfStatusBlock;
pub use blocks::RtcmDatumBlock;
pub use blocks::RxMessageBlock;
pub use blocks::SatVisibilityBlock;
pub use blocks::SatVisibilityInfo;
pub use blocks::SatelliteMeasurement;
pub use blocks::SbfBlock;
pub use blocks::VelCovCartesianBlock;
pub use blocks::VelCovGeodeticBlock;
pub use crc::calculate_block_crc;
pub use crc::crc16_ccitt;
pub use crc::validate_block;
pub use error::SbfError;
pub use error::SbfResult;
pub use header::SbfHeader;
pub use header::SBF_SYNC;
pub use reader::ReaderStats;
pub use reader::SbfReadExt;
pub use reader::SbfReader;
pub use types::Constellation;
pub use types::PvtError;
pub use types::PvtMode;
pub use types::SatelliteId;
pub use types::SignalType;

Modules§

blocks
SBF block definitions and parsing
crc
CRC-16-CCITT implementation for SBF block validation
error
SBF error types
header
SBF block header parsing
reader
SBF stream/file reader
types
Common SBF types for GNSS data representation

Constants§

SYNC_BYTES
SBF sync bytes
VERSION
Library version