diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc index fe04d5369..bd72d4cde 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc @@ -537,6 +537,13 @@ void gps_l1_ca_telemetry_decoder_gs::frame_synchronization(const Gnss_Synchro &c } +bool gps_l1_ca_telemetry_decoder_gs::is_PLL_180_deg_phase_locked() +{ + gr::thread::scoped_lock lock(d_setlock); + return d_flag_PLL_180_deg_phase_locked; +} + + int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { @@ -613,7 +620,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__ d_nav_msg_packet.nav_message = ""; } - if (d_flag_PLL_180_deg_phase_locked == true) + if (is_PLL_180_deg_phase_locked()) { // correct the accumulated phase for the Costas loop phase shift, if required current_symbol.Carrier_phase_rads += GNSS_PI; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h index 8b00d51ce..5939163bc 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h @@ -75,6 +75,7 @@ private: void check_tlm_separation(); void frame_synchronization(const Gnss_Synchro ¤t_gs); + bool is_PLL_180_deg_phase_locked(); bool gps_word_parityCheck(uint32_t gpsword); bool decode_subframe(double cn0, bool flag_invert);