[hamradio-commits] [gnss-sdr] 194/236: Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Tue Apr 26 16:02:53 UTC 2016


This is an automated email from the git hooks/post-receive script.

carles_fernandez-guest pushed a commit to branch next
in repository gnss-sdr.

commit 2b7175083f9bdd233e8337b6d91b08a393b421f0
Merge: 4a18121 bd60379
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Wed Apr 13 18:26:19 2016 +0200

    Merge branch 'next' of git+ssh://github.com/gnss-sdr/gnss-sdr into next

 conf/gnss-sdr_Hybrid_short.conf                    |  24 +-
 src/algorithms/PVT/adapters/galileo_e1_pvt.cc      |  16 +-
 src/algorithms/PVT/adapters/galileo_e1_pvt.h       |   5 +-
 src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc       |  17 +-
 src/algorithms/PVT/adapters/gps_l1_ca_pvt.h        |   5 +-
 src/algorithms/PVT/adapters/hybrid_pvt.cc          |  17 +-
 src/algorithms/PVT/adapters/hybrid_pvt.h           |   5 +-
 .../PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc       |  36 +--
 .../PVT/gnuradio_blocks/galileo_e1_pvt_cc.h        |   5 -
 .../PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc        |  17 +-
 .../PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.h         |   5 -
 .../PVT/gnuradio_blocks/hybrid_pvt_cc.cc           |  70 +++---
 src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.h |   5 -
 .../galileo_e1_pcps_ambiguous_acquisition.cc       |   7 +-
 .../galileo_e1_pcps_ambiguous_acquisition.h        |   4 +-
 .../adapters/gps_l1_ca_pcps_acquisition.cc         |   9 +-
 .../adapters/gps_l1_ca_pcps_acquisition.h          |   2 +-
 .../adapters/gps_l2_m_pcps_acquisition.cc          |   7 +-
 .../adapters/gps_l2_m_pcps_acquisition.h           |   4 +-
 .../gnuradio_blocks/pcps_acquisition_cc.cc         |   8 +-
 .../gnuradio_blocks/pcps_acquisition_cc.h          |   8 +-
 .../gnuradio_blocks/pcps_acquisition_sc.cc         |   7 +-
 .../gnuradio_blocks/pcps_acquisition_sc.h          |   8 +-
 .../volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h    |  16 +-
 .../volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h     |  34 +--
 .../observables/adapters/galileo_e1_observables.cc |   8 +-
 .../observables/adapters/galileo_e1_observables.h  |   5 +-
 .../observables/adapters/gps_l1_ca_observables.cc  |   8 +-
 .../observables/adapters/gps_l1_ca_observables.h   |   5 +-
 .../observables/adapters/hybrid_observables.cc     |   8 +-
 .../observables/adapters/hybrid_observables.h      |   5 +-
 .../observables/adapters/mixed_observables.cc      |   8 +-
 .../observables/adapters/mixed_observables.h       |   5 +-
 .../gnuradio_blocks/galileo_e1_observables_cc.cc   |   9 +-
 .../gnuradio_blocks/galileo_e1_observables_cc.h    |   8 +-
 .../gnuradio_blocks/gps_l1_ca_observables_cc.cc    |   9 +-
 .../gnuradio_blocks/gps_l1_ca_observables_cc.h     |   8 +-
 .../gnuradio_blocks/hybrid_observables_cc.cc       |   9 +-
 .../gnuradio_blocks/hybrid_observables_cc.h        |   9 +-
 .../gnuradio_blocks/mixed_observables_cc.cc        |   7 +-
 .../gnuradio_blocks/mixed_observables_cc.h         |   8 +-
 .../adapters/galileo_e1b_telemetry_decoder.cc      |   8 +-
 .../adapters/galileo_e1b_telemetry_decoder.h       |   5 +-
 .../adapters/galileo_e5a_telemetry_decoder.cc      |   8 +-
 .../adapters/galileo_e5a_telemetry_decoder.h       |   5 +-
 .../adapters/gps_l1_ca_telemetry_decoder.cc        |   8 +-
 .../adapters/gps_l1_ca_telemetry_decoder.h         |   5 +-
 .../adapters/gps_l2_m_telemetry_decoder.cc         |   8 +-
 .../adapters/gps_l2_m_telemetry_decoder.h          |   5 +-
 .../adapters/sbas_l1_telemetry_decoder.cc          |   8 +-
 .../adapters/sbas_l1_telemetry_decoder.h           |   5 +-
 .../galileo_e1b_telemetry_decoder_cc.cc            |  21 +-
 .../galileo_e1b_telemetry_decoder_cc.h             |  13 +-
 .../galileo_e5a_telemetry_decoder_cc.cc            |  50 +---
 .../galileo_e5a_telemetry_decoder_cc.h             |  21 +-
 .../gps_l1_ca_telemetry_decoder_cc.cc              |   9 +-
 .../gps_l1_ca_telemetry_decoder_cc.h               |  15 +-
 .../gps_l2_m_telemetry_decoder_cc.cc               |  33 +--
 .../gps_l2_m_telemetry_decoder_cc.h                |  15 +-
 .../sbas_l1_telemetry_decoder_cc.cc                |   5 +-
 .../gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h |   7 +-
 src/core/receiver/control_thread.cc                | 259 ++++++++-------------
 src/core/receiver/control_thread.h                 |  43 +---
 src/core/receiver/gnss_block_factory.cc            |  56 ++---
 src/core/receiver/gnss_block_factory.h             |   2 +-
 src/core/receiver/gnss_flowgraph.cc                |   8 +
 src/core/receiver/gnss_flowgraph.h                 |   7 +-
 src/main/main.cc                                   |   5 -
 .../gps_l1_ca_pcps_acquisition_gsoc2013_test.cc    |   8 +-
 .../gnss_block/gps_l1_ca_pcps_acquisition_test.cc  |   6 +-
 .../gnss_block/gps_l2_m_pcps_acquisition_test.cc   |   6 +-
 src/utils/front-end-cal/main.cc                    |   6 -
 72 files changed, 418 insertions(+), 702 deletions(-)

