// SPDX-License-Identifier: BSD-3-Clause // SPDX-FileCopyrightText: 2018-2021 Carles Fernandez-Prades syntax = "proto3"; package gnss_sdr; message GpsEphemeris { int32 PRN = 1; // SV ID double M_0 = 2; // Mean anomaly at reference time [semi-circles] double delta_n = 3; // Mean motion difference from computed value [semi-circles/sec] double ecc = 4; // Eccentricity double sqrtA = 5; // Square root of the semi-major axis [meters^1/2] double OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles] double i_0 = 7; // Inclination angle at reference time [semi-circles] double omega = 8; // Argument of perigee [semi-circles] double OMEGAdot = 9; // Rate of right ascension [semi-circles/sec] double idot = 10; // Rate of inclination angle [semi-circles/sec] double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians] double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [radians] double Crc = 13; // Amplitude of the cosine harmonic correction term to the orbit radius [meters] double Crs = 14; // Amplitude of the sine harmonic correction term to the orbit radius [meters] double Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [radians] double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [radians] int32 toe = 17; // Ephemeris reference time [s] // Clock correction parameters int32 toc = 18; // Clock correction data reference Time of Week [sec] double af0 = 19; // SV clock bias correction coefficient [s] double af1 = 20; // SV clock drift correction coefficient [s/s] double af2 = 21; // SV clock drift rate correction coefficient [s/s^2] double satClkDrift = 22; // SV clock drift double dtr = 23; // Relativistic clock correction term // Time int32 WN = 24; // Week number int32 tow = 25; // Time of Week // GPS-specific parameters int32 code_on_L2 = 26; // If 1, P code ON in L2; if 2, C/A code ON in L2; bool L2_P_data_flag = 27; // When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel int32 SV_accuracy = 28; // User Range Accuracy (URA) index of the SV (reference paragraph 6.2.1) for the standard positioning service user (Ref 20.3.3.3.1.3 IS-GPS-200M) int32 SV_health = 29; // Satellite heath status double TGD = 30; // Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s] int32 IODC = 31; // Issue of Data, Clock int32 IODE_SF2 = 32; // Issue of Data, Ephemeris (IODE), subframe 2 int32 IODE_SF3 = 33; // Issue of Data, Ephemeris (IODE), subframe 3 int32 AODO = 34; // Age of Data Offset (AODO) term for the navigation message correction table (NMCT) contained in subframe 4 (reference paragraph 20.3.3.5.1.9) [s] bool fit_interval_flag = 35; // indicates the curve-fit interval used by the CS (Block II/IIA/IIR/IIR-M/IIF) and SS (Block IIIA) in determining the ephemeris parameters, as follows: 0 = 4 hours, 1 = greater than 4 hours. double spare1 = 36; double spare2 = 37; bool integrity_status_flag = 38; bool alert_flag = 39; // If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk. bool antispoofing_flag = 40; // If true, the AntiSpoofing mode is ON in that SV }