1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//! Shared GNSS constants.
//!
//! These are semantic constants used across multiple GNSS modules. A parity
//! target may still keep a local alias or comment when the operation order of a
//! formula matters, but the source value lives here so modules do not drift.
pub use crate;
pub use crate;
pub use crateAZIMUTH_ZENITH_EPS;
pub use crate;
pub use crate;
/// Seconds in half a GNSS week, the rollover fold threshold.
pub const HALF_WEEK_S: f64 = SECONDS_PER_WEEK / 2.0;
/// Speed of light in vacuum (m/s), IS-GPS-200. Re-exported from the canonical
/// core home so the value is defined once for the whole workspace.
pub const C_M_S: f64 = crateSPEED_OF_LIGHT_M_S;
/// GPS L1 carrier frequency (Hz). Galileo E1 shares this frequency.
pub const F_L1_HZ: f64 = 1_575.42e6;
/// GPS L2 carrier frequency (Hz).
pub const F_L2_HZ: f64 = 1_227.60e6;
/// Galileo E1 carrier frequency (Hz). GPS L1 shares this frequency.
pub const F_E1_HZ: f64 = F_L1_HZ;
/// Galileo E5a carrier frequency (Hz).
pub const F_E5A_HZ: f64 = 1_176.45e6;
/// BeiDou B1I carrier frequency (Hz).
pub const F_B1I_HZ: f64 = 1_561.098e6;
/// BeiDou B3I carrier frequency (Hz).
pub const F_B3I_HZ: f64 = 1_268.52e6;
/// Seconds from GPS epoch (1980-01-06 00:00) to J2000 (2000-01-01 12:00).
pub const GPS_EPOCH_TO_J2000_S: f64 = 630_763_200.0;
/// GPS Time minus BeiDou Time (seconds): BDT = GPST - 14 s.
pub const GPST_MINUS_BDT_S: f64 = 14.0;
/// GPS/Galileo/QZSS and BeiDou system-time-minus-TAI offsets. Canonically
/// defined in the always-on astro time-constants module (the always-present
/// `astro::time` scale layer needs them); re-exported here for GNSS consumers.
pub use crate;
/// Seconds from the GPS epoch to the BeiDou epoch (2006-01-01).
pub const BDS_EPOCH_MINUS_GPS_EPOCH_S: f64 = 1356.0 * SECONDS_PER_WEEK;
/// Fixed transmit-time iterations for SPP residuals.
///
/// The SPP solver is pinned to two iterations by the SPP trace fixtures. The
/// observable predictor deliberately uses a separate three-iteration policy
/// because it mirrors Sidereon `Observables.predict` and its own SP3 oracle.
pub const SPP_TRANSMIT_TIME_ITERATIONS: usize = 2;
/// Fixed transmit-time iterations for observable prediction.
///
/// Kept distinct from [`SPP_TRANSMIT_TIME_ITERATIONS`] after oracle
/// reconciliation: the public observable predictor performs three light-time
/// refinement iterations plus the final transmit-epoch evaluation.
pub const OBSERVABLE_TRANSMIT_TIME_ITERATIONS: usize = 3;
/// Default SP3 provenance comment emitted when a product has no comments.
pub const SP3_DEFAULT_PROVENANCE_COMMENT: &str = "Generated by sidereon-core";