diff --cc conf/gnss-sdr_Hybrid_short.conf
index 878bf28,878bf28..03455ff
--- a/conf/gnss-sdr_Hybrid_short.conf
+++ b/conf/gnss-sdr_Hybrid_short.conf
@@@ -31,7 -31,7 +31,7 @@@ GNSS-SDR.SUPL_CI=0x31b
  SignalSource.implementation=File_Signal_Source
  
  ;#filename: path to file with the captured GNSS signal samples to be processed
--SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat
++SignalSource.filename=/Users/carlesfernandez/Documents/workspace/code2/trunk/data/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ;/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat
  
  ;#item_type: Type and resolution for each of the signal samples.
  SignalSource.item_type=ishort
@@@ -172,9 -172,9 +172,9 @@@ Resampler.sample_freq_out=400000
  
  ;######### CHANNELS GLOBAL CONFIG ############
  ;#count: Number of available GPS satellite channels.
--Channels_1C.count=3
++Channels_1C.count=2
  ;#count: Number of available Galileo satellite channels.
--Channels_1B.count=3
++Channels_1B.count=4
  ;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
  Channels.in_acquisition=1
  
@@@ -183,14 -183,14 +183,14 @@@
  ;# "2S" GPS L2 L2C (M)
  ;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
  ;# "5X" GALILEO E5a I+Q
--Channel0.signal=1B
++Channel0.signal=1C
  Channel1.signal=1C
  Channel2.signal=1B
--Channel3.signal=1C
++Channel3.signal=1B
  Channel4.signal=1B
--Channel5.signal=1C
--;Channel6.signal=1B
--;Channel7.signal=1C
++Channel5.signal=1B
++Channel6.signal=1B
++Channel7.signal=1B
  
  
  
@@@ -244,7 -244,7 +244,7 @@@ Acquisition_1B.doppler_step=12
  ;######### TRACKING GPS CONFIG ############
  
  ;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] or [GPS_L1_CA_TCP_CONNECTOR_Tracking] or [Galileo_E1_DLL_PLL_VEML_Tracking]
--Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
++Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
  ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
  Tracking_1C.item_type=gr_complex
  
@@@ -258,10 -258,10 +258,10 @@@ Tracking_1C.dump=fals
  Tracking_1C.dump_filename=../data/epl_tracking_ch_
  
  ;#pll_bw_hz: PLL loop filter bandwidth [Hz]
--Tracking_1C.pll_bw_hz=45.0;
++Tracking_1C.pll_bw_hz=50.0;
  
  ;#dll_bw_hz: DLL loop filter bandwidth [Hz]
--Tracking_1C.dll_bw_hz=4.0;
++Tracking_1C.dll_bw_hz=5.0;
  
  ;#fll_bw_hz: FLL loop filter bandwidth [Hz]
  Tracking_1C.fll_bw_hz=10.0;
@@@ -347,7 -347,7 +347,7 @@@ PVT.display_rate_ms=500
  ;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
  PVT.dump=false
  
--PVT.flag_rtcm_server=false
++PVT.flag_rtcm_server=true
  PVT.flag_rtcm_tty_port=false
  PVT.rtcm_dump_devname=/dev/pts/1
  
diff --cc src/algorithms/PVT/adapters/galileo_e1_pvt.cc
index 56b9e28,67fb380..af1272f
--- a/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
+++ b/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
@@@ -93,16 -91,16 +91,16 @@@ GalileoE1Pvt::~GalileoE1Pvt(
  
  void GalileoE1Pvt::connect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to connect internally
++    if(top_block) { /* top_block is not null */};
++    // Nothing to connect internally
      DLOG(INFO) << "nothing to connect internally";
  }
  
  
  void GalileoE1Pvt::disconnect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to disconnect
++    if(top_block) { /* top_block is not null */};
++    // Nothing to disconnect
  }
  
  gr::basic_block_sptr GalileoE1Pvt::get_left_block()
diff --cc src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
index a44f246,3ecb8c3..705515c
--- a/src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
+++ b/src/algorithms/PVT/adapters/gps_l1_ca_pvt.cc
@@@ -93,18 -91,18 +91,19 @@@ GpsL1CaPvt::~GpsL1CaPvt(
  
  void GpsL1CaPvt::connect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to connect internally
++    if(top_block) { /* top_block is not null */};
++    // Nothing to connect internally
      DLOG(INFO) << "nothing to connect internally";
  }
  
  
  void GpsL1CaPvt::disconnect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to disconnect
++    if(top_block) { /* top_block is not null */};
++    // Nothing to disconnect
  }
  
++
  gr::basic_block_sptr GpsL1CaPvt::get_left_block()
  {
      return pvt_;
diff --cc src/algorithms/PVT/adapters/hybrid_pvt.cc
index bbf5c55,89eea80..00bbe55
--- a/src/algorithms/PVT/adapters/hybrid_pvt.cc
+++ b/src/algorithms/PVT/adapters/hybrid_pvt.cc
@@@ -93,18 -91,18 +91,19 @@@ HybridPvt::~HybridPvt(
  
  void HybridPvt::connect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to connect internally
++    if(top_block) { /* top_block is not null */};
++    // Nothing to connect internally
      DLOG(INFO) << "nothing to connect internally";
  }
  
  
  void HybridPvt::disconnect(gr::top_block_sptr top_block)
  {
--	if(top_block) { /* top_block is not null */};
--	// Nothing to disconnect
++    if(top_block) { /* top_block is not null */};
++    // Nothing to disconnect
  }
  
++
  gr::basic_block_sptr HybridPvt::get_left_block()
  {
      return pvt_;
diff --cc src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
index d88682c,8ef7478..b461bad
--- a/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
@@@ -40,69 -40,62 +40,74 @@@
  
  using google::LogMessage;
  
- galileo_e1_pvt_cc_sptr galileo_e1_make_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename,
-         int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename,
 -galileo_e1_pvt_cc_sptr
 -galileo_e1_make_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname)
++
++galileo_e1_pvt_cc_sptr galileo_e1_make_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth,
++        bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename,
 +        std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname)
  {
-     return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, queue, dump, dump_filename, averaging_depth,
 -    return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, dump, dump_filename, averaging_depth, flag_averaging, output_rate_ms, display_rate_ms, flag_nmea_tty_port, nmea_dump_filename, nmea_dump_devname, flag_rtcm_server, flag_rtcm_tty_port, rtcm_dump_devname));
