Rust package to manipulate CGGTTS (BIPM) data files
CGGTTS is specified by BIPM, Paris (Bureau International des Poids & des Mesures) and is dedicated to GNSS Time Transfer, Common View, Two Way Satellites time transfers.
Supported version: "2E". Older versions are not managed by this lib, mainly because it knows how to manipulate cable delays.
For compelling examples, refer to the integrated test methods.
Basic usage does not provide enough information for dual frequency CGGTTS, but gets you started quickly
rust
let mut cggtts = Cggtts::new();
cggtts.set_lab_agency("MyLab");
cggtts.set_nb_channels(10);
// Antenna phase center coordinates [m] IRTF referencing
cggtts.set_antenna_coordinates(
(+4027881.79.0,+306998.67,+4919499.36)
);
// basic usage, only total system delay is known
cggtts.set_total_delay(300E-9);
Building from a file
```rust let cggtts = Cggtts::fromfile("data/standard/GSOP0159.571"); prinln!("{:?}", cggtts); prinln!("{:?}", cggtts.gettrack(3)); asserteq!(cggtts.hasionosphericparameters(), false); // basic println!("{:?}", cggtts.getantennacoordinates()); println!("{}", cggtts.gettotaldelay().unwrap()); // always asserteq!(cggtts.getsystemdelay().iserr(), true); // basic usage asserteq!(cggtts.getcabledelay().is_err(), true); // basic usage
let cggtts = Cggtts::from_file("data/ionospheric/GSOP0159.571");
prinln!("{}", cggtts);
prinln!("{:?}", cggtts.get_track(5));
assert_eq!(cggtts.has_ionospheric_parameters(), true); // advanced
println!("{}", cggtts.get_total_delay().unwrap()); // always
assert_eq!(cggtts.get_system_delay().is_err(), false); // advanced usage
assert_eq!(cggtts.get_cable_delay().is_err(), false); // advanced usage
println!("{}", cggtts.get_cable_delay().unwrap());
```
CGGTTS Tracks manipulation ```rust let mut cggtts = [...] let mut track = track::Cggttrack::new(); track.setelevation(180.0); track.setazimuth(180.0); track.setduration(track::BIPMSPECIFIEDTRACKINGDURATION); cggtts.add_track(track);
let mut track = cggtts.pop(); // grab 1 please
assert_eq!(track.get_satellite_id(), 0xFF); // Multi satellite PRN#
track.set_satellite_id(0x01); // Single SatVehicule PRN#
```