{"id":18607013,"url":"https://github.com/rtk-rs/cggtts","last_synced_at":"2025-07-14T07:38:45.783Z","repository":{"id":41186633,"uuid":"439281303","full_name":"rtk-rs/cggtts","owner":"rtk-rs","description":"CGGTTS for remote clock comparison :satellite:  :artificial_satellite:","archived":false,"fork":false,"pushed_at":"2025-04-03T17:58:22.000Z","size":675,"stargazers_count":14,"open_issues_count":4,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-03T18:07:24.394Z","etag":null,"topics":["bipm","common-view","galileo","glonass","gnss","gps","gps-data","rust","time-transfer"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rtk-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-17T09:39:35.000Z","updated_at":"2025-04-03T17:42:49.000Z","dependencies_parsed_at":"2024-05-14T07:38:35.871Z","dependency_job_id":"a3ebf49a-7584-40e8-906a-6950282dba9c","html_url":"https://github.com/rtk-rs/cggtts","commit_stats":{"total_commits":216,"total_committers":2,"mean_commits":108.0,"dds":0.2592592592592593,"last_synced_commit":"ddb207fc728eb9987a493da0b84d003efbcb8930"},"previous_names":["rtk-rs/cggtts","gwbres/cggtts"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtk-rs%2Fcggtts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtk-rs%2Fcggtts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtk-rs%2Fcggtts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtk-rs%2Fcggtts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtk-rs","download_url":"https://codeload.github.com/rtk-rs/cggtts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248290041,"owners_count":21078923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bipm","common-view","galileo","glonass","gnss","gps","gps-data","rust","time-transfer"],"created_at":"2024-11-07T02:27:59.065Z","updated_at":"2025-07-14T07:38:45.771Z","avatar_url":"https://github.com/rtk-rs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"CGGTTS \n======\n\nRust package to parse and generate CGGTTS data.\n\n[![Rust](https://github.com/rtk-rs/cggtts/actions/workflows/rust.yml/badge.svg)](https://github.com/rtk-rs/cggtts/actions/workflows/rust.yml)\n[![Rust](https://github.com/rtk-rs/cggtts/actions/workflows/daily.yml/badge.svg)](https://github.com/rtk-rs/cggtts/actions/workflows/daily.yml)\n[![crates.io](https://docs.rs/cggtts/badge.svg)](https://docs.rs/cggtts/)\n[![crates.io](https://img.shields.io/crates/d/cggtts.svg)](https://crates.io/crates/cggtts)\n\n[![MRSV](https://img.shields.io/badge/MSRV-1.82.0-orange?style=for-the-badge)](https://github.com/rust-lang/rust/releases/tag/1.82.0)\n[![License](https://img.shields.io/badge/license-MPL_2.0-orange?style=for-the-badge\u0026logo=mozilla)](https://github.com/rtk-rs/sp3/blob/main/LICENSE)\n\n## License\n\nThis library is part of the [RTK-rs framework](https://github.com/rtk-rs) which\nis delivered under the [Mozilla V2 Public](https://www.mozilla.org/en-US/MPL/2.0) license.\n\n## CGGTTS\n\nCGGTTS is a file format designed to describe the state of a local clock with respect to spacecraft that belong\nto GNSS constellation, ie., a GNSS timescale.  \nExchanging CGGTTS files allows direct clock comparison between two remote sites, by comparing how the clock behaves\nwith respect to a specific spacecraft (ie., on board clock).  \nThis is called the _common view_ time transfer technique. Although it is more accurate to say CGGTTS is just the comparison method,\nwhat 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\nand replicate the remote clock. It is for example, one option to generate a UTC replica.\n\nCGGTTS is specified by the Bureau International des Poids \u0026 des Mesures (BIPM):\n[CGGTTS 2E specifications](https://www.bipm.org/documents/20126/52718503/G1-2015.pdf/f49995a3-970b-a6a5-9124-cc0568f85450)\n\nThis library only supports revision **2E**, and will _reject_ other revisions.\n\n## Features\n\n- `serdes`\n- `scheduler`: unlock CGGTS track scheduling\n\n## CGGTTS track scheduling\n\nIf you compiled the crate with the _scheduler_ feature, you can access the\n`Scheduler` structure that helps you generate synchronous CGGTTS tracks.\n\nSynchronous CGGTTS is convenient because it allows direct exchange of CGGTTS files\nand therefore, direct remote clocks comparison.\n\nThe `Scheduler` structure works according to the BIPM definitions but we allow for a different\ntracking duration. The default being 980s, you can use shorter tracking duration and faster\nCGGTTS generation. You can only modify the tracking duration if you can do so on both remote clocks,\nso they share the same production parameters at all times.\n\n## System Time delays\n\nA built in API allows accurate system delay description as defined in CGGTTS.\n\n## Getting started\n\nThis library only supports revision **2E**, and will _reject_ other revisions.\n\nAdd \"cggtts\" to your Cargo.toml\n\n```toml\ncggtts = \"4\"\n```\n\nUse CGGTTS to parse local files\n\n```rust\nuse cggtts::prelude::CGGTTS;\n\nlet cggtts = CGGTTS::from_file(\"data/CGGTTS/GZGTR560.258\");\nassert!(cggtts.is_ok());\n\nlet cggtts = cggtts.unwrap();\nassert_eq!(cggtts.header.station, \"LAB\");\nassert_eq!(cggtts.tracks.len(), 2097);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtk-rs%2Fcggtts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtk-rs%2Fcggtts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtk-rs%2Fcggtts/lists"}