++    return galileo_e1_pvt_cc_sptr(new galileo_e1_pvt_cc(nchannels, dump, dump_filename, averaging_depth,
 +            flag_averaging, output_rate_ms, display_rate_ms, flag_nmea_tty_port, nmea_dump_filename, nmea_dump_devname,
 +            flag_rtcm_server, flag_rtcm_tty_port, rtcm_dump_devname));
  }
  
  
  void galileo_e1_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
  {
      try {
 -        if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
 -        {
 -            // ### Galileo EPHEMERIS ###
 -            std::shared_ptr<Galileo_Ephemeris> galileo_eph;
 -            galileo_eph=  boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
 -            // insert new ephemeris record
 -            DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
 -                      << ", GALILEO Week Number =" << galileo_eph->WN_5
 -                      << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
 -            // update/insert new ephemeris record to the global ephemeris map
 -            d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
 -        }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
 -        {
 -            // ### Galileo IONO ###
 -            std::shared_ptr<Galileo_Iono> galileo_iono;
 -            galileo_iono=  boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
 -            d_ls_pvt->galileo_iono=*galileo_iono;
 -            DLOG(INFO) << "New IONO record has arrived ";
 -        }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
 -        {
 -            // ### Galileo UTC MODEL ###
 -            std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
 -            galileo_utc_model=  boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
 -            d_ls_pvt->galileo_utc_model=*galileo_utc_model;
 -            DLOG(INFO) << "New UTC record has arrived ";
 -        }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
 -        {
 -            // ### Galileo Almanac ###
 -            std::shared_ptr<Galileo_Almanac> galileo_almanac;
 -            galileo_almanac=  boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
 -            // update/insert new ephemeris record to the global ephemeris map
 -            d_ls_pvt->galileo_almanac=*galileo_almanac;
 -            DLOG(INFO) << "New Galileo Almanac has arrived ";
 -        }else{
 -            LOG(WARNING) << "msg_handler_telemetry unknown object type!";
 -        }
 +            if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
 +                {
 +                    // ### Galileo EPHEMERIS ###
 +                    std::shared_ptr<Galileo_Ephemeris> galileo_eph;
 +                    galileo_eph = boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
 +                    // insert new ephemeris record
 +                    DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
 +                            << ", GALILEO Week Number =" << galileo_eph->WN_5
 +                            << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
 +                    // update/insert new ephemeris record to the global ephemeris map
 +                    d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN] = *galileo_eph;
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
 +                {
 +                    // ### Galileo IONO ###
 +                    std::shared_ptr<Galileo_Iono> galileo_iono;
 +                    galileo_iono = boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
 +                    d_ls_pvt->galileo_iono = *galileo_iono;
 +                    DLOG(INFO) << "New IONO record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
 +                {
 +                    // ### Galileo UTC MODEL ###
 +                    std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
 +                    galileo_utc_model = boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
 +                    d_ls_pvt->galileo_utc_model = *galileo_utc_model;
 +                    DLOG(INFO) << "New UTC record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
 +                {
 +                    // ### Galileo Almanac ###
 +                    std::shared_ptr<Galileo_Almanac> galileo_almanac;
 +                    galileo_almanac = boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
 +                    // update/insert new ephemeris record to the global ephemeris map
 +                    d_ls_pvt->galileo_almanac = *galileo_almanac;
 +                    DLOG(INFO) << "New Galileo Almanac has arrived ";
 +                }
++            else
++                {
++                    LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++                }
  
 -     }
 -     catch(boost::bad_any_cast& e)
 -     {
 -        LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
 -     }
 +    }
 +    catch(boost::bad_any_cast& e)
 +    {
-             DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
++            LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
 +    }
  }
 -galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
 -		                		                gr::block("galileo_e1_pvt_cc", gr::io_signature::make(nchannels, nchannels,  sizeof(Gnss_Synchro)),
 -		                		                        gr::io_signature::make(0, 0, sizeof(gr_complex)))
 +
 +
- galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename, int averaging_depth,
++galileo_e1_pvt_cc::galileo_e1_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth,
 +        bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname,
 +        bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
 +    gr::block("galileo_e1_pvt_cc", gr::io_signature::make(nchannels, nchannels,  sizeof(Gnss_Synchro)), gr::io_signature::make(0, 0, sizeof(gr_complex)))
  {
  
      d_output_rate_ms = output_rate_ms;
@@@ -115,8 -107,8 +119,7 @@@
  
      // GPS Ephemeris data message port in
      this->message_port_register_in(pmt::mp("telemetry"));
--    this->set_msg_handler(pmt::mp("telemetry"),
--            boost::bind(&galileo_e1_pvt_cc::msg_handler_telemetry, this, _1));
++    this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&galileo_e1_pvt_cc::msg_handler_telemetry, this, _1));
  
      //initialize kml_printer
      std::string kml_dump_filename;
@@@ -192,16 -184,16 +195,17 @@@ bool galileo_e1_pvt_cc::pseudoranges_pa
  void galileo_e1_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
  {
      // Print the current receiver status using std::cout every second
--	int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
--    if ( current_rx_seg!= d_last_status_print_seg)
--		{
--			d_last_status_print_seg = current_rx_seg;
--			std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
--			//DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
--			//          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
--		}
++    int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
++    if ( current_rx_seg != d_last_status_print_seg)
++        {
++            d_last_status_print_seg = current_rx_seg;
++            std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
++            //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
++            //          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
++        }
  }
  
