27 releases (stable)
4.2.1 | Apr 3, 2025 |
---|---|
4.2.0 | Jan 3, 2025 |
4.1.6 | Aug 24, 2024 |
4.1.5 | Jul 28, 2024 |
0.1.7 | Dec 22, 2021 |
#397 in Parser implementations
229 downloads per month
Used in 4 crates
180KB
3.5K
SLoC
CGGTTS
Rust package to parse and generate CGGTTS data.
License
This library is part of the RTK-rs framework which is delivered under the Mozilla V2 Public license.
CGGTTS
CGGTTS is a file format designed to describe the state of a local clock with respect to spacecraft that belong
to GNSS constellation, ie., a GNSS timescale.
Exchanging CGGTTS files allows direct clock comparison between two remote sites, by comparing how the clock behaves
with respect to a specific spacecraft (ie., on board clock).
This is called the common view time transfer technique. Although it is more accurate to say CGGTTS is just the comparison method,
what you do from the final results is up to end application. Usually, the final end goal is to have the B site track the A site
and replicate the remote clock. It is for example, one option to generate a UTC replica.
CGGTTS is specified by the Bureau International des Poids & des Mesures (BIPM): CGGTTS 2E specifications
This library only supports revision 2E, and will reject other revisions.
Features
serdes
scheduler
: unlock CGGTS track scheduling
CGGTTS track scheduling
If you compiled the crate with the scheduler feature, you can access the
Scheduler
structure that helps you generate synchronous CGGTTS tracks.
Synchronous CGGTTS is convenient because it allows direct exchange of CGGTTS files and therefore, direct remote clocks comparison.
The Scheduler
structure works according to the BIPM definitions but we allow for a different
tracking duration. The default being 980s, you can use shorter tracking duration and faster
CGGTTS generation. You can only modify the tracking duration if you can do so on both remote clocks,
so they share the same production parameters at all times.
System Time delays
A built in API allows accurate system delay description as defined in CGGTTS.
Getting started
This library only supports revision 2E, and will reject other revisions.
Add "cggtts" to your Cargo.toml
cggtts = "4"
Use CGGTTS to parse local files
use cggtts::prelude::CGGTTS;
let cggtts = CGGTTS::from_file("data/CGGTTS/GZGTR560.258");
assert!(cggtts.is_ok());
let cggtts = cggtts.unwrap();
assert_eq!(cggtts.header.station, "LAB");
assert_eq!(cggtts.tracks.len(), 2097);
Dependencies
~6.5–9MB
~184K SLoC