added 180 deg. inverted carrier phase PLL lock flag in gnss_synchro

This commit is contained in:
Marc Majoral 2021-09-21 17:25:16 +02:00
parent bd62e33dc6
commit 03566b1fbf
7 changed files with 31 additions and 4 deletions

View File

@ -36,6 +36,7 @@ message GnssSynchro {
double rx_time = 23; // Receiving time after the start of the week, in s
bool flag_valid_pseudorange = 24; // Pseudorange computation status
double interp_tow_ms = 25; // Interpolated time of week, in ms
bool flag_PLL_180_deg_phase_locked = 26; // PLL lock at 180º
}
/* Observables represents a collection of GnssSynchro annotations */

View File

@ -1040,6 +1040,11 @@ int galileo_telemetry_decoder_gs::general_work(int noutput_items __attribute__((
{
// correct the accumulated phase for the Costas loop phase shift, if required
current_symbol.Carrier_phase_rads += GNSS_PI;
current_symbol.Flag_PLL_180_deg_phase_locked = true;
}
else
{
current_symbol.Flag_PLL_180_deg_phase_locked = false;
}
if (d_dump == true)

View File

@ -564,6 +564,11 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
{
// correct the accumulated phase for the Costas loop phase shift, if required
current_symbol.Carrier_phase_rads += GNSS_PI;
current_symbol.Flag_PLL_180_deg_phase_locked = true;
}
else
{
current_symbol.Flag_PLL_180_deg_phase_locked = false;
}
if (d_dump == true)

View File

@ -311,6 +311,11 @@ int gps_l2c_telemetry_decoder_gs::general_work(int noutput_items __attribute__((
{
// correct the accumulated phase for the Costas loop phase shift, if required
current_synchro_data.Carrier_phase_rads += GNSS_PI;
current_synchro_data.Flag_PLL_180_deg_phase_locked = true;
}
else
{
current_synchro_data.Flag_PLL_180_deg_phase_locked = false;
}
current_synchro_data.TOW_at_current_symbol_ms = round(d_TOW_at_current_symbol * 1000.0);

View File

@ -325,6 +325,11 @@ int gps_l5_telemetry_decoder_gs::general_work(int noutput_items __attribute__((u
{
// correct the accumulated phase for the Costas loop phase shift, if required
current_synchro_data.Carrier_phase_rads += GNSS_PI;
current_synchro_data.Flag_PLL_180_deg_phase_locked = true;
}
else
{
current_synchro_data.Flag_PLL_180_deg_phase_locked = false;
}
current_synchro_data.TOW_at_current_symbol_ms = d_TOW_at_current_symbol_ms;
current_synchro_data.Flag_valid_word = d_flag_valid_word;

View File

@ -112,6 +112,7 @@ public:
obs->set_pseudorange_m(gs.Pseudorange_m);
obs->set_rx_time(gs.RX_time);
obs->set_flag_valid_pseudorange(gs.Flag_valid_pseudorange);
obs->set_flag_pll_180_deg_phase_locked(gs.Flag_PLL_180_deg_phase_locked);
obs->set_interp_tow_ms(gs.interp_TOW_ms);
}
observables.SerializeToString(&data);
@ -156,6 +157,7 @@ public:
gs.Pseudorange_m = gs_read.pseudorange_m();
gs.RX_time = gs_read.rx_time();
gs.Flag_valid_pseudorange = gs_read.flag_valid_pseudorange();
gs.Flag_PLL_180_deg_phase_locked = gs_read.flag_pll_180_deg_phase_locked();
gs.interp_TOW_ms = gs_read.interp_tow_ms();
vgs.push_back(gs);

View File

@ -74,10 +74,11 @@ public:
double interp_TOW_ms{}; //!< Set by Observables processing block
// Flags
bool Flag_valid_acquisition{}; //!< Set by Acquisition processing block
bool Flag_valid_symbol_output{}; //!< Set by Tracking processing block
bool Flag_valid_word{}; //!< Set by Telemetry Decoder processing block
bool Flag_valid_pseudorange{}; //!< Set by Observables processing block
bool Flag_valid_acquisition{}; //!< Set by Acquisition processing block
bool Flag_valid_symbol_output{}; //!< Set by Tracking processing block
bool Flag_valid_word{}; //!< Set by Telemetry Decoder processing block
bool Flag_valid_pseudorange{}; //!< Set by Observables processing block
bool Flag_PLL_180_deg_phase_locked{}; //!< Set by Telemetry Decoder processing block
/// Copy constructor
Gnss_Synchro(const Gnss_Synchro& other) noexcept
@ -118,6 +119,7 @@ public:
this->Flag_valid_symbol_output = rhs.Flag_valid_symbol_output;
this->Flag_valid_word = rhs.Flag_valid_word;
this->Flag_valid_pseudorange = rhs.Flag_valid_pseudorange;
this->Flag_PLL_180_deg_phase_locked = rhs.Flag_PLL_180_deg_phase_locked;
}
return *this;
};
@ -160,6 +162,7 @@ public:
this->Flag_valid_symbol_output = other.Flag_valid_symbol_output;
this->Flag_valid_word = other.Flag_valid_word;
this->Flag_valid_pseudorange = other.Flag_valid_pseudorange;
this->Flag_PLL_180_deg_phase_locked = other.Flag_PLL_180_deg_phase_locked;
}
return *this;
};
@ -206,6 +209,7 @@ public:
ar& BOOST_SERIALIZATION_NVP(Flag_valid_symbol_output);
ar& BOOST_SERIALIZATION_NVP(Flag_valid_word);
ar& BOOST_SERIALIZATION_NVP(Flag_valid_pseudorange);
ar& BOOST_SERIALIZATION_NVP(Flag_PLL_180_deg_phase_locked);
}
};