++
  int galileo_e1_pvt_cc::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  __attribute__((unused)))
  {
diff --cc src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
index ed451ca,a72a9e6..9f0e624
--- a/src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/gps_l1_ca_pvt_cc.cc
@@@ -52,97 -52,94 +52,99 @@@ gps_l1_ca_make_pvt_cc(unsigned int ncha
  void gps_l1_ca_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
  {
      try {
 -       if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
 -       {
 -           // ### GPS EPHEMERIS ###
 -           std::shared_ptr<Gps_Ephemeris> gps_eph;
 -           gps_eph=  boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
 -           DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
 -                     << gps_eph->i_satellite_PRN << " (Block "
 -                     <<  gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
 -                     << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
 -                     << gps_eph->i_GPS_week;
 -           // update/insert new ephemeris record to the global ephemeris map
 -           d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
 -       }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
 -       {
 -           // ### GPS IONO ###
 -           std::shared_ptr<Gps_Iono> gps_iono;
 -           gps_iono=  boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
 -           d_ls_pvt->gps_iono=*gps_iono;
 -           DLOG(INFO) << "New IONO record has arrived ";
 -       }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
 -       {
 -           // ### GPS UTC MODEL ###
 -           std::shared_ptr<Gps_Utc_Model> gps_utc_model;
 -           gps_utc_model=  boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
 -           d_ls_pvt->gps_utc_model=*gps_utc_model;
 -           DLOG(INFO) << "New UTC record has arrived ";
 -       }else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Ionosphere_Correction>) )
 -       {
 -           // ### SBAS IONO ###
 -           std::shared_ptr<Sbas_Ionosphere_Correction> sbas_iono;
 -           sbas_iono=  boost::any_cast<std::shared_ptr<Sbas_Ionosphere_Correction>>(pmt::any_ref(msg));
 -           d_ls_pvt->sbas_iono=*sbas_iono;
 -           DLOG(INFO) << "New SBAS IONO record has arrived ";
 -       }
 -
 -       //TODO: add SBAS correction maps here
 -       //d_ls_pvt->sbas_sat_corr_map = global_sbas_sat_corr_map.get_map_copy();
 -       //d_ls_pvt->sbas_ephemeris_map = global_sbas_ephemeris_map.get_map_copy();
 -
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Raw_Msg>) )
 -              {
 -           std::shared_ptr<Sbas_Raw_Msg> sbas_raw_msg_ptr;
 -           sbas_raw_msg_ptr=  boost::any_cast<std::shared_ptr<Sbas_Raw_Msg>>(pmt::any_ref(msg));
 -           Sbas_Raw_Msg sbas_raw_msg=*sbas_raw_msg_ptr;
 -           // read SBAS raw messages directly from queue and write them into rinex file
 -           // create the header of not yet done
 -           if(!b_rinex_sbs_header_writen)
 -               {
 -                   rp->rinex_sbs_header(rp->sbsFile);
 -                   b_rinex_sbs_header_writen = true;
 -               }
 -
 -           // Define the RX time of the SBAS message by using the GPS time.
 -           // It has only an effect if there has not been yet a SBAS MT12 available
 -           // when the message was received.
 -           if(sbas_raw_msg.get_rx_time_obj().is_related() == false
 -                   && gnss_pseudoranges_map.size() > 0
 -                   && d_ls_pvt->gps_ephemeris_map.size() > 0)
 -               {
 -                   // doesn't matter which channel/satellite we choose
 -                   Gnss_Synchro gs = gnss_pseudoranges_map.begin()->second;
 -                   Gps_Ephemeris eph = d_ls_pvt->gps_ephemeris_map.begin()->second;
 -
 -                   double relative_rx_time = gs.Tracking_timestamp_secs;
 -                   int gps_week = eph.i_GPS_week;
 -                   double gps_sec = gs.d_TOW_at_current_symbol;
 -
 -                   Sbas_Time_Relation time_rel(relative_rx_time, gps_week, gps_sec);
 -                   sbas_raw_msg.relate(time_rel);
 -               }
 -
 -           // send the message to the rinex logger if it has a valid GPS time stamp
 -           if(sbas_raw_msg.get_rx_time_obj().is_related())
 -               {
 -                   rp->log_rinex_sbs(rp->sbsFile, sbas_raw_msg);
 -               }
 -          }else{
 -              LOG(WARNING) << "msg_handler_telemetry unknown object type!";
 -          }
 +            if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
 +                {
 +                    // ### GPS EPHEMERIS ###
 +                    std::shared_ptr<Gps_Ephemeris> gps_eph;
 +                    gps_eph = boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
 +                    DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
 +                            << gps_eph->i_satellite_PRN << " (Block "
 +                            <<  gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
 +                            << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
 +                            << gps_eph->i_GPS_week;
 +                    // update/insert new ephemeris record to the global ephemeris map
 +                    d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN] = *gps_eph;
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
 +                {
 +                    // ### GPS IONO ###
 +                    std::shared_ptr<Gps_Iono> gps_iono;
 +                    gps_iono = boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
 +                    d_ls_pvt->gps_iono = *gps_iono;
 +                    DLOG(INFO) << "New IONO record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
 +                {
 +                    // ### GPS UTC MODEL ###
 +                    std::shared_ptr<Gps_Utc_Model> gps_utc_model;
 +                    gps_utc_model = boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
 +                    d_ls_pvt->gps_utc_model = *gps_utc_model;
 +                    DLOG(INFO) << "New UTC record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Ionosphere_Correction>) )
 +                {
 +                    // ### SBAS IONO ###
 +                    std::shared_ptr<Sbas_Ionosphere_Correction> sbas_iono;
 +                    sbas_iono = boost::any_cast<std::shared_ptr<Sbas_Ionosphere_Correction>>(pmt::any_ref(msg));
 +                    d_ls_pvt->sbas_iono = *sbas_iono;
 +                    DLOG(INFO) << "New SBAS IONO record has arrived ";
 +                }
 +
 +            //TODO: add SBAS correction maps here
 +            //d_ls_pvt->sbas_sat_corr_map = global_sbas_sat_corr_map.get_map_copy();
 +            //d_ls_pvt->sbas_ephemeris_map = global_sbas_ephemeris_map.get_map_copy();
 +
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Sbas_Raw_Msg>) )
 +                {
 +                    std::shared_ptr<Sbas_Raw_Msg> sbas_raw_msg_ptr;
 +                    sbas_raw_msg_ptr = boost::any_cast<std::shared_ptr<Sbas_Raw_Msg>>(pmt::any_ref(msg));
 +                    Sbas_Raw_Msg sbas_raw_msg = *sbas_raw_msg_ptr;
 +                    // read SBAS raw messages directly from queue and write them into rinex file
 +                    // create the header of not yet done
 +                    if(!b_rinex_sbs_header_writen)
 +                        {
 +                            rp->rinex_sbs_header(rp->sbsFile);
 +                            b_rinex_sbs_header_writen = true;
 +                        }
  
 +                    // Define the RX time of the SBAS message by using the GPS time.
 +                    // It has only an effect if there has not been yet a SBAS MT12 available
 +                    // when the message was received.
 +                    if(sbas_raw_msg.get_rx_time_obj().is_related() == false
 +                            && gnss_pseudoranges_map.size() > 0
 +                            && d_ls_pvt->gps_ephemeris_map.size() > 0)
 +                        {
 +                            // doesn't matter which channel/satellite we choose
 +                            Gnss_Synchro gs = gnss_pseudoranges_map.begin()->second;
 +                            Gps_Ephemeris eph = d_ls_pvt->gps_ephemeris_map.begin()->second;
 +
 +                            double relative_rx_time = gs.Tracking_timestamp_secs;
 +                            int gps_week = eph.i_GPS_week;
 +                            double gps_sec = gs.d_TOW_at_current_symbol;
 +
 +                            Sbas_Time_Relation time_rel(relative_rx_time, gps_week, gps_sec);
 +                            sbas_raw_msg.relate(time_rel);
 +                        }
 +
 +                    // send the message to the rinex logger if it has a valid GPS time stamp
 +                    if(sbas_raw_msg.get_rx_time_obj().is_related())
 +                        {
 +                            rp->log_rinex_sbs(rp->sbsFile, sbas_raw_msg);
 +                        }
 +                }
