1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-11-07 10:43:58 +00:00

Update references to new GPS ICDs

This commit is contained in:
Carles Fernandez
2021-01-12 10:34:55 +01:00
parent 8b918b4f87
commit ddc5bcff01
29 changed files with 99 additions and 99 deletions

View File

@@ -5103,7 +5103,7 @@ void Rinex_Printer::log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps
if (gps_ephemeris_iter->second.satelliteBlock.at(gps_ephemeris_iter->second.i_satellite_PRN) == "IIA")
{
// Block II/IIA (Table 20-XI IS-GPS-200K )
// Block II/IIA (Table 20-XI IS-GPS-200L )
if ((gps_ephemeris_iter->second.d_IODC > 239) && (gps_ephemeris_iter->second.d_IODC < 248))
{
curve_fit_interval = 8;
@@ -5135,7 +5135,7 @@ void Rinex_Printer::log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps
(gps_ephemeris_iter->second.satelliteBlock.at(gps_ephemeris_iter->second.i_satellite_PRN) == "IIF") ||
(gps_ephemeris_iter->second.satelliteBlock.at(gps_ephemeris_iter->second.i_satellite_PRN) == "IIIA"))
{
// Block IIR/IIR-M/IIF/IIIA (Table 20-XII IS-GPS-200K )
// Block IIR/IIR-M/IIF/IIIA (Table 20-XII IS-GPS-200L )
if ((gps_ephemeris_iter->second.d_IODC > 239) && (gps_ephemeris_iter->second.d_IODC < 248))
{
curve_fit_interval = 8;
@@ -5222,7 +5222,7 @@ void Rinex_Printer::log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps
line += std::string(5, ' ');
// If there is no IODE in CNAV, so we check if Toe in message Type 10, Toe in Message type 11 and Toc in message types 30-37.
// Whenever these three terms do not match, a data set cutover has occurred and new data must be collected.
// See IS-GPS-200K, p. 155
// See IS-GPS-200L, p. 155
if (!((gps_ephemeris_iter->second.d_Toe1 == gps_ephemeris_iter->second.d_Toe2) && (gps_ephemeris_iter->second.d_Toe1 == gps_ephemeris_iter->second.d_Toc))) // Toe1: Toe in message type 10, Toe2: Toe in message type 11
{
// Toe1: Toe in message type 10, Toe2: Toe in message type 11,
@@ -5252,7 +5252,7 @@ void Rinex_Printer::log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps
line += std::string(1, ' ');
line += Rinex_Printer::doub2for(gps_ephemeris_iter->second.d_Cus, 18, 2);
line += std::string(1, ' ');
const double A_REF = 26559710.0; // See IS-GPS-200K, pp. 163
const double A_REF = 26559710.0; // See IS-GPS-200L, pp. 161
double sqrt_A = sqrt(A_REF + gps_ephemeris_iter->second.d_DELTA_A);
line += Rinex_Printer::doub2for(sqrt_A, 18, 2);
Rinex_Printer::lengthCheck(line);
@@ -5280,7 +5280,7 @@ void Rinex_Printer::log_rinex_nav(std::fstream& out, const std::map<int32_t, Gps
line += std::string(1, ' ');
line += Rinex_Printer::doub2for(gps_ephemeris_iter->second.d_OMEGA, 18, 2);
line += std::string(1, ' ');
const double OMEGA_DOT_REF = -2.6e-9; // semicircles / s, see IS-GPS-200K pp. 164
const double OMEGA_DOT_REF = -2.6e-9; // semicircles / s, see IS-GPS-200L pp. 160
double OMEGA_DOT_aux = OMEGA_DOT_REF + gps_ephemeris_iter->second.d_DELTA_OMEGA_DOT;
line += Rinex_Printer::doub2for(OMEGA_DOT_aux, 18, 2);
Rinex_Printer::lengthCheck(line);

View File

@@ -20,7 +20,7 @@
#include <array>
#include <cmath> // for sin, cos, sqrt, abs, pow
const double STRP_PI = 3.1415926535898; // Pi as defined in IS-GPS-200K
const double STRP_PI = 3.1415926535898; // Pi as defined in IS-GPS-200L
arma::mat Skew_symmetric(const arma::vec &a)
{

View File

@@ -354,13 +354,13 @@ eph_t eph_to_rtklib(const Gps_CNAV_Ephemeris& gps_cnav_eph)
eph_t rtklib_sat = {0, 0, 0, 0, 0, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, {}, {}, 0.0, 0.0};
rtklib_sat.sat = gps_cnav_eph.i_satellite_PRN;
const double A_REF = 26559710.0; // See IS-GPS-200K, pp. 170
const double A_REF = 26559710.0; // See IS-GPS-200L, pp. 161
rtklib_sat.A = A_REF + gps_cnav_eph.d_DELTA_A;
rtklib_sat.M0 = gps_cnav_eph.d_M_0;
rtklib_sat.deln = gps_cnav_eph.d_Delta_n;
rtklib_sat.OMG0 = gps_cnav_eph.d_OMEGA0;
// Compute the angle between the ascending node and the Greenwich meridian
const double OMEGA_DOT_REF = -2.6e-9; // semicircles / s, see IS-GPS-200K pp. 164
const double OMEGA_DOT_REF = -2.6e-9; // semicircles / s, see IS-GPS-200L pp. 160
double d_OMEGA_DOT = OMEGA_DOT_REF * GNSS_PI + gps_cnav_eph.d_DELTA_OMEGA_DOT;
rtklib_sat.OMGd = d_OMEGA_DOT;
rtklib_sat.omg = gps_cnav_eph.d_OMEGA;

View File

@@ -1727,7 +1727,7 @@ double timediff(gtime_t t1, gtime_t t2)
*-----------------------------------------------------------------------------*/
double timediffweekcrossover(gtime_t t1, gtime_t t2)
{
// as stated in IS-GPS-200K table 20-IV footnote among other parts of the ICD,
// as stated in IS-GPS-200L table 20-IV footnote among other parts of the ICD,
// if tk=(t - toe) > 302400s then tk = tk - s
// if tk=(t - toe) < -302400s then tk = tk + 604800s
double tk = difftime(t1.time, t2.time) + t1.sec - t2.sec;

View File

@@ -29,7 +29,7 @@
*
*
* References :
* [1] IS-GPS-200K, Navstar GPS Space Segment/Navigation User Interfaces,
* [1] IS-GPS-200L, Navstar GPS Space Segment/Navigation User Interfaces,
* 7 March, 2006
* [2] RTCA/DO-229C, Minimum operational performanc standards for global
* positioning system/wide area augmentation system airborne equipment,

View File

@@ -162,7 +162,7 @@ bool gps_l1_ca_telemetry_decoder_gs::gps_word_parityCheck(uint32_t gpsword)
{
// XOR as many bits in parallel as possible. The magic constants pick
// up bits which are to be XOR'ed together to implement the GPS parity
// check algorithm described in IS-GPS-200K. This avoids lengthy shift-
// check algorithm described in IS-GPS-200L. This avoids lengthy shift-
// and-xor loops.
const uint32_t d1 = gpsword & 0xFBFFBF00U;
const uint32_t d2 = my_rotl::rotl(gpsword, 1U) & 0x07FFBF01U;

View File

@@ -47,7 +47,7 @@ gps_l1_ca_telemetry_decoder_gs_sptr gps_l1_ca_make_telemetry_decoder_gs(
const Tlm_Conf &conf);
/*!
* \brief This class implements a block that decodes the NAV data defined in IS-GPS-200K
* \brief This class implements a block that decodes the NAV data defined in IS-GPS-200L
*/
class gps_l1_ca_telemetry_decoder_gs : public gr::block
{

View File

@@ -48,7 +48,7 @@ gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(
const Tlm_Conf &conf);
/*!
* \brief This class implements a block that decodes CNAV data defined in IS-GPS-200K
* \brief This class implements a block that decodes CNAV data defined in IS-GPS-200L
*/
class gps_l2c_telemetry_decoder_gs : public gr::block
{