#[non_exhaustive]pub enum SbfBlock {
Show 137 variants
MeasEpoch(MeasEpochBlock),
MeasExtra(MeasExtraBlock),
EndOfMeas(EndOfMeasBlock),
Meas3Ranges(Meas3RangesBlock),
Meas3Cn0HiRes(Meas3Cn0HiResBlock),
Meas3Doppler(Meas3DopplerBlock),
Meas3Pp(Meas3PpBlock),
Meas3Mp(Meas3MpBlock),
PvtGeodetic(PvtGeodeticBlock),
PvtCartesian(PvtCartesianBlock),
Dop(DopBlock),
PosCart(PosCartBlock),
PvtSatCartesian(PvtSatCartesianBlock),
PvtResidualsV2(PvtResidualsV2Block),
RaimStatisticsV2(RaimStatisticsV2Block),
BaseVectorCart(BaseVectorCartBlock),
BaseVectorGeod(BaseVectorGeodBlock),
PosCovCartesian(PosCovCartesianBlock),
PosCovGeodetic(PosCovGeodeticBlock),
VelCovCartesian(VelCovCartesianBlock),
VelCovGeodetic(VelCovGeodeticBlock),
GeoCorrections(GeoCorrectionsBlock),
BaseStation(BaseStationBlock),
DiffCorrIn(DiffCorrInBlock),
PvtSupport(PvtSupportBlock),
PvtSupportA(PvtSupportABlock),
PosLocal(PosLocalBlock),
PosProjected(PosProjectedBlock),
AttEuler(AttEulerBlock),
AttCovEuler(AttCovEulerBlock),
AuxAntPositions(AuxAntPositionsBlock),
EndOfAtt(EndOfAttBlock),
GpsNav(GpsNavBlock),
GpsAlm(GpsAlmBlock),
GpsIon(GpsIonBlock),
GpsUtc(GpsUtcBlock),
GpsCNav(GpsCNavBlock),
GalNav(GalNavBlock),
GalAlm(GalAlmBlock),
GalIon(GalIonBlock),
GalUtc(GalUtcBlock),
GalGstGps(GalGstGpsBlock),
GalAuthStatus(GalAuthStatusBlock),
GalSarRlm(GalSarRlmBlock),
GloNav(GloNavBlock),
GloAlm(GloAlmBlock),
GloTime(GloTimeBlock),
BdsIon(BdsIonBlock),
BdsNav(BdsNavBlock),
BdsAlm(BdsAlmBlock),
BdsUtc(BdsUtcBlock),
BdsCNav1(BdsCNav1Block),
BdsCNav2(BdsCNav2Block),
BdsCNav3(BdsCNav3Block),
QzsNav(QzsNavBlock),
QzsAlm(QzsAlmBlock),
GeoIonoDelay(GeoIonoDelayBlock),
GpsRawCa(GpsRawCaBlock),
GpsRawL2C(GpsRawL2CBlock),
GpsRawL5(GpsRawL5Block),
GalRawFnav(GalRawFnavBlock),
GalRawInav(GalRawInavBlock),
GalRawCnav(GalRawCnavBlock),
GeoRawL1(GeoRawL1Block),
GeoRawL5(GeoRawL5Block),
GloRawCa(GloRawCaBlock),
CmpRaw(CmpRawBlock),
BdsRawB1c(BdsRawB1cBlock),
BdsRawB2a(BdsRawB2aBlock),
BdsRawB2b(BdsRawB2bBlock),
IrnssRaw(IrnssRawBlock),
QzsRawL1Ca(QzsRawL1CaBlock),
QzsRawL2C(QzsRawL2CBlock),
QzsRawL5(QzsRawL5Block),
GeoMt00(GeoMt00Block),
GeoPrnMask(GeoPrnMaskBlock),
GeoFastCorr(GeoFastCorrBlock),
GeoFastCorrDegr(GeoFastCorrDegrBlock),
GeoDegrFactors(GeoDegrFactorsBlock),
GeoServiceLevel(GeoServiceLevelBlock),
GeoNav(GeoNavBlock),
GeoIntegrity(GeoIntegrityBlock),
GeoAlm(GeoAlmBlock),
GeoNetworkTime(GeoNetworkTimeBlock),
GeoIgpMask(GeoIgpMaskBlock),
GeoLongTermCorr(GeoLongTermCorrBlock),
GeoClockEphCovMatrix(GeoClockEphCovMatrixBlock),
ReceiverStatus(ReceiverStatusBlock),
TrackingStatus(ChannelStatusBlock),
ChannelStatus(ChannelStatusBlock),
SatVisibility(SatVisibilityBlock),
QualityInd(QualityIndBlock),
InputLink(InputLinkBlock),
OutputLink(OutputLinkBlock),
LBandTrackerStatus(LBandTrackerStatusBlock),
Commands(CommandsBlock),
Comment(CommentBlock),
ReceiverSetup(ReceiverSetupBlock),
BBSamples(BBSamplesBlock),
ASCIIIn(ASCIIInBlock),
NtripClientStatus(NtripClientStatusBlock),
NtripServerStatus(NtripServerStatusBlock),
RfStatus(RfStatusBlock),
RtcmDatum(RtcmDatumBlock),
LBandBeams(LBandBeamsBlock),
DynDnsStatus(DynDnsStatusBlock),
DiskStatus(DiskStatusBlock),
P2ppStatus(P2ppStatusBlock),
CosmosStatus(CosmosStatusBlock),
RxMessage(RxMessageBlock),
EncapsulatedOutput(EncapsulatedOutputBlock),
GisAction(GisActionBlock),
GisStatus(GisStatusBlock),
ReceiverTime(ReceiverTimeBlock),
PpsOffset(PpsOffsetBlock),
ExtEvent(ExtEventBlock),
ExtEventPvtCartesian(ExtEventPvtCartesianBlock),
ExtEventPvtGeodetic(ExtEventPvtGeodeticBlock),
ExtEventBaseVectGeod(ExtEventBaseVectGeodBlock),
ExtEventAttEuler(ExtEventAttEulerBlock),
EndOfPvt(EndOfPvtBlock),
IntPvCart(IntPvCartBlock),
IntPvGeod(IntPvGeodBlock),
IntPvaaGeod(IntPvaaGeodBlock),
IntAttEuler(IntAttEulerBlock),
IntPosCovCart(IntPosCovCartBlock),
IntVelCovCart(IntVelCovCartBlock),
IntPosCovGeod(IntPosCovGeodBlock),
IntVelCovGeod(IntVelCovGeodBlock),
IntAttCovEuler(IntAttCovEulerBlock),
IpStatus(IpStatusBlock),
IqCorr(IqCorrBlock),
ExtSensorMeas(ExtSensorMeasBlock),
ExtSensorStatus(ExtSensorStatusBlock),
ExtSensorSetup(ExtSensorSetupBlock),
KnownOpaque {
id: u16,
rev: u8,
data: Vec<u8>,
},
Unknown {
id: u16,
rev: u8,
data: Vec<u8>,
},
}Expand description
Parsed SBF block variants.
This enum is [non_exhaustive]: new block types may appear in any minor release.
Code outside this crate that matches on SbfBlock should include a wildcard
pattern (for example _ => or a catch-all) so it keeps compiling as variants are added.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
MeasEpoch(MeasEpochBlock)
MeasExtra(MeasExtraBlock)
EndOfMeas(EndOfMeasBlock)
Meas3Ranges(Meas3RangesBlock)
Meas3Cn0HiRes(Meas3Cn0HiResBlock)
Meas3Doppler(Meas3DopplerBlock)
Meas3Pp(Meas3PpBlock)
Meas3Mp(Meas3MpBlock)
PvtGeodetic(PvtGeodeticBlock)
PvtCartesian(PvtCartesianBlock)
Dop(DopBlock)
PosCart(PosCartBlock)
PvtSatCartesian(PvtSatCartesianBlock)
PvtResidualsV2(PvtResidualsV2Block)
RaimStatisticsV2(RaimStatisticsV2Block)
BaseVectorCart(BaseVectorCartBlock)
BaseVectorGeod(BaseVectorGeodBlock)
PosCovCartesian(PosCovCartesianBlock)
PosCovGeodetic(PosCovGeodeticBlock)
VelCovCartesian(VelCovCartesianBlock)
VelCovGeodetic(VelCovGeodeticBlock)
GeoCorrections(GeoCorrectionsBlock)
BaseStation(BaseStationBlock)
DiffCorrIn(DiffCorrInBlock)
PvtSupport(PvtSupportBlock)
PvtSupportA(PvtSupportABlock)
PosLocal(PosLocalBlock)
PosProjected(PosProjectedBlock)
AttEuler(AttEulerBlock)
AttCovEuler(AttCovEulerBlock)
AuxAntPositions(AuxAntPositionsBlock)
EndOfAtt(EndOfAttBlock)
GpsAlm(GpsAlmBlock)
GpsIon(GpsIonBlock)
GpsUtc(GpsUtcBlock)
GalAlm(GalAlmBlock)
GalIon(GalIonBlock)
GalUtc(GalUtcBlock)
GalGstGps(GalGstGpsBlock)
GalAuthStatus(GalAuthStatusBlock)
GalSarRlm(GalSarRlmBlock)
GloAlm(GloAlmBlock)
GloTime(GloTimeBlock)
BdsIon(BdsIonBlock)
BdsAlm(BdsAlmBlock)
BdsUtc(BdsUtcBlock)
QzsAlm(QzsAlmBlock)
GeoIonoDelay(GeoIonoDelayBlock)
GpsRawCa(GpsRawCaBlock)
GpsRawL2C(GpsRawL2CBlock)
GpsRawL5(GpsRawL5Block)
GeoRawL1(GeoRawL1Block)
GeoRawL5(GeoRawL5Block)
GloRawCa(GloRawCaBlock)
CmpRaw(CmpRawBlock)
BdsRawB1c(BdsRawB1cBlock)
BdsRawB2a(BdsRawB2aBlock)
BdsRawB2b(BdsRawB2bBlock)
IrnssRaw(IrnssRawBlock)
QzsRawL1Ca(QzsRawL1CaBlock)
QzsRawL2C(QzsRawL2CBlock)
QzsRawL5(QzsRawL5Block)
GeoMt00(GeoMt00Block)
GeoPrnMask(GeoPrnMaskBlock)
GeoFastCorr(GeoFastCorrBlock)
GeoFastCorrDegr(GeoFastCorrDegrBlock)
GeoDegrFactors(GeoDegrFactorsBlock)
GeoServiceLevel(GeoServiceLevelBlock)
GeoIntegrity(GeoIntegrityBlock)
GeoAlm(GeoAlmBlock)
GeoNetworkTime(GeoNetworkTimeBlock)
GeoIgpMask(GeoIgpMaskBlock)
GeoLongTermCorr(GeoLongTermCorrBlock)
GeoClockEphCovMatrix(GeoClockEphCovMatrixBlock)
ReceiverStatus(ReceiverStatusBlock)
TrackingStatus(ChannelStatusBlock)
ChannelStatus(ChannelStatusBlock)
SatVisibility(SatVisibilityBlock)
QualityInd(QualityIndBlock)
InputLink(InputLinkBlock)
OutputLink(OutputLinkBlock)
LBandTrackerStatus(LBandTrackerStatusBlock)
Commands(CommandsBlock)
Comment(CommentBlock)
ReceiverSetup(ReceiverSetupBlock)
BBSamples(BBSamplesBlock)
ASCIIIn(ASCIIInBlock)
NtripClientStatus(NtripClientStatusBlock)
NtripServerStatus(NtripServerStatusBlock)
RfStatus(RfStatusBlock)
RtcmDatum(RtcmDatumBlock)
LBandBeams(LBandBeamsBlock)
DynDnsStatus(DynDnsStatusBlock)
DiskStatus(DiskStatusBlock)
P2ppStatus(P2ppStatusBlock)
CosmosStatus(CosmosStatusBlock)
RxMessage(RxMessageBlock)
EncapsulatedOutput(EncapsulatedOutputBlock)
GisAction(GisActionBlock)
GisStatus(GisStatusBlock)
ReceiverTime(ReceiverTimeBlock)
PpsOffset(PpsOffsetBlock)
ExtEvent(ExtEventBlock)
ExtEventPvtCartesian(ExtEventPvtCartesianBlock)
ExtEventPvtGeodetic(ExtEventPvtGeodeticBlock)
ExtEventBaseVectGeod(ExtEventBaseVectGeodBlock)
ExtEventAttEuler(ExtEventAttEulerBlock)
EndOfPvt(EndOfPvtBlock)
IntPvCart(IntPvCartBlock)
IntPvGeod(IntPvGeodBlock)
IntPvaaGeod(IntPvaaGeodBlock)
IntAttEuler(IntAttEulerBlock)
IntPosCovCart(IntPosCovCartBlock)
IntVelCovCart(IntVelCovCartBlock)
IntPosCovGeod(IntPosCovGeodBlock)
IntVelCovGeod(IntVelCovGeodBlock)
IntAttCovEuler(IntAttCovEulerBlock)
IpStatus(IpStatusBlock)
IqCorr(IqCorrBlock)
ExtSensorMeas(ExtSensorMeasBlock)
ExtSensorStatus(ExtSensorStatusBlock)
ExtSensorSetup(ExtSensorSetupBlock)
KnownOpaque
Known block ID with intentionally opaque payload bytes.
Unknown
Unknown block (stores raw payload bytes).
Implementations§
Source§impl SbfBlock
impl SbfBlock
Sourcepub fn name(&self) -> &'static str
pub fn name(&self) -> &'static str
Get the block name
Examples found in repository?
examples/read_blocks.rs (line 19)
8fn main() -> Result<(), Box<dyn Error>> {
9 let path = env::args()
10 .nth(1)
11 .ok_or("usage: cargo run --example read_blocks -- <path-to-file.sbf>")?;
12
13 let file = File::open(&path)?;
14 let reader = SbfReader::new(file);
15 let mut counts = BTreeMap::<&'static str, u64>::new();
16
17 for block in reader {
18 let block = block?;
19 *counts.entry(block.name()).or_default() += 1;
20 }
21
22 for (name, count) in counts {
23 println!("{count:>8} {name}");
24 }
25
26 Ok(())
27}Sourcepub fn unsupported_payload(&self) -> Option<&[u8]>
pub fn unsupported_payload(&self) -> Option<&[u8]>
Get raw payload bytes for unsupported blocks.
Returns Some(&[u8]) for KnownOpaque and Unknown variants, otherwise None.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SbfBlock
impl RefUnwindSafe for SbfBlock
impl Send for SbfBlock
impl Sync for SbfBlock
impl Unpin for SbfBlock
impl UnsafeUnpin for SbfBlock
impl UnwindSafe for SbfBlock
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