- 
++            else
++                {
++                    LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++                }
      }
      catch(boost::bad_any_cast& e)
      {
-             DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
 -       LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
++            LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
      }
  }
  
 +
  gps_l1_ca_pvt_cc::gps_l1_ca_pvt_cc(unsigned int nchannels,
-         boost::shared_ptr<gr::msg_queue> queue,
          bool dump, std::string dump_filename,
          int averaging_depth,
          bool flag_averaging,
@@@ -238,19 -234,19 +239,21 @@@ bool pseudoranges_pairCompare_min(cons
      return (a.second.Pseudorange_m) < (b.second.Pseudorange_m);
  }
  
++
  void gps_l1_ca_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
  {
      // Print the current receiver status using std::cout every second
 -	int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
 +    int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
      if ( current_rx_seg!= d_last_status_print_seg)
 -		{
 -			d_last_status_print_seg = current_rx_seg;
 -			std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
 -			//DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
 -			//          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
 -		}
 +        {
 +            d_last_status_print_seg = current_rx_seg;
-             std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
++            std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
 +            //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
 +            //          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
 +        }
  }
  
++
  int gps_l1_ca_pvt_cc::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 __attribute__((unused)))
  {
diff --cc src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
index 4a38fd0,8e4f196..2a47058
--- a/src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/hybrid_pvt_cc.cc
@@@ -47,96 -47,94 +47,100 @@@ hybrid_make_pvt_cc(unsigned int nchanne
  }
  
  
--
  void hybrid_pvt_cc::msg_handler_telemetry(pmt::pmt_t msg)
  {
      try {
 -       if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
 -       {
 -           // ### GPS EPHEMERIS ###
 -           std::shared_ptr<Gps_Ephemeris> gps_eph;
 -           gps_eph=  boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
 -           DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
 -                     << gps_eph->i_satellite_PRN << " (Block "
 -                     <<  gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
 -                     << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
 -                     << gps_eph->i_GPS_week;
 -           // update/insert new ephemeris record to the global ephemeris map
 -           d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
 -       }
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
 -       {
 -           // ### GPS IONO ###
 -           std::shared_ptr<Gps_Iono> gps_iono;
 -           gps_iono=  boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
 -           d_ls_pvt->gps_iono=*gps_iono;
 -           DLOG(INFO) << "New IONO record has arrived ";
 -       }
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
 -       {
 -           // ### GPS UTC MODEL ###
 -           std::shared_ptr<Gps_Utc_Model> gps_utc_model;
 -           gps_utc_model=  boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
 -           d_ls_pvt->gps_utc_model=*gps_utc_model;
 -           DLOG(INFO) << "New UTC record has arrived ";
 -       }
 -       if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
 -       {
 -           // ### Galileo EPHEMERIS ###
 -           std::shared_ptr<Galileo_Ephemeris> galileo_eph;
 -           galileo_eph=  boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
 -           // insert new ephemeris record
 -           DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
 -                     << ", GALILEO Week Number =" << galileo_eph->WN_5
 -                     << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
 -           // update/insert new ephemeris record to the global ephemeris map
 -           d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
 -       }
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
 -       {
 -           // ### Galileo IONO ###
 -           std::shared_ptr<Galileo_Iono> galileo_iono;
 -           galileo_iono=  boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
 -           d_ls_pvt->galileo_iono=*galileo_iono;
 -           DLOG(INFO) << "New IONO record has arrived ";
 -       }
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
 -       {
 -           // ### Galileo UTC MODEL ###
 -           std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
 -           galileo_utc_model=  boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
 -           d_ls_pvt->galileo_utc_model=*galileo_utc_model;
 -           DLOG(INFO) << "New UTC record has arrived ";
 -       }
 -       else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
 -       {
 -           // ### Galileo Almanac ###
 -           std::shared_ptr<Galileo_Almanac> galileo_almanac;
 -           galileo_almanac=  boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
 -           // update/insert new ephemeris record to the global ephemeris map
 -           d_ls_pvt->galileo_almanac=*galileo_almanac;
 -           DLOG(INFO) << "New Galileo Almanac has arrived ";
 -       }else{
 -           LOG(WARNING) << "msg_handler_telemetry unknown object type!";
 -       }
 +            if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Ephemeris>) )
 +                {
 +                    // ### GPS EPHEMERIS ###
 +                    std::shared_ptr<Gps_Ephemeris> gps_eph;
-                     gps_eph = boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
++                    gps_eph=  boost::any_cast<std::shared_ptr<Gps_Ephemeris>>(pmt::any_ref(msg));
 +                    DLOG(INFO) << "Ephemeris record has arrived from SAT ID "
 +                            << gps_eph->i_satellite_PRN << " (Block "
 +                            <<  gps_eph->satelliteBlock[gps_eph->i_satellite_PRN] << ")"
 +                            << "inserted with Toe="<< gps_eph->d_Toe<<" and GPS Week="
 +                            << gps_eph->i_GPS_week;
 +                    // update/insert new ephemeris record to the global ephemeris map
-                     d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN] = *gps_eph;
++                    d_ls_pvt->gps_ephemeris_map[gps_eph->i_satellite_PRN]=*gps_eph;
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Iono>) )
 +                {
 +                    // ### GPS IONO ###
 +                    std::shared_ptr<Gps_Iono> gps_iono;
-                     gps_iono = boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
-                     d_ls_pvt->gps_iono = *gps_iono;
++                    gps_iono=  boost::any_cast<std::shared_ptr<Gps_Iono>>(pmt::any_ref(msg));
++                    d_ls_pvt->gps_iono=*gps_iono;
 +                    DLOG(INFO) << "New IONO record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Gps_Utc_Model>) )
 +                {
 +                    // ### GPS UTC MODEL ###
 +                    std::shared_ptr<Gps_Utc_Model> gps_utc_model;
-                     gps_utc_model = boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
-                     d_ls_pvt->gps_utc_model = *gps_utc_model;
++                    gps_utc_model=  boost::any_cast<std::shared_ptr<Gps_Utc_Model>>(pmt::any_ref(msg));
++                    d_ls_pvt->gps_utc_model=*gps_utc_model;
 +                    DLOG(INFO) << "New UTC record has arrived ";
 +                }
++
 +            if( pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Ephemeris>) )
 +                {
 +                    // ### Galileo EPHEMERIS ###
 +                    std::shared_ptr<Galileo_Ephemeris> galileo_eph;
-                     galileo_eph = boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
++                    galileo_eph=  boost::any_cast<std::shared_ptr<Galileo_Ephemeris>>(pmt::any_ref(msg));
 +                    // insert new ephemeris record
 +                    DLOG(INFO) << "Galileo New Ephemeris record inserted in global map with TOW =" << galileo_eph->TOW_5
 +                            << ", GALILEO Week Number =" << galileo_eph->WN_5
 +                            << " and Ephemeris IOD = " << galileo_eph->IOD_ephemeris;
 +                    // update/insert new ephemeris record to the global ephemeris map
-                     d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN] = *galileo_eph;
++                    d_ls_pvt->galileo_ephemeris_map[galileo_eph->i_satellite_PRN]=*galileo_eph;
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Iono>) )
 +                {
 +                    // ### Galileo IONO ###
 +                    std::shared_ptr<Galileo_Iono> galileo_iono;
-                     galileo_iono = boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
-                     d_ls_pvt->galileo_iono = *galileo_iono;
++                    galileo_iono=  boost::any_cast<std::shared_ptr<Galileo_Iono>>(pmt::any_ref(msg));
++                    d_ls_pvt->galileo_iono=*galileo_iono;
 +                    DLOG(INFO) << "New IONO record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Utc_Model>) )
 +                {
 +                    // ### Galileo UTC MODEL ###
 +                    std::shared_ptr<Galileo_Utc_Model> galileo_utc_model;
-                     galileo_utc_model = boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
-                     d_ls_pvt->galileo_utc_model = *galileo_utc_model;
++                    galileo_utc_model=  boost::any_cast<std::shared_ptr<Galileo_Utc_Model>>(pmt::any_ref(msg));
++                    d_ls_pvt->galileo_utc_model=*galileo_utc_model;
 +                    DLOG(INFO) << "New UTC record has arrived ";
 +                }
 +            else if (pmt::any_ref(msg).type() == typeid(std::shared_ptr<Galileo_Almanac>) )
 +                {
 +                    // ### Galileo Almanac ###
 +                    std::shared_ptr<Galileo_Almanac> galileo_almanac;
-                     galileo_almanac = boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
++                    galileo_almanac=  boost::any_cast<std::shared_ptr<Galileo_Almanac>>(pmt::any_ref(msg));
 +                    // update/insert new ephemeris record to the global ephemeris map
-                     d_ls_pvt->galileo_almanac = *galileo_almanac;
++                    d_ls_pvt->galileo_almanac=*galileo_almanac;
 +                    DLOG(INFO) << "New Galileo Almanac has arrived ";
 +                }
++            else
++                {
++                    LOG(WARNING) << "msg_handler_telemetry unknown object type!";
++                }
  
      }
      catch(boost::bad_any_cast& e)
      {
-             DLOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
 -       LOG(WARNING) << "msg_handler_telemetry Bad any cast!";
++            LOG(WARNING) << "msg_handler_telemetry Bad any cast!";
      }
  }
  
  
- hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, boost::shared_ptr<gr::msg_queue> queue, bool dump, std::string dump_filename,
 -hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename, int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port, std::string nmea_dump_filename, std::string nmea_dump_devname, bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
 -		                		                        gr::block("hybrid_pvt_cc", gr::io_signature::make(nchannels, nchannels,  sizeof(Gnss_Synchro)),
 -		                		                        gr::io_signature::make(0, 0, sizeof(gr_complex)))
 -{
+ 
++hybrid_pvt_cc::hybrid_pvt_cc(unsigned int nchannels, bool dump, std::string dump_filename,
 +        int averaging_depth, bool flag_averaging, int output_rate_ms, int display_rate_ms, bool flag_nmea_tty_port,
 +        std::string nmea_dump_filename, std::string nmea_dump_devname,
 +        bool flag_rtcm_server, bool flag_rtcm_tty_port, std::string rtcm_dump_devname) :
 +                gr::block("hybrid_pvt_cc", gr::io_signature::make(nchannels, nchannels,  sizeof(Gnss_Synchro)),
-                         gr::io_signature::make(0, 0, sizeof(gr_complex)))
- {
++                gr::io_signature::make(0, 0, sizeof(gr_complex)))
 +
++{
      d_output_rate_ms = output_rate_ms;
      d_display_rate_ms = display_rate_ms;
-     d_queue = queue;
      d_dump = dump;
      d_nchannels = nchannels;
      d_dump_filename = dump_filename;
@@@ -144,8 -142,8 +148,7 @@@
  
      // GPS Ephemeris data message port in
      this->message_port_register_in(pmt::mp("telemetry"));
--    this->set_msg_handler(pmt::mp("telemetry"),
--            boost::bind(&hybrid_pvt_cc::msg_handler_telemetry, this, _1));
++    this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&hybrid_pvt_cc::msg_handler_telemetry, this, _1));
  
      //initialize kml_printer
      std::string kml_dump_filename;
