mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 04:00:34 +00:00
Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime
This commit is contained in:
commit
0eb21b8359
@ -6,21 +6,21 @@ package gnss_sdr;
|
|||||||
|
|
||||||
message GalileoEphemeris {
|
message GalileoEphemeris {
|
||||||
int32 PRN = 1; // SV ID
|
int32 PRN = 1; // SV ID
|
||||||
double M_0 = 2; // Mean anomaly at reference time [semi-circles]
|
double M_0 = 2; // Mean anomaly at reference time [rad]
|
||||||
double delta_n = 3; // Mean motion difference from computed value [semi-circles/sec]
|
double delta_n = 3; // Mean motion difference from computed value [rad/sec]
|
||||||
double ecc = 4; // Eccentricity
|
double ecc = 4; // Eccentricity
|
||||||
double sqrtA = 5; // Square root of the semi-major axis [meters^1/2]
|
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 OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
double i_0 = 7; // Inclination angle at reference time [semi-circles]
|
double i_0 = 7; // Inclination angle at reference time [rad]
|
||||||
double omega = 8; // Argument of perigee [semi-circles]
|
double omega = 8; // Argument of perigee [rad]
|
||||||
double OMEGAdot = 9; // Rate of right ascension [semi-circles/sec]
|
double OMEGAdot = 9; // Rate of right ascension [rad/sec]
|
||||||
double idot = 10; // Rate of inclination angle [semi-circles/sec]
|
double idot = 10; // Rate of inclination angle [rad/sec]
|
||||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||||
double Crc = 13; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
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 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 Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||||
int32 toe = 17; // Ephemeris reference time [s]
|
int32 toe = 17; // Ephemeris reference time [s]
|
||||||
|
|
||||||
// Clock correction parameters
|
// Clock correction parameters
|
||||||
|
@ -6,21 +6,21 @@ package gnss_sdr;
|
|||||||
|
|
||||||
message GpsEphemeris {
|
message GpsEphemeris {
|
||||||
int32 PRN = 1; // SV ID
|
int32 PRN = 1; // SV ID
|
||||||
double M_0 = 2; // Mean anomaly at reference time [semi-circles]
|
double M_0 = 2; // Mean anomaly at reference time [rad]
|
||||||
double delta_n = 3; // Mean motion difference from computed value [semi-circles/sec]
|
double delta_n = 3; // Mean motion difference from computed value [rad/sec]
|
||||||
double ecc = 4; // Eccentricity
|
double ecc = 4; // Eccentricity
|
||||||
double sqrtA = 5; // Square root of the semi-major axis [meters^1/2]
|
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 OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
double i_0 = 7; // Inclination angle at reference time [semi-circles]
|
double i_0 = 7; // Inclination angle at reference time [rad]
|
||||||
double omega = 8; // Argument of perigee [semi-circles]
|
double omega = 8; // Argument of perigee [rad]
|
||||||
double OMEGAdot = 9; // Rate of right ascension [semi-circles/sec]
|
double OMEGAdot = 9; // Rate of right ascension [rad/sec]
|
||||||
double idot = 10; // Rate of inclination angle [semi-circles/sec]
|
double idot = 10; // Rate of inclination angle [rad/sec]
|
||||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||||
double Crc = 13; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
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 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 Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||||
int32 toe = 17; // Ephemeris reference time [s]
|
int32 toe = 17; // Ephemeris reference time [s]
|
||||||
|
|
||||||
// Clock correction parameters
|
// Clock correction parameters
|
||||||
|
@ -401,15 +401,15 @@ Galileo_Ephemeris Galileo_Fnav_Message::get_ephemeris() const
|
|||||||
ephemeris.flag_all_ephemeris = flag_all_ephemeris;
|
ephemeris.flag_all_ephemeris = flag_all_ephemeris;
|
||||||
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
||||||
ephemeris.PRN = FNAV_SV_ID_PRN_1;
|
ephemeris.PRN = FNAV_SV_ID_PRN_1;
|
||||||
ephemeris.M_0 = FNAV_M0_2; // Mean anomaly at reference time [semi-circles]
|
ephemeris.M_0 = FNAV_M0_2; // Mean anomaly at reference time [rad]
|
||||||
ephemeris.delta_n = FNAV_deltan_3; // Mean motion difference from computed value [semi-circles/sec]
|
ephemeris.delta_n = FNAV_deltan_3; // Mean motion difference from computed value [rad/sec]
|
||||||
ephemeris.ecc = FNAV_e_2; // Eccentricity
|
ephemeris.ecc = FNAV_e_2; // Eccentricity
|
||||||
ephemeris.sqrtA = FNAV_a12_2; // Square root of the semi-major axis [meters^1/2]
|
ephemeris.sqrtA = FNAV_a12_2; // Square root of the semi-major axis [meters^1/2]
|
||||||
ephemeris.OMEGA_0 = FNAV_omega0_2; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
ephemeris.OMEGA_0 = FNAV_omega0_2; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
ephemeris.i_0 = FNAV_i0_3; // Inclination angle at reference time [semi-circles]
|
ephemeris.i_0 = FNAV_i0_3; // Inclination angle at reference time [rad]
|
||||||
ephemeris.omega = FNAV_w_3; // Argument of perigee [semi-circles]
|
ephemeris.omega = FNAV_w_3; // Argument of perigee [rad]
|
||||||
ephemeris.OMEGAdot = FNAV_omegadot_2; // Rate of right ascension [semi-circles/sec]
|
ephemeris.OMEGAdot = FNAV_omegadot_2; // Rate of right ascension [rad/sec]
|
||||||
ephemeris.idot = FNAV_idot_2; // Rate of inclination angle [semi-circles/sec]
|
ephemeris.idot = FNAV_idot_2; // Rate of inclination angle [rad/sec]
|
||||||
ephemeris.Cuc = FNAV_Cuc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
ephemeris.Cuc = FNAV_Cuc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||||
ephemeris.Cus = FNAV_Cus_3; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
ephemeris.Cus = FNAV_Cus_3; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||||
ephemeris.Crc = FNAV_Crc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
ephemeris.Crc = FNAV_Crc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||||
|
@ -428,21 +428,21 @@ Galileo_Ephemeris Galileo_Inav_Message::get_ephemeris() const
|
|||||||
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
||||||
ephemeris.IOD_nav = IOD_nav_1;
|
ephemeris.IOD_nav = IOD_nav_1;
|
||||||
ephemeris.PRN = SV_ID_PRN_4;
|
ephemeris.PRN = SV_ID_PRN_4;
|
||||||
ephemeris.M_0 = M0_1; // Mean anomaly at reference time [semi-circles]
|
ephemeris.M_0 = M0_1; // Mean anomaly at reference time [rad]
|
||||||
ephemeris.delta_n = delta_n_3; // Mean motion difference from computed value [semi-circles/sec]
|
ephemeris.delta_n = delta_n_3; // Mean motion difference from computed value [rad/sec]
|
||||||
ephemeris.ecc = e_1; // Eccentricity
|
ephemeris.ecc = e_1; // Eccentricity
|
||||||
ephemeris.sqrtA = A_1; // Square root of the semi-major axis [meters^1/2]
|
ephemeris.sqrtA = A_1; // Square root of the semi-major axis [meters^1/2]
|
||||||
ephemeris.OMEGA_0 = OMEGA_0_2; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
ephemeris.OMEGA_0 = OMEGA_0_2; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
ephemeris.i_0 = i_0_2; // Inclination angle at reference time [semi-circles]
|
ephemeris.i_0 = i_0_2; // Inclination angle at reference time [rad]
|
||||||
ephemeris.omega = omega_2; // Argument of perigee [semi-circles]
|
ephemeris.omega = omega_2; // Argument of perigee [rad]
|
||||||
ephemeris.OMEGAdot = OMEGA_dot_3; // Rate of right ascension [semi-circles/sec]
|
ephemeris.OMEGAdot = OMEGA_dot_3; // Rate of right ascension [rad/sec]
|
||||||
ephemeris.idot = iDot_2; // Rate of inclination angle [semi-circles/sec]
|
ephemeris.idot = iDot_2; // Rate of inclination angle [rad/sec]
|
||||||
ephemeris.Cuc = C_uc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
ephemeris.Cuc = C_uc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||||
ephemeris.Cus = C_us_3; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
ephemeris.Cus = C_us_3; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||||
ephemeris.Crc = C_rc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
ephemeris.Crc = C_rc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||||
ephemeris.Crs = C_rs_3; // Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
ephemeris.Crs = C_rs_3; // Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||||
ephemeris.Cic = C_ic_4; // Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
ephemeris.Cic = C_ic_4; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||||
ephemeris.Cis = C_is_4; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
ephemeris.Cis = C_is_4; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||||
ephemeris.toe = t0e_1; // Ephemeris reference time [s]
|
ephemeris.toe = t0e_1; // Ephemeris reference time [s]
|
||||||
|
|
||||||
// Clock correction parameters
|
// Clock correction parameters
|
||||||
@ -609,8 +609,7 @@ Galileo_Ephemeris Galileo_Inav_Message::get_reduced_ced() const
|
|||||||
ced.af1red = ced_af1red;
|
ced.af1red = ced_af1red;
|
||||||
|
|
||||||
Galileo_Ephemeris eph = ced.compute_eph();
|
Galileo_Ephemeris eph = ced.compute_eph();
|
||||||
eph.BGD_E1E5a = BGD_E1E5a_5;
|
|
||||||
eph.BGD_E1E5b = BGD_E1E5b_5;
|
|
||||||
return eph;
|
return eph;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,22 +248,22 @@ private:
|
|||||||
// Word type 1: Ephemeris (1/4)
|
// Word type 1: Ephemeris (1/4)
|
||||||
int32_t IOD_nav_1{}; // IOD_nav page 1
|
int32_t IOD_nav_1{}; // IOD_nav page 1
|
||||||
int32_t t0e_1{}; // Ephemeris reference time [s]
|
int32_t t0e_1{}; // Ephemeris reference time [s]
|
||||||
double M0_1{}; // Mean anomaly at reference time [semi-circles]
|
double M0_1{}; // Mean anomaly at reference time [rad]
|
||||||
double e_1{}; // Eccentricity
|
double e_1{}; // Eccentricity
|
||||||
double A_1{}; // Square root of the semi-major axis [meters^1/2]
|
double A_1{}; // Square root of the semi-major axis [meters^1/2]
|
||||||
|
|
||||||
// Word type 2: Ephemeris (2/4)
|
// Word type 2: Ephemeris (2/4)
|
||||||
int32_t IOD_nav_2{}; // IOD_nav page 2
|
int32_t IOD_nav_2{}; // IOD_nav page 2
|
||||||
double OMEGA_0_2{}; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
double OMEGA_0_2{}; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
double i_0_2{}; // Inclination angle at reference time [semi-circles]
|
double i_0_2{}; // Inclination angle at reference time [rad]
|
||||||
double omega_2{}; // Argument of perigee [semi-circles]
|
double omega_2{}; // Argument of perigee [rad]
|
||||||
double iDot_2{}; // Rate of inclination angle [semi-circles/sec]
|
double iDot_2{}; // Rate of inclination angle [rad/sec]
|
||||||
|
|
||||||
// Word type 3: Ephemeris (3/4) and SISA
|
// Word type 3: Ephemeris (3/4) and SISA
|
||||||
int32_t IOD_nav_3{};
|
int32_t IOD_nav_3{};
|
||||||
int32_t SISA_3{};
|
int32_t SISA_3{};
|
||||||
double OMEGA_dot_3{}; // Rate of right ascension [semi-circles/sec]
|
double OMEGA_dot_3{}; // Rate of right ascension [rad/sec]
|
||||||
double delta_n_3{}; // Mean motion difference from computed value [semi-circles/sec]
|
double delta_n_3{}; // Mean motion difference from computed value [rad/sec]
|
||||||
double C_uc_3{}; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
double C_uc_3{}; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||||
double C_us_3{}; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
double C_us_3{}; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||||
double C_rc_3{}; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
double C_rc_3{}; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||||
|
@ -28,12 +28,11 @@ Galileo_Ephemeris Galileo_Reduced_CED::compute_eph() const
|
|||||||
eph.sqrtA = std::sqrt(Ared); // Square root of the semi-major axis [meters^1/2]
|
eph.sqrtA = std::sqrt(Ared); // Square root of the semi-major axis [meters^1/2]
|
||||||
const double i_nominal = 56.0; // degrees (Table 1 Galileo ICD 2.0)
|
const double i_nominal = 56.0; // degrees (Table 1 Galileo ICD 2.0)
|
||||||
const double i0red = Deltai0red + i_nominal / 180.0;
|
const double i0red = Deltai0red + i_nominal / 180.0;
|
||||||
eph.i_0 = i0red; // Inclination angle at reference time [semi-circles]
|
eph.i_0 = i0red * GNSS_PI; // Inclination angle at reference time [rad]
|
||||||
eph.ecc = std::sqrt(exred * exred + eyred * eyred); // Eccentricity
|
eph.ecc = std::sqrt(exred * exred + eyred * eyred); // Eccentricity
|
||||||
const double omega_semicircles = std::atan2(eyred, exred) / GNSS_PI;
|
eph.omega = std::atan2(eyred, exred); // Argument of perigee [rad]
|
||||||
eph.omega = omega_semicircles; // Argument of perigee [semi-circles]
|
eph.M_0 = lambda0red * GNSS_PI - eph.omega; // Mean anomaly at reference time [rad]
|
||||||
eph.M_0 = lambda0red - omega_semicircles; // Mean anomaly at reference time [semi-circles]
|
eph.OMEGA_0 = Omega0red * GNSS_PI; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
eph.OMEGA_0 = Omega0red; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
|
||||||
|
|
||||||
eph.flag_all_ephemeris = true;
|
eph.flag_all_ephemeris = true;
|
||||||
eph.IOD_ephemeris = IODnav;
|
eph.IOD_ephemeris = IODnav;
|
||||||
|
@ -49,9 +49,9 @@ public:
|
|||||||
double DeltaAred{}; //!< Difference between the Reduced CED semi-major axis and the nominal semi-major axis [meters]
|
double DeltaAred{}; //!< Difference between the Reduced CED semi-major axis and the nominal semi-major axis [meters]
|
||||||
double exred{}; //!< Reduced CED eccentricity vector component x
|
double exred{}; //!< Reduced CED eccentricity vector component x
|
||||||
double eyred{}; //!< Reduced CED eccentricity vector component y
|
double eyred{}; //!< Reduced CED eccentricity vector component y
|
||||||
double Deltai0red{}; //!< Difference between the Reduced CED inclination angle at reference time and the nominal inclination [semi-circles]
|
double Deltai0red{}; //!< Difference between the Reduced CED inclination angle at reference time and the nominal inclination [rad]
|
||||||
double Omega0red{}; //!< Reduced CED longitude of ascending node at weekly epoch [semi-circles]
|
double Omega0red{}; //!< Reduced CED longitude of ascending node at weekly epoch [rad]
|
||||||
double lambda0red{}; //!< Reduced CED mean argument of latitude [semi-circles]
|
double lambda0red{}; //!< Reduced CED mean argument of latitude [rad]
|
||||||
double af0red{}; //!< Reduced CED satellite clock bias correction coefficient [seconds]
|
double af0red{}; //!< Reduced CED satellite clock bias correction coefficient [seconds]
|
||||||
double af1red{}; //!< Reduced CED satellite clock drift correction coefficient [seconds/seconds]
|
double af1red{}; //!< Reduced CED satellite clock drift correction coefficient [seconds/seconds]
|
||||||
};
|
};
|
||||||
|
@ -68,21 +68,21 @@ public:
|
|||||||
void satellitePosition(double transmitTime); //!< Computes the ECEF SV coordinates and ECEF velocity
|
void satellitePosition(double transmitTime); //!< Computes the ECEF SV coordinates and ECEF velocity
|
||||||
|
|
||||||
uint32_t PRN{}; //!< SV ID
|
uint32_t PRN{}; //!< SV ID
|
||||||
double M_0{}; //!< Mean anomaly at reference time [semi-circles]
|
double M_0{}; //!< Mean anomaly at reference time [rad]
|
||||||
double delta_n{}; //!< Mean motion difference from computed value [semi-circles/sec]
|
double delta_n{}; //!< Mean motion difference from computed value [rad/sec]
|
||||||
double ecc{}; //!< Eccentricity
|
double ecc{}; //!< Eccentricity
|
||||||
double sqrtA{}; //!< Square root of the semi-major axis [meters^1/2]
|
double sqrtA{}; //!< Square root of the semi-major axis [meters^1/2]
|
||||||
double OMEGA_0{}; //!< Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
double OMEGA_0{}; //!< Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||||
double i_0{}; //!< Inclination angle at reference time [semi-circles]
|
double i_0{}; //!< Inclination angle at reference time [rad]
|
||||||
double omega{}; //!< Argument of perigee [semi-circles]
|
double omega{}; //!< Argument of perigee [rad]
|
||||||
double OMEGAdot{}; //!< Rate of right ascension [semi-circles/sec]
|
double OMEGAdot{}; //!< Rate of right ascension [rad/sec]
|
||||||
double idot{}; //!< Rate of inclination angle [semi-circles/sec]
|
double idot{}; //!< Rate of inclination angle [rad/sec]
|
||||||
double Cuc{}; //!< Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
double Cuc{}; //!< Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||||
double Cus{}; //!< Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
double Cus{}; //!< Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||||
double Crc{}; //!< Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
double Crc{}; //!< Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||||
double Crs{}; //!< Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
double Crs{}; //!< Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||||
double Cic{}; //!< Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
double Cic{}; //!< Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||||
double Cis{}; //!< Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
double Cis{}; //!< Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||||
int32_t toe{}; //!< Ephemeris reference time [s]
|
int32_t toe{}; //!< Ephemeris reference time [s]
|
||||||
|
|
||||||
// Clock correction parameters
|
// Clock correction parameters
|
||||||
|
Loading…
Reference in New Issue
Block a user