@@@ -183,7 -181,7 +186,7 @@@
      b_rinex_header_updated = false;
      rp = std::make_shared<Rinex_Printer>();
  
--    d_last_status_print_seg=0;
++    d_last_status_print_seg = 0;
  
      // ############# ENABLE DATA FILE LOG #################
      if (d_dump == true)
@@@ -220,16 -218,16 +223,17 @@@ bool hybrid_pvt_cc::pseudoranges_pairCo
  void hybrid_pvt_cc::print_receiver_status(Gnss_Synchro** channels_synchronization_data)
  {
      // Print the current receiver status using std::cout every second
--	int current_rx_seg=floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
--    if ( current_rx_seg!= d_last_status_print_seg)
--		{
--			d_last_status_print_seg = current_rx_seg;
--			std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl<< std::flush;
--			//DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
--			//          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
--		}
++    int current_rx_seg = floor(channels_synchronization_data[0][0].Tracking_timestamp_secs);
++    if ( current_rx_seg != d_last_status_print_seg)
++        {
++            d_last_status_print_seg = current_rx_seg;
++            std::cout << "Current input signal time = " << current_rx_seg << " [s]" << std::endl << std::flush;
++            //DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
++            //          << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
++        }
  }
  
++
  int hybrid_pvt_cc::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 __attribute__((unused)))
  {
diff --cc src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
index a3958dc,a3958dc..8b670ab
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet2_16ic.h
@@@ -44,7 -44,7 +44,7 @@@
  #ifdef LV_HAVE_GENERIC
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_generic(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -74,7 -74,7 +74,7 @@@
  #ifdef LV_HAVE_SSE3
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -103,7 -103,7 +103,7 @@@
  #ifdef LV_HAVE_SSE3
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_sse3(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -133,7 -133,7 +133,7 @@@
  #ifdef LV_HAVE_SSE4_1
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_sse4_1(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -163,7 -163,7 +163,7 @@@
  #ifdef LV_HAVE_SSE4_1
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_sse4_1(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -193,7 -193,7 +193,7 @@@
  #ifdef LV_HAVE_AVX
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_u_avx(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -223,7 -223,7 +223,7 @@@
  #ifdef LV_HAVE_AVX
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_a_avx(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
@@@ -253,7 -253,7 +253,7 @@@
  #ifdef LV_HAVE_NEON
  static inline void volk_gnsssdr_16ic_resamplerxnpuppet2_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
++    float code_phase_step_chips = -0.6;
      int code_length_chips = 2046;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
diff --cc src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
index 1b50d2e,1b50d2e..dc310f9
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h
@@@ -41,11 -41,11 +41,13 @@@
  #include <volk_gnsssdr/volk_gnsssdr.h>
  #include <string.h>
  
++
++
  #ifdef LV_HAVE_GENERIC
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_generic(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -74,8 -74,8 +76,8 @@@
  #ifdef LV_HAVE_SSE3
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_sse3(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -103,8 -103,8 +105,8 @@@
  #ifdef LV_HAVE_SSE3
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_sse3(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -133,8 -133,8 +135,8 @@@
  #ifdef LV_HAVE_SSE4_1
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_sse4_1(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -162,8 -162,8 +164,8 @@@
  #ifdef LV_HAVE_SSE4_1
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_sse4_1(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -191,8 -191,8 +193,8 @@@
  #ifdef LV_HAVE_AVX
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_a_avx(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -220,8 -220,8 +222,8 @@@
  #ifdef LV_HAVE_AVX
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_avx(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
@@@ -249,8 -249,8 +251,8 @@@
  #ifdef LV_HAVE_NEON
  static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_neon(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points)
  {
--    float code_phase_step_chips = 0.6;
--    int code_length_chips = 2046;
++    float code_phase_step_chips = -0.6;
++    int code_length_chips = 1023;
      int num_out_vectors = 3;
      float rem_code_phase_chips = -0.234;
  
diff --cc src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
index abf444d,b8ba2fe..8203e94
--- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
+++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc
@@@ -250,22 -248,20 +248,21 @@@ void galileo_e1b_telemetry_decoder_cc::
      if (d_nav.have_new_ephemeris() == true)
          {
              // get object for this SV (mandatory)
-             std::shared_ptr<Galileo_Ephemeris> tmp_obj= std::make_shared<Galileo_Ephemeris>(d_nav.get_ephemeris());
-             //*tmp_obj = d_nav.get_ephemeris();//notice that the read operation will clear the valid flag
 -            std::shared_ptr<Galileo_Ephemeris> tmp_obj= std::make_shared<Galileo_Ephemeris>( d_nav.get_ephemeris());
++            std::shared_ptr<Galileo_Ephemeris> tmp_obj = std::make_shared<Galileo_Ephemeris>(d_nav.get_ephemeris());
++
              this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
+ 
          }
      if (d_nav.have_new_iono_and_GST() == true)
          {
              // get object for this SV (mandatory)
--            std::shared_ptr<Galileo_Iono> tmp_obj= std::make_shared<Galileo_Iono>(d_nav.get_iono());
-             //*tmp_obj = d_nav.get_iono(); //notice that the read operation will clear the valid flag
++            std::shared_ptr<Galileo_Iono> tmp_obj = std::make_shared<Galileo_Iono>(d_nav.get_iono());
              this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
          }
      if (d_nav.have_new_utc_model() == true)
          {
              // get object for this SV (mandatory)
--            std::shared_ptr<Galileo_Utc_Model> tmp_obj= std::make_shared<Galileo_Utc_Model>(d_nav.get_utc_model());
-             //*tmp_obj = d_nav.get_utc_model(); //notice that the read operation will clear the valid flag
++            std::shared_ptr<Galileo_Utc_Model> tmp_obj = std::make_shared<Galileo_Utc_Model>(d_nav.get_utc_model());
              this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
          }
      if (d_nav.have_new_almanac() == true)
@@@ -399,7 -394,7 +395,9 @@@ int galileo_e1b_telemetry_decoder_cc::g
                          }
                  }
          }
++
      consume_each(1); //one by one
++
      // UPDATE GNSS SYNCHRO DATA
      Gnss_Synchro current_synchro_data; //structure to save the synchronization information and send the output object to the next block
      //1. Copy the current tracking output
@@@ -443,7 -438,7 +441,6 @@@
                      d_TOW_at_current_symbol = d_TOW_at_current_symbol + GALILEO_E1_CODE_PERIOD;// + GALILEO_INAV_PAGE_PART_SYMBOLS*GALILEO_E1_CODE_PERIOD;
  
                  }
--
          }
      else //if there is not a new preamble, we define the TOW of the current symbol
          {
diff --cc src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
index 2b423a9,a565201..660b2f4
--- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
+++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
@@@ -273,42 -271,39 +271,39 @@@ int gps_l1_ca_telemetry_decoder_cc::gen
                              d_GPS_FSM.d_preamble_time_ms = d_preamble_time_seconds * 1000.0;
                              d_GPS_FSM.Event_gps_word_valid();
                              // send TLM data to PVT using asynchronous message queues
 -                            if (d_GPS_FSM.d_flag_new_subframe==true)
 -                            {
 -                                switch (d_GPS_FSM.d_subframe_ID)
 +                            if (d_GPS_FSM.d_flag_new_subframe == true)
                                  {
 -                                case 3: //we have a new set of ephemeris data for the current SV
 -                                    if (d_GPS_FSM.d_nav.satellite_validation() == true)
 -                                        {
 -                                            // get ephemeris object for this SV (mandatory)
 -                                            std::shared_ptr<Gps_Ephemeris> tmp_obj= std::make_shared<Gps_Ephemeris>(d_GPS_FSM.d_nav.get_ephemeris());
 -                                            this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 -                                        }
 -                                    break;
 -                                case 4: // Possible IONOSPHERE and UTC model update (page 18)
 -                                    if (d_GPS_FSM.d_nav.flag_iono_valid == true)
 -                                        {
 -                                            std::shared_ptr<Gps_Iono> tmp_obj= std::make_shared<Gps_Iono>(d_GPS_FSM.d_nav.get_iono());
 -                                            this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 -                                        }
 -                                    if (d_GPS_FSM.d_nav.flag_utc_model_valid == true)
 -                                        {
 -                                            std::shared_ptr<Gps_Utc_Model> tmp_obj= std::make_shared<Gps_Utc_Model>(d_GPS_FSM.d_nav.get_utc_model());
 -                                            this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 -                                        }
 -                                    break;
 -                                case 5:
 -                                    // get almanac (if available)
 -                                    //TODO: implement almanac reader in navigation_message
 -                                    break;
 -                                default:
 -                                    break;
 +                                    switch (d_GPS_FSM.d_subframe_ID)
 +                                    {
 +                                    case 3: //we have a new set of ephemeris data for the current SV
 +                                        if (d_GPS_FSM.d_nav.satellite_validation() == true)
 +                                            {
 +                                                // get ephemeris object for this SV (mandatory)
 +                                                std::shared_ptr<Gps_Ephemeris> tmp_obj = std::make_shared<Gps_Ephemeris>(d_GPS_FSM.d_nav.get_ephemeris());
-                                                 // *tmp_obj = d_GPS_FSM.d_nav.get_ephemeris();
 +                                                this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 +                                            }
 +                                        break;
 +                                    case 4: // Possible IONOSPHERE and UTC model update (page 18)
 +                                        if (d_GPS_FSM.d_nav.flag_iono_valid == true)
 +                                            {
 +                                                std::shared_ptr<Gps_Iono> tmp_obj = std::make_shared<Gps_Iono>( d_GPS_FSM.d_nav.get_iono());
-                                                 // *tmp_obj = d_GPS_FSM.d_nav.get_iono(); //notice that the read operation will clear the valid flag
 +                                                this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 +                                            }
 +                                        if (d_GPS_FSM.d_nav.flag_utc_model_valid == true)
 +                                            {
 +                                                std::shared_ptr<Gps_Utc_Model> tmp_obj = std::make_shared<Gps_Utc_Model>(d_GPS_FSM.d_nav.get_utc_model());
-                                                 //*tmp_obj =  d_GPS_FSM.d_nav.get_utc_model(); //notice that the read operation will clear the valid flag
 +                                                this->message_port_pub(pmt::mp("telemetry"), pmt::make_any(tmp_obj));
 +                                            }
 +                                        break;
 +                                    case 5:
 +                                        // get almanac (if available)
 +                                        //TODO: implement almanac reader in navigation_message
 +                                        break;
 +                                    default:
 +                                        break;
 +                                    }
 +                                    d_GPS_FSM.clear_flag_new_subframe();
                                  }
 -                                d_GPS_FSM.clear_flag_new_subframe();
 -                            }
  
                              d_flag_parity = true;
                          }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git



More information about the pkg-hamradio-commits mailing list