[hamradio-commits] [gnss-sdr] 196/236: Channel internal message queue is replaced by the asynchronous GNURadio message system. Removing the deprecated channel internal queue and its references. Some tests that are using the old channel queue are disabled in this version

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 0f80ce0159944b0749d4d59353546be362bcc184
Author: Javier Arribas <javiarribas at gmail.com>
Date:   Fri Apr 15 16:33:41 2016 +0200

    Channel internal message queue is replaced by the asynchronous GNURadio
    message system. Removing the deprecated channel internal queue and its
    references. Some tests that are using the old channel queue are disabled
    in this version
---
 .../galileo_e1_pcps_8ms_ambiguous_acquisition.cc   |  13 --
 .../galileo_e1_pcps_8ms_ambiguous_acquisition.h    |   6 -
 .../galileo_e1_pcps_ambiguous_acquisition.cc       |  11 --
 .../galileo_e1_pcps_ambiguous_acquisition.h        |   6 -
 ...galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc |  14 --
 .../galileo_e1_pcps_cccwsr_ambiguous_acquisition.h |   6 -
 ...ileo_e1_pcps_quicksync_ambiguous_acquisition.cc |  14 --
 ...lileo_e1_pcps_quicksync_ambiguous_acquisition.h |   6 -
 .../galileo_e1_pcps_tong_ambiguous_acquisition.cc  |  13 --
 .../galileo_e1_pcps_tong_ambiguous_acquisition.h   |   6 -
 .../galileo_e5a_noncoherent_iq_acquisition_caf.cc  |  12 --
 .../galileo_e5a_noncoherent_iq_acquisition_caf.h   |   6 -
 .../adapters/gps_l1_ca_pcps_acquisition.cc         |  18 ---
 .../adapters/gps_l1_ca_pcps_acquisition.h          |   6 -
 .../gps_l1_ca_pcps_acquisition_fine_doppler.cc     |   9 --
 .../gps_l1_ca_pcps_acquisition_fine_doppler.h      |   6 -
 .../gps_l1_ca_pcps_assisted_acquisition.cc         |   9 --
 .../adapters/gps_l1_ca_pcps_assisted_acquisition.h |   6 -
 .../gps_l1_ca_pcps_multithread_acquisition.cc      |  12 --
 .../gps_l1_ca_pcps_multithread_acquisition.h       |   6 -
 .../adapters/gps_l1_ca_pcps_opencl_acquisition.cc  |  12 --
 .../adapters/gps_l1_ca_pcps_opencl_acquisition.h   |   6 -
 .../gps_l1_ca_pcps_quicksync_acquisition.cc        |  12 --
 .../gps_l1_ca_pcps_quicksync_acquisition.h         |   6 -
 .../adapters/gps_l1_ca_pcps_tong_acquisition.cc    |  12 --
 .../adapters/gps_l1_ca_pcps_tong_acquisition.h     |   6 -
 .../adapters/gps_l2_m_pcps_acquisition.cc          |  12 --
 .../adapters/gps_l2_m_pcps_acquisition.h           |   6 -
 ...alileo_e5a_noncoherent_iq_acquisition_caf_cc.cc |   5 +-
 ...galileo_e5a_noncoherent_iq_acquisition_caf_cc.h |  10 --
 .../galileo_pcps_8ms_acquisition_cc.cc             |   5 +-
 .../galileo_pcps_8ms_acquisition_cc.h              |  11 --
 .../gnuradio_blocks/pcps_acquisition_cc.cc         |  11 +-
 .../gnuradio_blocks/pcps_acquisition_cc.h          |  11 --
 .../pcps_acquisition_fine_doppler_cc.cc            |   5 +-
 .../pcps_acquisition_fine_doppler_cc.h             |  10 --
 .../gnuradio_blocks/pcps_acquisition_sc.cc         |   5 +-
 .../gnuradio_blocks/pcps_acquisition_sc.h          |   9 --
 .../pcps_assisted_acquisition_cc.cc                |   5 +-
 .../gnuradio_blocks/pcps_assisted_acquisition_cc.h |   9 --
 .../gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc  |   5 +-
 .../gnuradio_blocks/pcps_cccwsr_acquisition_cc.h   |  10 --
 .../pcps_multithread_acquisition_cc.cc             |   5 +-
 .../pcps_multithread_acquisition_cc.h              |  10 --
 .../gnuradio_blocks/pcps_opencl_acquisition_cc.cc  |   4 +-
 .../gnuradio_blocks/pcps_opencl_acquisition_cc.h   |  11 --
 .../pcps_quicksync_acquisition_cc.cc               |   5 +-
 .../pcps_quicksync_acquisition_cc.h                |  10 --
 .../gnuradio_blocks/pcps_tong_acquisition_cc.cc    |   5 +-
 .../gnuradio_blocks/pcps_tong_acquisition_cc.h     |  10 --
 src/algorithms/channel/adapters/channel.cc         | 163 +++++++--------------
 src/algorithms/channel/adapters/channel.h          |  25 ++--
 src/algorithms/channel/libs/channel_fsm.cc         |  16 +-
 src/algorithms/channel/libs/channel_fsm.h          |   1 +
 .../libs/gps_l1_ca_subframe_fsm.cc                 |   1 -
 .../libs/gps_l1_ca_subframe_fsm.h                  |   2 -
 .../adapters/galileo_e1_dll_pll_veml_tracking.cc   |  12 --
 .../adapters/galileo_e1_dll_pll_veml_tracking.h    |   5 -
 .../adapters/galileo_e1_tcp_connector_tracking.cc  |  12 --
 .../adapters/galileo_e1_tcp_connector_tracking.h   |   5 -
 .../adapters/galileo_e5a_dll_pll_tracking.cc       |  10 --
 .../adapters/galileo_e5a_dll_pll_tracking.h        |   5 -
 .../adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc   |  23 ---
 .../adapters/gps_l1_ca_dll_pll_c_aid_tracking.h    |   5 -
 .../adapters/gps_l1_ca_dll_pll_tracking.cc         |  12 --
 .../tracking/adapters/gps_l1_ca_dll_pll_tracking.h |   5 -
 .../adapters/gps_l1_ca_dll_pll_tracking_gpu.cc     |  11 --
 .../adapters/gps_l1_ca_dll_pll_tracking_gpu.h      |   5 -
 .../adapters/gps_l1_ca_tcp_connector_tracking.cc   |  10 --
 .../adapters/gps_l1_ca_tcp_connector_tracking.h    |   5 -
 .../tracking/adapters/gps_l2_m_dll_pll_tracking.cc |  10 --
 .../tracking/adapters/gps_l2_m_dll_pll_tracking.h  |   6 -
 .../galileo_e1_dll_pll_veml_tracking_cc.cc         |  23 ++-
 .../galileo_e1_dll_pll_veml_tracking_cc.h          |   2 -
 .../galileo_e1_tcp_connector_tracking_cc.cc        |   7 -
 .../galileo_e1_tcp_connector_tracking_cc.h         |   2 -
 .../galileo_e5a_dll_pll_tracking_cc.cc             |   8 -
 .../galileo_e5a_dll_pll_tracking_cc.h              |   2 -
 .../gps_l1_ca_dll_pll_c_aid_tracking_cc.cc         |  21 ++-
 .../gps_l1_ca_dll_pll_c_aid_tracking_cc.h          |   2 -
 .../gps_l1_ca_dll_pll_c_aid_tracking_sc.cc         |   7 -
 .../gps_l1_ca_dll_pll_c_aid_tracking_sc.h          |   2 -
 .../gps_l1_ca_dll_pll_tracking_cc.cc               |  22 ++-
 .../gps_l1_ca_dll_pll_tracking_cc.h                |   2 -
 .../gps_l1_ca_dll_pll_tracking_gpu_cc.cc           |   5 -
 .../gps_l1_ca_dll_pll_tracking_gpu_cc.h            |   2 -
 .../gps_l1_ca_tcp_connector_tracking_cc.cc         |   7 -
 .../gps_l1_ca_tcp_connector_tracking_cc.h          |   2 -
 .../gps_l2_m_dll_pll_tracking_cc.cc                |   7 -
 .../gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h |   2 -
 src/core/interfaces/acquisition_interface.h        |   1 -
 src/core/interfaces/channel_interface.h            |   3 -
 src/core/interfaces/tracking_interface.h           |   1 -
 src/core/receiver/gnss_flowgraph.cc                |  29 ++--
 src/core/receiver/gnss_flowgraph.h                 |   1 -
 .../galileo_e1_dll_pll_veml_tracking_test.cc       |  10 --
 ...pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc |  13 --
 ..._e1_pcps_ambiguous_acquisition_gsoc2013_test.cc |   9 --
 ...ileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc |   5 -
 .../galileo_e1_pcps_ambiguous_acquisition_test.cc  |   5 -
 ...s_cccwsr_ambiguous_acquisition_gsoc2013_test.cc |   9 --
 ...uicksync_ambiguous_acquisition_gsoc2014_test.cc |  13 --
 ...cps_tong_ambiguous_acquisition_gsoc2013_test.cc |   9 --
 ...e5a_pcps_acquisition_gsoc2014_gensource_test.cc |  13 --
 src/tests/gnss_block/galileo_e5a_tracking_test.cc  |   5 -
 .../gps_l1_ca_pcps_acquisition_gsoc2013_test.cc    |   9 --
 .../gnss_block/gps_l1_ca_pcps_acquisition_test.cc  |   5 -
 ...a_pcps_multithread_acquisition_gsoc2013_test.cc |   9 --
 ..._l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc |   9 --
 ..._ca_pcps_quicksync_acquisition_gsoc2014_test.cc |  13 --
 ...ps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc |   9 --
 .../gnss_block/gps_l2_m_dll_pll_tracking_test.cc   |   5 -
 .../gnss_block/gps_l2_m_pcps_acquisition_test.cc   |   5 -
 src/tests/single_test_main.cc                      |   5 -
 src/tests/test_main.cc                             |  38 ++---
 src/utils/front-end-cal/main.cc                    |   2 +-
 116 files changed, 166 insertions(+), 971 deletions(-)

diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
index 8d36a2b..cea8ae6 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
@@ -107,7 +107,6 @@ GalileoE1Pcps8msAmbiguousAcquisition::GalileoE1Pcps8msAmbiguousAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -179,18 +178,6 @@ GalileoE1Pcps8msAmbiguousAcquisition::set_doppler_step(unsigned int doppler_step
 
 
 void
-GalileoE1Pcps8msAmbiguousAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
-void
 GalileoE1Pcps8msAmbiguousAcquisition::set_gnss_synchro(
         Gnss_Synchro* gnss_synchro)
 {
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
index 2b4b4f4..c63dc22 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
@@ -105,11 +105,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -154,7 +149,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
index c80d4f4..01759f1 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
@@ -111,7 +111,6 @@ GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -176,16 +175,6 @@ void GalileoE1PcpsAmbiguousAcquisition::set_doppler_step(unsigned int doppler_st
 }
 
 
-void GalileoE1PcpsAmbiguousAcquisition::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GalileoE1PcpsAmbiguousAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
index 066d44f..5c9c46c 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
@@ -104,11 +104,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -159,7 +154,6 @@ private:
     std::string role_;
     unsigned int in_streams_;
     unsigned int out_streams_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
index 844222e..6635d71 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
@@ -108,7 +108,6 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -181,19 +180,6 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::set_doppler_step(unsigned int doppler_s
         }
 }
 
-
-void
-GalileoE1PcpsCccwsrAmbiguousAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void
 GalileoE1PcpsCccwsrAmbiguousAcquisition::set_gnss_synchro(
         Gnss_Synchro* gnss_synchro)
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
index 0acfd07..0aa1a7a 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
@@ -105,11 +105,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -158,7 +153,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
index fc8156c..01f271d 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
@@ -142,7 +142,6 @@ GalileoE1PcpsQuickSyncAmbiguousAcquisition::GalileoE1PcpsQuickSyncAmbiguousAcqui
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -212,19 +211,6 @@ GalileoE1PcpsQuickSyncAmbiguousAcquisition::set_doppler_step(unsigned int dopple
         }
 }
 
-
-void
-GalileoE1PcpsQuickSyncAmbiguousAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void
 GalileoE1PcpsQuickSyncAmbiguousAcquisition::set_gnss_synchro(
         Gnss_Synchro* gnss_synchro)
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
index ec71e7c..e52070f 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
@@ -105,11 +105,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -161,7 +156,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
index 913b800..62c04e9 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
@@ -110,7 +110,6 @@ GalileoE1PcpsTongAmbiguousAcquisition::GalileoE1PcpsTongAmbiguousAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
     bit_transition_flag_ = false;
 }
@@ -184,18 +183,6 @@ GalileoE1PcpsTongAmbiguousAcquisition::set_doppler_step(unsigned int doppler_ste
 
 
 void
-GalileoE1PcpsTongAmbiguousAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
-void
 GalileoE1PcpsTongAmbiguousAcquisition::set_gnss_synchro(
         Gnss_Synchro* gnss_synchro)
 {
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
index 16c8b1f..31a90d8 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
@@ -105,11 +105,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -161,7 +156,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
index 03b9820..7a99a38 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
@@ -113,7 +113,6 @@ GalileoE5aNoncoherentIQAcquisitionCaf::GalileoE5aNoncoherentIQAcquisitionCaf(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
     bit_transition_flag_ = false;
 }
@@ -182,17 +181,6 @@ void GalileoE5aNoncoherentIQAcquisitionCaf::set_doppler_step(unsigned int dopple
 }
 
 
-void GalileoE5aNoncoherentIQAcquisitionCaf::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GalileoE5aNoncoherentIQAcquisitionCaf::set_gnss_synchro(
         Gnss_Synchro* gnss_synchro)
 {
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
index 4d003ab..d9adab6 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
@@ -107,11 +107,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -168,7 +163,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
     float calculate_threshold(float pfa);
 };
 #endif /* GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_ */
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
index e1d6ba8..fcdb641 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
@@ -119,7 +119,6 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
     doppler_max_ = 0;
     doppler_step_ = 0;
     gnss_synchro_ = 0;
-    channel_internal_queue_ = 0;
 }
 
 
@@ -202,23 +201,6 @@ void GpsL1CaPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
 
 }
 
-
-void GpsL1CaPcpsAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-
-    if (item_type_.compare("cshort") == 0)
-        {
-            acquisition_sc_->set_channel_queue(channel_internal_queue_);
-        }
-    else
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GpsL1CaPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
index 35946bb..d868602 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
@@ -115,11 +115,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -175,7 +170,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 };
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
index efac995..4538e39 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
@@ -83,7 +83,6 @@ GpsL1CaPcpsAcquisitionFineDoppler::GpsL1CaPcpsAcquisitionFineDoppler(
     threshold_ = 0.0;
     doppler_step_ = 0;
     gnss_synchro_ = 0;
-    channel_internal_queue_ = 0;
 }
 
 
@@ -121,14 +120,6 @@ void GpsL1CaPcpsAcquisitionFineDoppler::set_doppler_step(unsigned int doppler_st
 }
 
 
-void GpsL1CaPcpsAcquisitionFineDoppler::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    acquisition_cc_->set_channel_queue(channel_internal_queue_);
-}
-
-
 void GpsL1CaPcpsAcquisitionFineDoppler::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
index 49364a4..3261fb5 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
@@ -107,11 +107,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -150,7 +145,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif /* GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_ */
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
index 94d3f5a..ee0a4f7 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
@@ -86,7 +86,6 @@ GpsL1CaPcpsAssistedAcquisition::GpsL1CaPcpsAssistedAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -125,14 +124,6 @@ void GpsL1CaPcpsAssistedAcquisition::set_doppler_step(unsigned int doppler_step)
 }
 
 
-void GpsL1CaPcpsAssistedAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    acquisition_cc_->set_channel_queue(channel_internal_queue_);
-}
-
-
 void GpsL1CaPcpsAssistedAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
index 0827fa2..c877126 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
@@ -107,11 +107,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -151,7 +146,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif /* GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_ */
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.cc
index 813e2a3..2ab56ac 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.cc
@@ -105,7 +105,6 @@ GpsL1CaPcpsMultithreadAcquisition::GpsL1CaPcpsMultithreadAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -173,17 +172,6 @@ void GpsL1CaPcpsMultithreadAcquisition::set_doppler_step(unsigned int doppler_st
 }
 
 
-void GpsL1CaPcpsMultithreadAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GpsL1CaPcpsMultithreadAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.h
index 7c2dd8b..95d6ec8 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_multithread_acquisition.h
@@ -106,11 +106,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -156,7 +151,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 };
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
index 4dba5e2..0e3e5d7 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
@@ -102,7 +102,6 @@ GpsL1CaPcpsOpenClAcquisition::GpsL1CaPcpsOpenClAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -170,17 +169,6 @@ void GpsL1CaPcpsOpenClAcquisition::set_doppler_step(unsigned int doppler_step)
 }
 
 
-void GpsL1CaPcpsOpenClAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GpsL1CaPcpsOpenClAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
index bcdd85f..f1de99f 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
@@ -106,11 +106,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -156,7 +151,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 };
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
index 2d5be99..d0fe1d4 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
@@ -136,7 +136,6 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -204,17 +203,6 @@ void GpsL1CaPcpsQuickSyncAcquisition::set_doppler_step(unsigned int doppler_step
 }
 
 
-void GpsL1CaPcpsQuickSyncAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GpsL1CaPcpsQuickSyncAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
index 88f1ebe..8142b24 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
@@ -108,11 +108,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -163,7 +158,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
index f49ba2f..5a01fbe 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
@@ -94,7 +94,6 @@ GpsL1CaPcpsTongAcquisition::GpsL1CaPcpsTongAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
     bit_transition_flag_ = false;
 }
@@ -163,17 +162,6 @@ void GpsL1CaPcpsTongAcquisition::set_doppler_step(unsigned int doppler_step)
 }
 
 
-void GpsL1CaPcpsTongAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            acquisition_cc_->set_channel_queue(channel_internal_queue_);
-        }
-}
-
-
 void GpsL1CaPcpsTongAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
index e4afb6e..c02010e 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
@@ -106,11 +106,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -162,7 +157,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 };
diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
index 061e54a..8d2e995 100644
--- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
@@ -117,7 +117,6 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
     threshold_ = 0.0;
     doppler_max_ = 5000;
     doppler_step_ = 250;
-    channel_internal_queue_ = 0;
     channel_ = 0;
 }
 
@@ -187,17 +186,6 @@ void GpsL2MPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
 }
 
 
-void GpsL2MPcpsAcquisition::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    //  if (item_type_.compare("gr_complex") == 0)
-    //  {
-    acquisition_cc_->set_channel_queue(channel_internal_queue_);
-    //  }
-}
-
-
 void GpsL2MPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 {
     gnss_synchro_ = gnss_synchro;
diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
index 1b441e9..84eac98 100644
--- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
@@ -110,11 +110,6 @@ public:
     void set_doppler_step(unsigned int doppler_step);
 
     /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
-    /*!
      * \brief Initializes acquisition algorithm.
      */
     void init();
@@ -167,7 +162,6 @@ private:
     std::string role_;
     unsigned int in_streams_;
     unsigned int out_streams_;
-    concurrent_queue<int> *channel_internal_queue_;
 
     float calculate_threshold(float pfa);
 };
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
index 84fa61e..48457fa 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
@@ -162,7 +162,6 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc::galileo_e5a_noncoherentIQ_acquisit
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_CAF_vector = 0;
     d_CAF_vector_I = 0;
     d_CAF_vector_Q = 0;
@@ -783,7 +782,7 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items
             d_state = 0;
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
             d_sample_counter += ninput_items[0]; // sample counter
             consume_each(ninput_items[0]);
             break;
@@ -807,7 +806,7 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items
             d_sample_counter += ninput_items[0]; // sample counter
             consume_each(ninput_items[0]);
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
             break;
         }
     }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
index 74bf9f3..64dfe64 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
@@ -136,7 +136,6 @@ private:
     float d_test_statistics;
     bool d_bit_transition_flag;
     gr::msg_queue::sptr d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -246,15 +245,6 @@ public:
 
 
      /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
-
-     /*!
       * \brief Parallel Code Phase Search Acquisition signal processing.
       */
      int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
index b6f336b..3baa46b 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
@@ -101,7 +101,6 @@ galileo_pcps_8ms_acquisition_cc::galileo_pcps_8ms_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_channel = 0;
 }
 
@@ -391,7 +390,7 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -416,7 +415,7 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
index 693c8d1..758c61b 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
@@ -105,7 +105,6 @@ private:
 	float d_input_power;
 	float d_test_statistics;
     gr::msg_queue::sptr d_queue;
-	concurrent_queue<int> *d_channel_internal_queue;
 	std::ofstream d_dump_file;
 	bool d_active;
     int d_state;
@@ -202,16 +201,6 @@ public:
         d_doppler_step = doppler_step;
     }
 
-
-    /*!
-     * \brief Set tracking channel internal queue.
-     * \param channel_internal_queue - Channel's internal blocks information queue.
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-    {
-        d_channel_internal_queue = channel_internal_queue;
-    }
-
     /*!
      * \brief Parallel Code Phase Search Acquisition signal processing.
      */
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
index 9715173..5120759 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
@@ -70,6 +70,9 @@ pcps_acquisition_cc::pcps_acquisition_cc(
     gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms * ( bit_transition_flag ? 2 : 1 )),
     gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms * ( bit_transition_flag ? 2 : 1 )) )
 {
+
+    this->message_port_register_out(pmt::mp("events"));
+
     d_sample_counter = 0;    // SAMPLE COUNTER
     d_active = false;
     d_state = 0;
@@ -127,7 +130,6 @@ pcps_acquisition_cc::pcps_acquisition_cc(
     d_dump_filename = dump_filename;
 
     d_gnss_synchro = 0;
-    d_channel_internal_queue = 0;
     d_grid_doppler_wipeoffs = 0;
 }
 
@@ -450,7 +452,9 @@ int pcps_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
+
 
             break;
         }
@@ -474,7 +478,8 @@ int pcps_acquisition_cc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
             consume_each(ninput_items[0]);
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.h
index b7b4577..a0ab231 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.h
@@ -55,7 +55,6 @@
 #include <gnuradio/block.h>
 #include <gnuradio/gr_complex.h>
 #include <gnuradio/fft/fft.h>
-#include "concurrent_queue.h"
 #include "gnss_synchro.h"
 
 class pcps_acquisition_cc;
@@ -124,7 +123,6 @@ private:
     float d_test_statistics;
     bool d_bit_transition_flag;
     bool d_use_CFAR_algorithm_flag;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -222,15 +220,6 @@ public:
      }
 
      /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
-
-     /*!
       * \brief Parallel Code Phase Search Acquisition signal processing.
       */
      int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
index d7a7cd3..ce0b951 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
@@ -104,7 +104,6 @@ pcps_acquisition_fine_doppler_cc::pcps_acquisition_fine_doppler_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_well_count = 0;
     d_channel = 0;
 }
@@ -503,7 +502,7 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
 
         d_active = false;
         // Send message to channel queue //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
-        d_channel_internal_queue->push(1); // 1-> positive acquisition
+        this->message_port_pub(pmt::mp("events"), pmt::from_long(1));
         d_state = 0;
         break;
     case 5: // Negative_Acq
@@ -519,7 +518,7 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
 
         d_active = false;
         // Send message to channel queue //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
-        d_channel_internal_queue->push(2); // 2-> negative acquisition
+        this->message_port_pub(pmt::mp("events"), pmt::from_long(2));
         d_state = 0;
         break;
     default:
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
index 289fd10..155b1fc 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
@@ -130,7 +130,6 @@ private:
     float d_input_power;
     float d_test_statistics;
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     int d_state;
     bool d_active;
@@ -221,15 +220,6 @@ public:
 
 
     /*!
-     * \brief Set tracking channel internal queue.
-     * \param channel_internal_queue - Channel's internal blocks information queue.
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-    {
-        d_channel_internal_queue = channel_internal_queue;
-    }
-
-    /*!
      * \brief Parallel Code Phase Search Acquisition signal processing.
      */
     int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
index fe01f24..610a5ad 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
@@ -127,7 +127,6 @@ pcps_acquisition_sc::pcps_acquisition_sc(
     d_dump_filename = dump_filename;
 
     d_gnss_synchro = 0;
-    d_channel_internal_queue = 0;
     d_grid_doppler_wipeoffs = 0;
 }
 
@@ -454,7 +453,7 @@ int pcps_acquisition_sc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -478,7 +477,7 @@ int pcps_acquisition_sc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
             consume_each(ninput_items[0]);
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.h
index 81bd1ab..260d765 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.h
@@ -128,7 +128,6 @@ private:
     float d_test_statistics;
     bool d_bit_transition_flag;
     bool d_use_CFAR_algorithm_flag;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -225,14 +224,6 @@ public:
          d_doppler_step = doppler_step;
      }
 
-     /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
 
      /*!
       * \brief Parallel Code Phase Search Acquisition signal processing.
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
index c7157dd..d3d6d1b 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
@@ -107,7 +107,6 @@ pcps_assisted_acquisition_cc::pcps_assisted_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_well_count = 0;
     d_channel = 0;
 }
@@ -463,7 +462,7 @@ int pcps_assisted_acquisition_cc::general_work(int noutput_items,
         DLOG(INFO) << "input signal power " << d_input_power;
         d_active = false;
         // Send message to channel queue //0=STOP_CHANNEL 1=ACQ_SUCCESS 2=ACQ_FAIL
-        d_channel_internal_queue->push(1); // 1-> positive acquisition
+        this->message_port_pub(pmt::mp("events"), pmt::from_long(1));
         free_grid_memory();
         // consume samples to not block the GNU Radio flowgraph
         d_sample_counter += ninput_items[0]; // sample counter
@@ -481,7 +480,7 @@ int pcps_assisted_acquisition_cc::general_work(int noutput_items,
         DLOG(INFO) << "input signal power " << d_input_power;
         d_active = false;
         // Send message to channel queue //0=STOP_CHANNEL 1=ACQ_SUCCESS 2=ACQ_FAIL
-        d_channel_internal_queue->push(2); // 2-> negative acquisition
+        this->message_port_pub(pmt::mp("events"), pmt::from_long(2));
         free_grid_memory();
         // consume samples to not block the GNU Radio flowgraph
         d_sample_counter += ninput_items[0]; // sample counter
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
index f5fa355..ff29b03 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
@@ -130,7 +130,6 @@ private:
     float d_input_power;
     float d_test_statistics;
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     int d_state;
     bool d_active;
@@ -220,14 +219,6 @@ public:
      */
     void set_doppler_step(unsigned int doppler_step);
 
-    /*!
-     * \brief Set tracking channel internal queue.
-     * \param channel_internal_queue - Channel's internal blocks information queue.
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-    {
-        d_channel_internal_queue = channel_internal_queue;
-    }
 
     /*!
      * \brief Parallel Code Phase Search Acquisition signal processing.
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
index 803110d..dbd2c65 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
@@ -113,7 +113,6 @@ pcps_cccwsr_acquisition_cc::pcps_cccwsr_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_channel = 0;
 }
 
@@ -416,7 +415,7 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -441,7 +440,7 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
index 80807cc..985838f 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
@@ -114,7 +114,6 @@ private:
     float d_input_power;
     float d_test_statistics;
     gr::msg_queue::sptr d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -213,15 +212,6 @@ public:
      }
 
      /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
-
-     /*!
       * \brief Coherent Channel Combining With Sign Recovery Acquisition signal processing.
       */
      int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc
index facb1fa..c6c662c 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc
@@ -118,7 +118,6 @@ pcps_multithread_acquisition_cc::pcps_multithread_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_channel = 0;
 }
 
@@ -444,7 +443,7 @@ int pcps_multithread_acquisition_cc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -468,7 +467,7 @@ int pcps_multithread_acquisition_cc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.h
index ed4398b..53309af 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.h
@@ -130,7 +130,6 @@ private:
 	float d_test_statistics;
     bool d_bit_transition_flag;
     gr::msg_queue::sptr d_queue;
-	concurrent_queue<int> *d_channel_internal_queue;
 	std::ofstream d_dump_file;
 	bool d_active;
     int d_state;
@@ -233,15 +232,6 @@ public:
 
 
     /*!
-     * \brief Set tracking channel internal queue.
-     * \param channel_internal_queue - Channel's internal blocks information queue.
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-    {
-        d_channel_internal_queue = channel_internal_queue;
-    }
-
-    /*!
      * \brief Parallel Code Phase Search Acquisition signal processing.
      */
     int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
index a6184b7..22f82a6 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
@@ -796,7 +796,7 @@ int pcps_opencl_acquisition_cc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -820,7 +820,7 @@ int pcps_opencl_acquisition_cc::general_work(int noutput_items,
             d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
index f91a7ea..872b913 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
@@ -139,7 +139,6 @@ private:
     float d_test_statistics;
     bool d_bit_transition_flag;
     gr::msg_queue::sptr d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -257,16 +256,6 @@ public:
          d_doppler_step = doppler_step;
      }
 
-
-     /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
-
      /*!
       * \brief Parallel Code Phase Search Acquisition signal processing.
       */
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
index 6d6d10e..9078a78 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
@@ -129,7 +129,6 @@ pcps_quicksync_acquisition_cc::pcps_quicksync_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_channel = 0;
     //d_code_folded = 0;
 
@@ -549,7 +548,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
             //DLOG(INFO) << "END CASE 2";
             break;
         }
@@ -578,7 +577,7 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
             //DLOG(INFO) << "END CASE 3";
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
index 4f68b36..e5d8d56 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
@@ -146,7 +146,6 @@ private:
     float d_test_statistics;
     bool d_bit_transition_flag;
     gr::msg_queue::sptr d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -245,15 +244,6 @@ public:
 
 
     /*!
-     * \brief Set tracking channel internal queue.
-     * \param channel_internal_queue - Channel's internal blocks information queue.
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-    {
-        d_channel_internal_queue = channel_internal_queue;
-    }
-
-    /*!
      * \brief Parallel Code Phase Search Acquisition signal processing.
      */
     int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
index dfdd1b0..7af96e3 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
@@ -122,7 +122,6 @@ pcps_tong_acquisition_cc::pcps_tong_acquisition_cc(
     d_code_phase = 0;
     d_doppler_freq = 0;
     d_test_statistics = 0;
-    d_channel_internal_queue = 0;
     d_channel = 0;
 }
 
@@ -409,7 +408,7 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 1;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
@@ -434,7 +433,7 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items,
             consume_each(ninput_items[0]);
 
             acquisition_message = 2;
-            d_channel_internal_queue->push(acquisition_message);
+            this->message_port_pub(pmt::mp("events"), pmt::from_long(acquisition_message));
 
             break;
         }
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
index 2528ba7..559ea09 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
@@ -124,7 +124,6 @@ private:
     float d_input_power;
     float d_test_statistics;
     gr::msg_queue::sptr d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     std::ofstream d_dump_file;
     bool d_active;
     int d_state;
@@ -223,15 +222,6 @@ public:
 
 
      /*!
-      * \brief Set tracking channel internal queue.
-      * \param channel_internal_queue - Channel's internal blocks information queue.
-      */
-     void set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-     {
-         d_channel_internal_queue = channel_internal_queue;
-     }
-
-     /*!
       * \brief Parallel Code Phase Search Acquisition signal processing.
       */
      int general_work(int noutput_items, gr_vector_int &ninput_items,
diff --git a/src/algorithms/channel/adapters/channel.cc b/src/algorithms/channel/adapters/channel.cc
index cc235cd..9c0de5e 100644
--- a/src/algorithms/channel/adapters/channel.cc
+++ b/src/algorithms/channel/adapters/channel.cc
@@ -28,29 +28,73 @@
  *
  * -------------------------------------------------------------------------
  */
-
 #include "channel.h"
+#include <memory>
 #include <boost/lexical_cast.hpp>
 #include <glog/logging.h>
+#include "channel_interface.h"
 #include "acquisition_interface.h"
 #include "tracking_interface.h"
 #include "telemetry_decoder_interface.h"
 #include "configuration_interface.h"
 
-
-
 using google::LogMessage;
 
+void Channel::msg_handler_events(pmt::pmt_t msg)
+{
+    try {
+        long int message=pmt::to_long(msg);
+        switch (message)
+        {
+        case 1: //positive acquisition
+            DLOG(INFO) << "Channel " << channel_ << " ACQ SUCCESS satellite " <<
+                gnss_synchro_.System << " " << gnss_synchro_.PRN;
+            channel_fsm_.Event_valid_acquisition();
+            break;
+        case 2: //negative acquisition
+            DLOG(INFO) << "Channel " << channel_
+                << " ACQ FAILED satellite " << gnss_synchro_.System << " " << gnss_synchro_.PRN;
+            if (repeat_ == true)
+                {
+                    channel_fsm_.Event_failed_acquisition_repeat();
+                }
+            else
+                {
+                    channel_fsm_.Event_failed_acquisition_no_repeat();
+                }
+            break;
+        case 3: // tracking loss of lock event
+            channel_fsm_.Event_failed_tracking_standby();
+            break;
+        default:
+            LOG(WARNING) << "Default case, invalid message.";
+            break;
+        }
+    }catch(boost::bad_any_cast& e)
+    {
+            LOG(WARNING) << "msg_handler_telemetry Bad any cast!\n";
+    }
+}
 // Constructor
 Channel::Channel(ConfigurationInterface *configuration, unsigned int channel,
         GNSSBlockInterface *pass_through, AcquisitionInterface *acq,
         TrackingInterface *trk, TelemetryDecoderInterface *nav,
         std::string role, std::string implementation, boost::shared_ptr<gr::msg_queue> queue) :
-                pass_through_(pass_through), acq_(acq), trk_(trk), nav_(nav),
-                role_(role), implementation_(implementation), channel_(channel),
-                queue_(queue)
+        gr::block("galileo_e1_pvt_cc", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0))
 {
-    stop_ = false;
+
+    this->message_port_register_in(pmt::mp("events"));
+    this->set_msg_handler(pmt::mp("events"), boost::bind(&Channel::msg_handler_events, this, _1));
+
+    pass_through_=pass_through;
+    acq_=acq;
+    trk_=trk;
+    nav_=nav;
+    role_=role;
+    implementation_=implementation;
+    channel_=channel;
+    queue_=queue;
+
     acq_->set_channel(channel_);
     trk_->set_channel(channel_);
     nav_->set_channel(channel_);
@@ -82,31 +126,20 @@ Channel::Channel(ConfigurationInterface *configuration, unsigned int channel,
     repeat_ = configuration->property("Acquisition_" + implementation_ + boost::lexical_cast<std::string>(channel_) + ".repeat_satellite", false);
     DLOG(INFO) << "Channel " << channel_ << " satellite repeat = " << repeat_;
 
-    acq_->set_channel_queue(&channel_internal_queue_);
-    trk_->set_channel_queue(&channel_internal_queue_);
-
     channel_fsm_.set_acquisition(acq_);
     channel_fsm_.set_tracking(trk_);
     channel_fsm_.set_channel(channel_);
     channel_fsm_.set_queue(queue_);
 
     connected_ = false;
-    message_ = 0;
     gnss_signal_ = Gnss_Signal();
 }
 
-
 // Destructor
 Channel::~Channel()
 {
-    delete acq_;
-    delete trk_;
-    delete nav_;
-    delete pass_through_;
 }
 
-
-
 void Channel::connect(gr::top_block_sptr top_block)
 {
     if (connected_)
@@ -130,11 +163,15 @@ void Channel::connect(gr::top_block_sptr top_block)
     // Message ports
     top_block->msg_connect(nav_->get_left_block(),pmt::mp("preamble_timestamp_s"),trk_->get_right_block(),pmt::mp("preamble_timestamp_s"));
     DLOG(INFO) << "MSG FEEDBACK CHANNEL telemetry_decoder -> tracking";
+
+    //std::cout<<"has port: "<<trk_->get_right_block()->has_msg_port(pmt::mp("events"))<<std::endl;
+    top_block->msg_connect(acq_->get_right_block(),pmt::mp("events"), gr::basic_block_sptr(this),pmt::mp("events"));
+    top_block->msg_connect(trk_->get_right_block(),pmt::mp("events"), gr::basic_block_sptr(this),pmt::mp("events"));
+
     connected_ = true;
 }
 
 
-
 void Channel::disconnect(gr::top_block_sptr top_block)
 {
     if (!connected_)
@@ -152,22 +189,17 @@ void Channel::disconnect(gr::top_block_sptr top_block)
     connected_ = false;
 }
 
-
-
 gr::basic_block_sptr Channel::get_left_block()
 {
     return pass_through_->get_left_block();
 }
 
-
-
 gr::basic_block_sptr Channel::get_right_block()
 {
     return nav_->get_right_block();
 }
 
 
-
 void Channel::set_signal(const Gnss_Signal& gnss_signal)
 {
     gnss_signal_ = gnss_signal;
@@ -181,90 +213,7 @@ void Channel::set_signal(const Gnss_Signal& gnss_signal)
     nav_->set_satellite(gnss_signal_.get_satellite());
 }
 
-
-
 void Channel::start_acquisition()
 {
     channel_fsm_.Event_start_acquisition();
 }
-
-
-
-void Channel::start()
-{
-    ch_thread_ = std::thread(&Channel::run, this);
-}
-
-
-
-void Channel::run()
-{
-    while (!stop_)
-        {
-            channel_internal_queue_.wait_and_pop(message_);
-            process_channel_messages();
-        }
-}
-
-
-
-void Channel::standby()
-{
-    channel_fsm_.Event_failed_tracking_standby();
-}
-
-
-
-/*
- * Set stop_ to true and blocks the calling thread until
- * the thread of the constructor has completed
- */
-void Channel::stop()
-{
-    stop_ = true;
-    channel_internal_queue_.push(0); //message to stop channel
-    /* When the std::thread object that represents a thread of execution
-     * is destroyed the thread becomes detached. Once a thread is detached,
-     * it will continue executing until the invocation of the function or
-     * callable object supplied on construction has completed,
-     * or the program is terminated. In order to wait for a thread of
-     * execution to finish, the join() member function of
-     * the std::thread object must be used. join() will block the calling
-     * thread until the thread represented by the std::thread object
-     * has completed.
-     */
-    ch_thread_.join();
-}
-
-
-
-void Channel::process_channel_messages()
-{
-    switch (message_)
-    {
-    case 0:
-        DLOG(INFO) << "Stop channel " << channel_;
-        break;
-    case 1:
-        DLOG(INFO) << "Channel " << channel_ << " ACQ SUCCESS satellite " <<
-            gnss_synchro_.System << " " << gnss_synchro_.PRN;
-        channel_fsm_.Event_valid_acquisition();
-        break;
-    case 2:
-        DLOG(INFO) << "Channel " << channel_
-            << " ACQ FAILED satellite " << gnss_synchro_.System << " " << gnss_synchro_.PRN;
-        if (repeat_ == true)
-            {
-                channel_fsm_.Event_failed_acquisition_repeat();
-            }
-        else
-            {
-                channel_fsm_.Event_failed_acquisition_no_repeat();
-            }
-        break;
-    default:
-        LOG(WARNING) << "Default case, invalid message.";
-        break;
-    }
-}
-
diff --git a/src/algorithms/channel/adapters/channel.h b/src/algorithms/channel/adapters/channel.h
index 215e7c7..b82ee8a 100644
--- a/src/algorithms/channel/adapters/channel.h
+++ b/src/algorithms/channel/adapters/channel.h
@@ -35,12 +35,12 @@
 #ifndef GNSS_SDR_CHANNEL_H_
 #define GNSS_SDR_CHANNEL_H_
 
+#include <memory>
 #include <string>
-#include <thread>
 #include <gnuradio/msg_queue.h>
+#include <gnuradio/block.h>
 #include "channel_interface.h"
 #include "channel_fsm.h"
-#include "concurrent_queue.h"
 #include "gnss_synchro.h"
 
 
@@ -55,8 +55,9 @@ class TelemetryDecoderInterface;
  * their interaction through a Finite State Machine
  *
  */
-class Channel: public ChannelInterface
+class Channel: public ChannelInterface, public gr::block
 {
+
 public:
     //! Constructor
     Channel(ConfigurationInterface *configuration, unsigned int channel,
@@ -81,13 +82,9 @@ public:
     TelemetryDecoderInterface* telemetry(){ return nav_; }
     void start_acquisition();                   //!< Start the State Machine
     void set_signal(const Gnss_Signal& gnss_signal_);  //!< Sets the channel GNSS signal
-    void start();                               //!< Start the thread
-    void standby();
-    /*!
-     * \brief Set stop_ to true and blocks the calling thread until
-     * the thread of the constructor has completed
-     */
-    void stop();
+
+    void msg_handler_events(pmt::pmt_t msg);
+
 
 private:
     GNSSBlockInterface *pass_through_;
@@ -100,15 +97,11 @@ private:
     Gnss_Synchro gnss_synchro_;
     Gnss_Signal gnss_signal_;
     bool connected_;
-    bool stop_;
-    int message_;
+    //bool stop_;
+    //int message_;
     bool repeat_;
     ChannelFsm channel_fsm_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> channel_internal_queue_;
-    std::thread ch_thread_;
-    void run();
-    void process_channel_messages();
 };
 
 #endif /*GNSS_SDR_CHANNEL_H_*/
diff --git a/src/algorithms/channel/libs/channel_fsm.cc b/src/algorithms/channel/libs/channel_fsm.cc
index dcfc0ca..a03da50 100644
--- a/src/algorithms/channel/libs/channel_fsm.cc
+++ b/src/algorithms/channel/libs/channel_fsm.cc
@@ -92,10 +92,16 @@ public:
 
     channel_tracking_fsm_S2(my_context ctx) : my_base(ctx)
     {
-        //std::cout << "Enter Channel_tracking_S2 " << std::endl;
+       //std::cout << "Enter Channel_tracking_S2 " << std::endl;
         context<ChannelFsm> ().start_tracking();
     }
 
+    ~channel_tracking_fsm_S2()
+    {
+        //std::cout << "Exit Channel_tracking_S2 " << std::endl;
+        context<ChannelFsm> ().notify_stop_tracking();
+    }
+
 };
 
 
@@ -223,3 +229,11 @@ void ChannelFsm::request_satellite()
         }
 }
 
+void ChannelFsm::notify_stop_tracking()
+{
+    std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+    if (queue_ != gr::msg_queue::make())
+        {
+            queue_->handle(cmf->GetQueueMessage(channel_, 2));
+        }
+}
diff --git a/src/algorithms/channel/libs/channel_fsm.h b/src/algorithms/channel/libs/channel_fsm.h
index 95d7b7d..6fa2a6d 100644
--- a/src/algorithms/channel/libs/channel_fsm.h
+++ b/src/algorithms/channel/libs/channel_fsm.h
@@ -64,6 +64,7 @@ public:
     void start_acquisition();
     void start_tracking();
     void request_satellite();
+    void notify_stop_tracking();
 
     //FSM EVENTS
     void Event_start_acquisition();
diff --git a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc
index 1f0e797..f1db841 100644
--- a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc
+++ b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc
@@ -238,7 +238,6 @@ GpsL1CaSubframeFsm::GpsL1CaSubframeFsm()
     d_nav.reset();
     i_channel_ID = 0;
     i_satellite_PRN = 0;
-    d_almanac_queue = 0;
     d_preamble_time_ms = 0;
     d_subframe_ID=0;
     d_flag_new_subframe=false;
diff --git a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h
index 2193ceb..0a57750 100644
--- a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h
+++ b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h
@@ -71,8 +71,6 @@ public:
     int i_channel_ID;              //!< Channel id
     unsigned int i_satellite_PRN;  //!< Satellite PRN number
 
-    concurrent_queue<Gps_Almanac> *d_almanac_queue;     //!< Almanac queue
-
     Gps_Navigation_Message d_nav; //!< GPS L1 C/A navigation message object
 
     // GPS SV and System parameters
diff --git a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc
index 1f1fea8..82d8e1d 100755
--- a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc
+++ b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc
@@ -100,7 +100,6 @@ GalileoE1DllPllVemlTracking::GalileoE1DllPllVemlTracking(
         }
 
     channel_ = 0;
-    channel_internal_queue_ = 0;
 
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
@@ -122,17 +121,6 @@ void GalileoE1DllPllVemlTracking::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GalileoE1DllPllVemlTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-
-    tracking_->set_channel_queue(channel_internal_queue_);
-
-}
 
 void GalileoE1DllPllVemlTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h
index c95d1da..5d6a770 100755
--- a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h
+++ b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h
@@ -93,10 +93,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -108,7 +104,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GALILEO_E1_DLL_PLL_VEML_TRACKING_H_
diff --git a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc
index b7b0046..a6aa448 100644
--- a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc
+++ b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc
@@ -100,7 +100,6 @@ GalileoE1TcpConnectorTracking::GalileoE1TcpConnectorTracking(
             LOG(WARNING) << item_type << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -123,17 +122,6 @@ void GalileoE1TcpConnectorTracking::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GalileoE1TcpConnectorTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-
-    tracking_->set_channel_queue(channel_internal_queue_);
-
-}
 
 void GalileoE1TcpConnectorTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h
index 65b7d9a..116cb99 100644
--- a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h
+++ b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h
@@ -94,10 +94,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -109,7 +105,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GALILEO_E1_TCP_CONNECTOR_TRACKING_H_
diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc
index 72745f8..f83b1fc 100644
--- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc
+++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc
@@ -107,7 +107,6 @@ GalileoE5aDllPllTracking::GalileoE5aDllPllTracking(
             LOG(WARNING) << item_type << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -130,15 +129,6 @@ void GalileoE5aDllPllTracking::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GalileoE5aDllPllTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    tracking_->set_channel_queue(channel_internal_queue_);
-}
 
 void GalileoE5aDllPllTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h
index 3cde14d..70dc982 100644
--- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h
+++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h
@@ -92,10 +92,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -107,7 +103,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif /* GNSS_SDR_GALILEO_E5A_DLL_PLL_TRACKING_H_ */
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc
index a3aea8d..8f13987 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc
@@ -122,7 +122,6 @@ GpsL1CaDllPllCAidTracking::GpsL1CaDllPllCAidTracking(
             LOG(WARNING) << item_type_ << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
 }
 
 
@@ -168,28 +167,6 @@ void GpsL1CaDllPllCAidTracking::set_channel(unsigned int channel)
         }
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GpsL1CaDllPllCAidTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-
-    if (item_type_.compare("gr_complex") == 0)
-        {
-            tracking_cc->set_channel_queue(channel_internal_queue_);
-        }
-    else if (item_type_.compare("cshort") == 0)
-        {
-            tracking_sc->set_channel_queue(channel_internal_queue_);
-        }
-    else
-        {
-            LOG(WARNING) << item_type_ << " unknown tracking item type";
-        }
-}
-
 void GpsL1CaDllPllCAidTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     if (item_type_.compare("gr_complex") == 0)
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h
index 95b8b2e..9b3225b 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h
@@ -94,10 +94,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -111,7 +107,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_H_
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc
index 60fc038..cc5b433 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc
@@ -95,7 +95,6 @@ GpsL1CaDllPllTracking::GpsL1CaDllPllTracking(
             LOG(WARNING) << item_type << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -120,17 +119,6 @@ void GpsL1CaDllPllTracking::set_channel(unsigned int channel)
 }
 
 
-/*
- * Set tracking channel internal queue
- */
-void GpsL1CaDllPllTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    tracking_->set_channel_queue(channel_internal_queue_);
-}
-
-
 void GpsL1CaDllPllTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     tracking_->set_gnss_synchro(p_gnss_synchro);
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h
index 322a3b2..5ba86a0 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h
@@ -93,10 +93,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -108,7 +104,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_H_
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc
index 4ae8864..c94a558 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc
@@ -96,7 +96,6 @@ GpsL1CaDllPllTrackingGPU::GpsL1CaDllPllTrackingGPU(
             LOG(WARNING) << item_type << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -119,16 +118,6 @@ void GpsL1CaDllPllTrackingGPU::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GpsL1CaDllPllTrackingGPU::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    tracking_->set_channel_queue(channel_internal_queue_);
-}
-
 void GpsL1CaDllPllTrackingGPU::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     tracking_->set_gnss_synchro(p_gnss_synchro);
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h
index 36034e1..674b258 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h
@@ -91,10 +91,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -106,7 +102,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_GPU_H_
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc
index 0ca1c91..e179059 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc
@@ -93,7 +93,6 @@ GpsL1CaTcpConnectorTracking::GpsL1CaTcpConnectorTracking(
         }
 
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -116,15 +115,6 @@ void GpsL1CaTcpConnectorTracking::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GpsL1CaTcpConnectorTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    tracking_->set_channel_queue(channel_internal_queue_);
-}
 
 void GpsL1CaTcpConnectorTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h
index fdb1829..78b83ad 100644
--- a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h
+++ b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h
@@ -94,10 +94,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     void start_tracking();
 
@@ -112,7 +108,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_GPS_L1_CA_TCP_CONNECTOR_TRACKING_H_
diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc
index 280b85d..c802666 100644
--- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc
+++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc
@@ -95,7 +95,6 @@ GpsL2MDllPllTracking::GpsL2MDllPllTracking(
             LOG(WARNING) << item_type << " unknown tracking item type.";
         }
     channel_ = 0;
-    channel_internal_queue_ = 0;
     DLOG(INFO) << "tracking(" << tracking_->unique_id() << ")";
 }
 
@@ -118,15 +117,6 @@ void GpsL2MDllPllTracking::set_channel(unsigned int channel)
     tracking_->set_channel(channel);
 }
 
-/*
- * Set tracking channel internal queue
- */
-void GpsL2MDllPllTracking::set_channel_queue(
-        concurrent_queue<int> *channel_internal_queue)
-{
-    channel_internal_queue_ = channel_internal_queue;
-    tracking_->set_channel_queue(channel_internal_queue_);
-}
 
 void GpsL2MDllPllTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h
index 5ab564d..9141877 100644
--- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h
+++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h
@@ -93,11 +93,6 @@ public:
      */
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
 
-    /*!
-     * \brief Set tracking channel internal queue
-     */
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
-
     void start_tracking();
 
 private:
@@ -108,7 +103,6 @@ private:
     unsigned int in_streams_;
     unsigned int out_streams_;
     boost::shared_ptr<gr::msg_queue> queue_;
-    concurrent_queue<int> *channel_internal_queue_;
 };
 
 #endif // GNSS_SDR_gps_l2_m_dll_pll_tracking_H_
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.cc
index e929c81..f431a15 100755
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.cc
@@ -107,6 +107,9 @@ galileo_e1_dll_pll_veml_tracking_cc::galileo_e1_dll_pll_veml_tracking_cc(
     // Telemetry bit synchronization message port input
     this->message_port_register_in(pmt::mp("preamble_timestamp_s"));
     this->set_relative_rate(1.0 / vector_length);
+
+    this->message_port_register_out(pmt::mp("events"));
+
     // initialize internal vars
     d_queue = queue;
     d_dump = dump;
@@ -190,7 +193,6 @@ galileo_e1_dll_pll_veml_tracking_cc::galileo_e1_dll_pll_veml_tracking_cc(
     *d_Late = gr_complex(0,0);
     *d_Very_Late = gr_complex(0,0);
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -383,11 +385,14 @@ int galileo_e1_dll_pll_veml_tracking_cc::general_work (int noutput_items __attri
                         {
                             std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl;
                             LOG(INFO) << "Loss of lock in channel " << d_channel << "!";
-                            std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
-                            if (d_queue != gr::msg_queue::sptr())
-                                {
-                                    d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
-                                }
+                            pmt::pmt_t value = pmt::from_long(3);//3 -> loss of lock
+                            this->message_port_pub(pmt::mp("events"), value);
+
+//                            std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+//                            if (d_queue != gr::msg_queue::sptr())
+//                                {
+//                                    d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
+//                                }
                             d_carrier_lock_fail_counter = 0;
                             d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine
                         }
@@ -523,12 +528,6 @@ void galileo_e1_dll_pll_veml_tracking_cc::set_channel(unsigned int channel)
 
 
 
-void galileo_e1_dll_pll_veml_tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 
 void galileo_e1_dll_pll_veml_tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.h
index f443f56..e10eb09 100755
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.h
@@ -71,7 +71,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     /*!
      * \brief Code DLL + carrier PLL according to the algorithms described in:
@@ -113,7 +112,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc
index a0dd8db..c129879 100644
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc
@@ -187,7 +187,6 @@ Galileo_E1_Tcp_Connector_Tracking_cc::Galileo_E1_Tcp_Connector_Tracking_cc(
     d_carrier_lock_threshold = CARRIER_LOCK_THRESHOLD;
     systemName["E"] = std::string("Galileo");
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_next_rem_code_phase_samples = 0;
@@ -541,12 +540,6 @@ void Galileo_E1_Tcp_Connector_Tracking_cc::set_channel(unsigned int channel)
 
 
 
-void Galileo_E1_Tcp_Connector_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 void Galileo_E1_Tcp_Connector_Tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h
index 7c9f4ac..bc103fc 100644
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h
@@ -80,7 +80,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -118,7 +117,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.cc
index b15d9c7..fb1cdc9 100644
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.cc
@@ -193,7 +193,6 @@ Galileo_E5a_Dll_Pll_Tracking_cc::Galileo_E5a_Dll_Pll_Tracking_cc(
     d_carrier_lock_fail_counter = 0;
     d_carrier_lock_threshold = CARRIER_LOCK_THRESHOLD;
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     tmp_E = 0;
@@ -754,13 +753,6 @@ void Galileo_E5a_Dll_Pll_Tracking_cc::set_channel(unsigned int channel)
 }
 
 
-
-void Galileo_E5a_Dll_Pll_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 void Galileo_E5a_Dll_Pll_Tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.h
index 898f26a..d67cd94 100644
--- a/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.h
@@ -80,7 +80,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -117,7 +116,6 @@ private:
     void acquire_secondary();
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     int d_current_ti_ms;
     int d_ti_ms;
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc
index 5c66436..cfad636 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc
@@ -122,7 +122,7 @@ gps_l1_ca_dll_pll_c_aid_tracking_cc::gps_l1_ca_dll_pll_c_aid_tracking_cc(
     this->set_msg_handler(pmt::mp("preamble_timestamp_s"),
             boost::bind(&gps_l1_ca_dll_pll_c_aid_tracking_cc::msg_handler_preamble_index, this, _1));
 
-
+    this->message_port_register_out(pmt::mp("events"));
     // initialize internal vars
     d_queue = queue;
     d_dump = dump;
@@ -193,7 +193,6 @@ gps_l1_ca_dll_pll_c_aid_tracking_cc::gps_l1_ca_dll_pll_c_aid_tracking_cc(
 
     set_relative_rate(1.0 / static_cast<double>(d_vector_length));
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -549,11 +548,14 @@ int gps_l1_ca_dll_pll_c_aid_tracking_cc::general_work (int noutput_items __attri
                                 {
                                     std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl;
                                     LOG(INFO) << "Loss of lock in channel " << d_channel << "!";
-                                    std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
-                                    if (d_queue != gr::msg_queue::sptr())
-                                        {
-                                            d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
-                                        }
+                                    pmt::pmt_t value = pmt::from_long(3);//3 -> loss of lock
+                                    this->message_port_pub(pmt::mp("events"), value);
+
+                                    //std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+                                    //if (d_queue != gr::msg_queue::sptr())
+                                    //    {
+                                    //        d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
+                                    //    }
                                     d_carrier_lock_fail_counter = 0;
                                     d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine
                                 }
@@ -691,11 +693,6 @@ void gps_l1_ca_dll_pll_c_aid_tracking_cc::set_channel(unsigned int channel)
 }
 
 
-void gps_l1_ca_dll_pll_c_aid_tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
 
 void gps_l1_ca_dll_pll_c_aid_tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h
index 338d644..219170b 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h
@@ -83,7 +83,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -120,7 +119,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc
index 76fd901..ba79f15 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc
@@ -175,7 +175,6 @@ gps_l1_ca_dll_pll_c_aid_tracking_sc::gps_l1_ca_dll_pll_c_aid_tracking_sc(
 
     set_relative_rate(1.0 / (static_cast<double>(d_vector_length) * 2.0));
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -552,12 +551,6 @@ void gps_l1_ca_dll_pll_c_aid_tracking_sc::set_channel(unsigned int channel)
 }
 
 
-void gps_l1_ca_dll_pll_c_aid_tracking_sc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 void gps_l1_ca_dll_pll_c_aid_tracking_sc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h
index bf97b9a..3d1872b 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h
@@ -84,7 +84,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -119,7 +118,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
index ffcd09b..a51913e 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
@@ -105,6 +105,9 @@ Gps_L1_Ca_Dll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Pll_Tracking_cc(
 {
     // Telemetry bit synchronization message port input
     this->message_port_register_in(pmt::mp("preamble_timestamp_s"));
+
+    this->message_port_register_out(pmt::mp("events"));
+
     // initialize internal vars
     d_queue = queue;
     d_dump = dump;
@@ -168,7 +171,6 @@ Gps_L1_Ca_Dll_Pll_Tracking_cc::Gps_L1_Ca_Dll_Pll_Tracking_cc(
     systemName["G"] = std::string("GPS");
     systemName["S"] = std::string("SBAS");
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -406,11 +408,13 @@ int Gps_L1_Ca_Dll_Pll_Tracking_cc::general_work (int noutput_items __attribute__
                         {
                             std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl;
                             LOG(INFO) << "Loss of lock in channel " << d_channel << "!";
-                            std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
-                            if (d_queue != gr::msg_queue::sptr())
-                                {
-                                    d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
-                                }
+                            pmt::pmt_t value = pmt::from_long(3);//3 -> loss of lock
+                            this->message_port_pub(pmt::mp("events"), value);
+//                            std::unique_ptr<ControlMessageFactory> cmf(new ControlMessageFactory());
+//                            if (d_queue != gr::msg_queue::sptr())
+//                                {
+//                                    d_queue->handle(cmf->GetQueueMessage(d_channel, 2));
+//                                }
                             d_carrier_lock_fail_counter = 0;
                             d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine
                         }
@@ -535,12 +539,6 @@ void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_channel(unsigned int channel)
 }
 
 
-void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 void Gps_L1_Ca_Dll_Pll_Tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.h
index 225fd87..d7fd222 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.h
@@ -77,7 +77,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -108,7 +107,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc
index c0f4804..0d33793 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc
@@ -170,7 +170,6 @@ Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc(
 
     set_relative_rate(1.0 / (static_cast<double>(d_vector_length) * 2.0));
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -557,10 +556,6 @@ void Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::set_channel(unsigned int channel)
         }
 }
 
-void Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
 
 void Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h
index 355f796..6df5dd2 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h
@@ -76,7 +76,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -109,7 +108,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc
index 49c5bf8..25bdd11 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc
@@ -179,7 +179,6 @@ Gps_L1_Ca_Tcp_Connector_Tracking_cc::Gps_L1_Ca_Tcp_Connector_Tracking_cc(
     systemName["E"] = std::string("Galileo");
     systemName["C"] = std::string("Compass");
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_next_rem_code_phase_samples = 0;
@@ -588,12 +587,6 @@ void Gps_L1_Ca_Tcp_Connector_Tracking_cc::set_channel(unsigned int channel)
 }
 
 
-
-void Gps_L1_Ca_Tcp_Connector_Tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
 void Gps_L1_Ca_Tcp_Connector_Tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h
index a886cc8..7f25f04 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h
@@ -75,7 +75,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     /*
      * \brief just like gr_block::general_work, only this arranges to call consume_each for you
@@ -108,7 +107,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
index 3a37757..1a7fd96 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
@@ -174,7 +174,6 @@ gps_l2_m_dll_pll_tracking_cc::gps_l2_m_dll_pll_tracking_cc(
     set_relative_rate(1.0/((double)d_vector_length*2));
     //set_min_output_buffer((long int)300);
 
-    d_channel_internal_queue = 0;
     d_acquisition_gnss_synchro = 0;
     d_channel = 0;
     d_acq_code_phase_samples = 0.0;
@@ -540,12 +539,6 @@ void gps_l2_m_dll_pll_tracking_cc::set_channel(unsigned int channel)
 
 
 
-void gps_l2_m_dll_pll_tracking_cc::set_channel_queue(concurrent_queue<int> *channel_internal_queue)
-{
-    d_channel_internal_queue = channel_internal_queue;
-}
-
-
 void gps_l2_m_dll_pll_tracking_cc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
 {
     d_acquisition_gnss_synchro = p_gnss_synchro;
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h
index 5f278b5..a3645cc 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h
@@ -77,7 +77,6 @@ public:
     void set_channel(unsigned int channel);
     void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
     void start_tracking();
-    void set_channel_queue(concurrent_queue<int> *channel_internal_queue);
 
     int general_work (int noutput_items, gr_vector_int &ninput_items,
             gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
@@ -108,7 +107,6 @@ private:
 
     // tracking configuration vars
     boost::shared_ptr<gr::msg_queue> d_queue;
-    concurrent_queue<int> *d_channel_internal_queue;
     unsigned int d_vector_length;
     bool d_dump;
 
diff --git a/src/core/interfaces/acquisition_interface.h b/src/core/interfaces/acquisition_interface.h
index a34373d..722b997 100644
--- a/src/core/interfaces/acquisition_interface.h
+++ b/src/core/interfaces/acquisition_interface.h
@@ -59,7 +59,6 @@ public:
     virtual void set_threshold(float threshold) = 0;
     virtual void set_doppler_max(unsigned int doppler_max) = 0;
     virtual void set_doppler_step(unsigned int doppler_step) = 0;
-    virtual void set_channel_queue(concurrent_queue<int> *channel_internal_queue) = 0;
     virtual void init() = 0;
     virtual void set_local_code() = 0;
     virtual signed int mag() = 0;
diff --git a/src/core/interfaces/channel_interface.h b/src/core/interfaces/channel_interface.h
index 6a744de..ad5cb19 100644
--- a/src/core/interfaces/channel_interface.h
+++ b/src/core/interfaces/channel_interface.h
@@ -54,9 +54,6 @@ public:
     virtual Gnss_Signal get_signal() const = 0;
     virtual void start_acquisition() = 0;
     virtual void set_signal(const Gnss_Signal&) = 0;
-    virtual void start() = 0;
-    virtual void standby() = 0;
-    virtual void stop() = 0;
 };
 
 #endif /* GNSS_SDR_CHANNEL_INTERFACE_H_ */
diff --git a/src/core/interfaces/tracking_interface.h b/src/core/interfaces/tracking_interface.h
index 4d3b385..70724e0 100644
--- a/src/core/interfaces/tracking_interface.h
+++ b/src/core/interfaces/tracking_interface.h
@@ -57,7 +57,6 @@ public:
     virtual void start_tracking() = 0;
     virtual void set_gnss_synchro(Gnss_Synchro* gnss_synchro) = 0;
     virtual void set_channel(unsigned int channel) = 0;
-    virtual void set_channel_queue(concurrent_queue<int> *channel_internal_queue) = 0;
 };
 
 #endif /* GNSS_SDR_TRACKING_INTERFACE_H_ */
diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc
index ad029b3..a79b4cd 100644
--- a/src/core/receiver/gnss_flowgraph.cc
+++ b/src/core/receiver/gnss_flowgraph.cc
@@ -35,6 +35,7 @@
 #include "gnss_flowgraph.h"
 #include "unistd.h"
 
+#include <memory>
 #include <algorithm>
 #include <exception>
 #include <iostream>
@@ -90,12 +91,12 @@ void GNSSFlowgraph::start()
 
 void GNSSFlowgraph::stop()
 {
-    for (unsigned int i = 0; i < channels_count_; i++)
-        {
-            channels_.at(i)->stop();
-            LOG(INFO) << "Channel " << i << " in state " << channels_state_[i];
-        }
-    LOG(INFO) << "Threads finished. Return to main program.";
+//    for (unsigned int i = 0; i < channels_count_; i++)
+//        {
+//            channels_.at(i)->stop_channel();
+//            LOG(INFO) << "Channel " << i << " in state " << channels_state_[i];
+//        }
+//    LOG(INFO) << "Threads finished. Return to main program.";
     top_block_->stop();
     running_ = false;
 }
@@ -303,7 +304,7 @@ void GNSSFlowgraph::connect()
                 }
             channels_.at(i)->set_signal(available_GNSS_signals_.front());
             LOG(INFO) << "Channel " << i << " assigned to " << available_GNSS_signals_.front();
-            channels_.at(i)->start();
+            //channels_.at(i)->start_channel();
 
             if (channels_state_[i] == 1)
                 {
@@ -342,8 +343,6 @@ void GNSSFlowgraph::connect()
 }
 
 
-
-
 void GNSSFlowgraph::wait()
 {
     if (!running_)
@@ -389,16 +388,8 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what)
             }
         channels_.at(who)->set_signal(available_GNSS_signals_.front());
         available_GNSS_signals_.pop_front();
-        //todo: This is a provisional bug fix to avoid random channel state machine deadlock caused by an incorrect sequence of events
-        //      Correct sequence: start_acquisition() is triggered after the negative acquisition driven by the process_channel_messages() thread inside channel class
-        //      Incorrect sequence: due to thread concurrency, some times start_acquisition is triggered BEFORE the last negative_acquisition notification, thus producing a deadlock
-        //      a short delay here (5ms) apparently reduces the chances to enter in this deadlock
-        usleep(5000);
         channels_.at(who)->start_acquisition();
-
         break;
-        // TODO: Tracking messages
-
     case 1:
         LOG(INFO) << "Channel " << who << " ACQ SUCCESS satellite " << channels_.at(who)->get_signal().get_satellite();
         channels_state_[who] = 2;
@@ -438,7 +429,6 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what)
         else
             {
                 channels_state_[who] = 0;
-                channels_.at(who)->standby();
                 available_GNSS_signals_.push_back( channels_.at(who)->get_signal() );
             }
 
@@ -478,7 +468,7 @@ void GNSSFlowgraph::init()
     /*
      * Instantiates the receiver blocks
      */
-    std::shared_ptr<GNSSBlockFactory> block_factory_ = std::make_shared<GNSSBlockFactory>();
+    std::unique_ptr<GNSSBlockFactory> block_factory_(new GNSSBlockFactory());
 
     // 1. read the number of RF front-ends available (one file_source per RF front-end)
     sources_count_ = configuration_->property("Receiver.sources_count", 1);
@@ -532,6 +522,7 @@ void GNSSFlowgraph::init()
 
     std::shared_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> channels = block_factory_->GetChannels(configuration_, queue_);
 
+    //todo:check smart pointer coherence...
     channels_count_ = channels->size();
     for (unsigned int i = 0; i < channels_count_; i++)
         {
diff --git a/src/core/receiver/gnss_flowgraph.h b/src/core/receiver/gnss_flowgraph.h
index 8d93aec..ad06267 100644
--- a/src/core/receiver/gnss_flowgraph.h
+++ b/src/core/receiver/gnss_flowgraph.h
@@ -128,7 +128,6 @@ private:
     unsigned int applied_actions_;
     std::string config_file_;
     std::shared_ptr<ConfigurationInterface> configuration_;
-    std::shared_ptr<GNSSBlockFactory> block_factory_;
 
     std::vector<std::shared_ptr<GNSSBlockInterface>> sig_source_;
     std::vector<std::shared_ptr<GNSSBlockInterface>> sig_conditioner_;
diff --git a/src/tests/gnss_block/galileo_e1_dll_pll_veml_tracking_test.cc b/src/tests/gnss_block/galileo_e1_dll_pll_veml_tracking_test.cc
index 59a871a..6b2afe0 100644
--- a/src/tests/gnss_block/galileo_e1_dll_pll_veml_tracking_test.cc
+++ b/src/tests/gnss_block/galileo_e1_dll_pll_veml_tracking_test.cc
@@ -73,7 +73,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
 };
@@ -133,11 +132,6 @@ TEST_F(GalileoE1DllPllVemlTrackingInternalTest, ConnectAndRun)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        tracking->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-
-    ASSERT_NO_THROW( {
         tracking->connect(top_block);
         gr::analog::sig_source_c::sptr source = gr::analog::sig_source_c::make(fs_in, gr::analog::GR_SIN_WAVE, 1000, 1, gr_complex(0));
         boost::shared_ptr<gr::block> valve = gnss_sdr_make_valve(sizeof(gr_complex), nsamples, queue);
@@ -195,10 +189,6 @@ TEST_F(GalileoE1DllPllVemlTrackingInternalTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        tracking->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         tracking->connect(top_block);
     }) << "Failure connecting tracking to the top_block." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc
index 80abdf3..883c6e9 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc
@@ -83,7 +83,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -388,10 +387,6 @@ TEST_F(GalileoE1Pcps8msAmbiguousAcquisitionGSoC2013Test, ConnectAndRun)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -440,10 +435,6 @@ TEST_F(GalileoE1Pcps8msAmbiguousAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -530,10 +521,6 @@ TEST_F(GalileoE1Pcps8msAmbiguousAcquisitionGSoC2013Test, ValidationOfResultsProb
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc
index cdbc254..92f1217 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc
@@ -83,7 +83,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -419,10 +418,6 @@ TEST_F(GalileoE1PcpsAmbiguousAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -507,10 +502,6 @@ TEST_F(GalileoE1PcpsAmbiguousAcquisitionGSoC2013Test, ValidationOfResultsProbabi
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc
index 0f50225..57d2d27 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc
@@ -87,7 +87,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -206,10 +205,6 @@ TEST_F(GalileoE1PcpsAmbiguousAcquisitionGSoCTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_threshold(config->property("Acquisition.threshold", 0.00001));
     }) << "Failure setting threshold." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc
index faf8fcc..917e030 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc
@@ -77,7 +77,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -190,10 +189,6 @@ TEST_F(GalileoE1PcpsAmbiguousAcquisitionTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_threshold(config->property("Acquisition.threshold", 1e-9));
     }) << "Failure setting threshold." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc
index 995c598..78db7dc 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc
@@ -84,7 +84,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -419,10 +418,6 @@ TEST_F(GalileoE1PcpsCccwsrAmbiguousAcquisitionTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -519,10 +514,6 @@ TEST_F(GalileoE1PcpsCccwsrAmbiguousAcquisitionTest, ValidationOfResultsProbabili
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc b/src/tests/gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc
index 29d7e00..8dee5ab 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc
@@ -91,7 +91,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -554,10 +553,6 @@ TEST_F(GalileoE1PcpsQuickSyncAmbiguousAcquisitionGSoC2014Test, ValidationOfResul
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -647,10 +642,6 @@ TEST_F(GalileoE1PcpsQuickSyncAmbiguousAcquisitionGSoC2014Test, ValidationOfResul
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -736,10 +727,6 @@ TEST_F(GalileoE1PcpsQuickSyncAmbiguousAcquisitionGSoC2014Test, ValidationOfResul
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc
index d0f0849..d184ef9 100644
--- a/src/tests/gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc
@@ -90,7 +90,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -424,10 +423,6 @@ TEST_F(GalileoE1PcpsTongAmbiguousAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(5000);
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -514,10 +509,6 @@ TEST_F(GalileoE1PcpsTongAmbiguousAcquisitionGSoC2013Test, ValidationOfResultsPro
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc b/src/tests/gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc
index 8aa2fba..6a5556b 100644
--- a/src/tests/gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc
+++ b/src/tests/gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc
@@ -85,7 +85,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -613,10 +612,6 @@ TEST_F(GalileoE5aPcpsAcquisitionGSoC2014GensourceTest, ValidationOfSIM)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition_Galileo.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -761,10 +756,6 @@ TEST_F(GalileoE5aPcpsAcquisitionGSoC2014GensourceTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -854,10 +845,6 @@ TEST_F(GalileoE5aPcpsAcquisitionGSoC2014GensourceTest, FourSatsGen)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
diff --git a/src/tests/gnss_block/galileo_e5a_tracking_test.cc b/src/tests/gnss_block/galileo_e5a_tracking_test.cc
index 0720503..5f6aa6a 100644
--- a/src/tests/gnss_block/galileo_e5a_tracking_test.cc
+++ b/src/tests/gnss_block/galileo_e5a_tracking_test.cc
@@ -72,7 +72,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
 };
@@ -131,10 +130,6 @@ TEST_F(GalileoE5aTrackingTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        tracking->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         tracking->connect(top_block);
     }) << "Failure connecting tracking to the top_block." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc
index c4012b8..9d46915 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc
@@ -85,7 +85,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -415,10 +414,6 @@ TEST_F(GpsL1CaPcpsAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(10000);
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -512,10 +507,6 @@ TEST_F(GpsL1CaPcpsAcquisitionGSoC2013Test, ValidationOfResultsProbabilities)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
 
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_test.cc
index de86b28..96cd016 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_acquisition_test.cc
@@ -79,7 +79,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -195,10 +194,6 @@ TEST_F(GpsL1CaPcpsAcquisitionTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_threshold(0.1);
     }) << "Failure setting threshold." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_multithread_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_multithread_acquisition_gsoc2013_test.cc
index c8d6fb0..03d478b 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_multithread_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_multithread_acquisition_gsoc2013_test.cc
@@ -87,7 +87,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -416,10 +415,6 @@ TEST_F(GpsL1CaPcpsMultithreadAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -502,10 +497,6 @@ TEST_F(GpsL1CaPcpsMultithreadAcquisitionGSoC2013Test, ValidationOfResultsProbabi
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc
index 1da6098..8d609b2 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc
@@ -83,7 +83,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -408,10 +407,6 @@ TEST_F(GpsL1CaPcpsOpenClAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -492,10 +487,6 @@ TEST_F(GpsL1CaPcpsOpenClAcquisitionGSoC2013Test, ValidationOfResultsProbabilitie
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc
index 1844e8b..e8c95b0 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc
@@ -88,7 +88,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -530,10 +529,6 @@ TEST_F(GpsL1CaPcpsQuickSyncAcquisitionGSoC2014Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro."<< std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(10000);
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -628,10 +623,6 @@ TEST_F(GpsL1CaPcpsQuickSyncAcquisitionGSoC2014Test, ValidationOfResultsWithNoise
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(10000);
     }) << "Failure setting doppler_max."<< std::endl;
 
@@ -721,10 +712,6 @@ TEST_F(GpsL1CaPcpsQuickSyncAcquisitionGSoC2014Test, ValidationOfResultsProbabili
         acquisition->set_gnss_synchro(&gnss_synchro);
     }) << "Failure setting gnss_synchro."<< std::endl;
 
-    ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue."<< std::endl;
-
   /*  ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max."<< std::endl;
diff --git a/src/tests/gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc b/src/tests/gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc
index 726a5ad..1c74251 100644
--- a/src/tests/gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc
+++ b/src/tests/gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc
@@ -84,7 +84,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -413,10 +412,6 @@ TEST_F(GpsL1CaPcpsTongAcquisitionGSoC2013Test, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
@@ -503,10 +498,6 @@ TEST_F(GpsL1CaPcpsTongAcquisitionGSoC2013Test, ValidationOfResultsProbabilities)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_doppler_max(config->property("Acquisition.doppler_max", 10000));
     }) << "Failure setting doppler_max." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc b/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
index c6f2dc1..a340f9b 100644
--- a/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
+++ b/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
@@ -74,7 +74,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
 };
@@ -126,10 +125,6 @@ TEST_F(GpsL2MDllPllTrackingTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        tracking->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         tracking->connect(top_block);
     }) << "Failure connecting tracking to the top_block." << std::endl;
 
diff --git a/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc b/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
index 11a5440..46d10eb 100644
--- a/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
+++ b/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
@@ -85,7 +85,6 @@ protected:
     std::shared_ptr<InMemoryConfiguration> config;
     Gnss_Synchro gnss_synchro;
     size_t item_size;
-    concurrent_queue<int> channel_internal_queue;
     bool stop;
     int message;
     boost::thread ch_thread;
@@ -206,10 +205,6 @@ TEST_F(GpsL2MPcpsAcquisitionTest, ValidationOfResults)
     }) << "Failure setting gnss_synchro." << std::endl;
 
     ASSERT_NO_THROW( {
-        acquisition->set_channel_queue(&channel_internal_queue);
-    }) << "Failure setting channel_internal_queue." << std::endl;
-
-    ASSERT_NO_THROW( {
         acquisition->set_threshold(0.001);
     }) << "Failure setting threshold." << std::endl;
 
diff --git a/src/tests/single_test_main.cc b/src/tests/single_test_main.cc
index c698b4e..25afe3b 100644
--- a/src/tests/single_test_main.cc
+++ b/src/tests/single_test_main.cc
@@ -54,13 +54,8 @@
 #include "sbas_satellite_correction.h"
 
 concurrent_queue<Gps_Acq_Assist> global_gps_acq_assist_queue;
-concurrent_queue<Gps_Ref_Location> global_gps_ref_location_queue;
-concurrent_queue<Gps_Ref_Time> global_gps_ref_time_queue;
 
-concurrent_map<Gps_Almanac> global_gps_almanac_map;
 concurrent_map<Gps_Acq_Assist> global_gps_acq_assist_map;
-concurrent_map<Gps_Ref_Location> global_gps_ref_location_map;
-concurrent_map<Gps_Ref_Time> global_gps_ref_time_map;
 
 
 int main(int argc, char **argv)
diff --git a/src/tests/test_main.cc b/src/tests/test_main.cc
index 52e6a90..a9e63f9 100644
--- a/src/tests/test_main.cc
+++ b/src/tests/test_main.cc
@@ -86,29 +86,29 @@ DECLARE_string(log_dir);
 #include "gnss_block/rtcm_printer_test.cc"
 #include "gnss_block/file_signal_source_test.cc"
 #include "gnss_block/fir_filter_test.cc"
-#include "gnss_block/gps_l1_ca_pcps_acquisition_test.cc"
-#include "gnss_block/gps_l2_m_pcps_acquisition_test.cc"
-#include "gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/gps_l1_ca_pcps_acquisition_test.cc"
+//#include "gnss_block/gps_l2_m_pcps_acquisition_test.cc"
+//#include "gnss_block/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc"
 //#include "gnss_block/gps_l1_ca_pcps_multithread_acquisition_gsoc2013_test.cc"
-#if OPENCL_BLOCKS_TEST
-#include "gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc"
-#endif
-#include "gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc"
-#include "gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc"
-#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc"
-#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc"
-#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc"
-#include "gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc"
-#include "gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc"
-#include "gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc"
-#include "gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc"
+//#if OPENCL_BLOCKS_TEST
+//#include "gnss_block/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc"
+//#endif
+//#include "gnss_block/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc"
+//#include "gnss_block/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_test.cc"
+//#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc"
+//#include "gnss_block/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc"
+//#include "gnss_block/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc"
 #include "gnss_block/galileo_e1_dll_pll_veml_tracking_test.cc"
 #include "gnuradio_block/gnss_sdr_valve_test.cc"
 #include "gnuradio_block/direct_resampler_conditioner_cc_test.cc"
 
 //#include "gnss_block/galileo_e5a_pcps_acquisition_test.cc"
 //#include "gnss_block/galileo_e5a_pcps_acquisition_test_2.cc"
-#include "gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc"
+//#include "gnss_block/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc"
 #include "gnss_block/galileo_e5a_tracking_test.cc"
 #include "gnss_block/gps_l2_m_dll_pll_tracking_test.cc"
 
@@ -116,13 +116,7 @@ DECLARE_string(log_dir);
 // For GPS NAVIGATION (L1)
 
 concurrent_queue<Gps_Acq_Assist> global_gps_acq_assist_queue;
-concurrent_queue<Gps_Ref_Location> global_gps_ref_location_queue;
-concurrent_queue<Gps_Ref_Time> global_gps_ref_time_queue;
-
-concurrent_map<Gps_Almanac> global_gps_almanac_map;
 concurrent_map<Gps_Acq_Assist> global_gps_acq_assist_map;
-concurrent_map<Gps_Ref_Location> global_gps_ref_location_map;
-concurrent_map<Gps_Ref_Time> global_gps_ref_time_map;
 
 
 int main(int argc, char **argv)
diff --git a/src/utils/front-end-cal/main.cc b/src/utils/front-end-cal/main.cc
index e4f9f00..6ee2a17 100644
--- a/src/utils/front-end-cal/main.cc
+++ b/src/utils/front-end-cal/main.cc
@@ -313,7 +313,6 @@ int main(int argc, char** argv)
 
     acquisition->set_channel(1);
     acquisition->set_gnss_synchro(gnss_synchro);
-    acquisition->set_channel_queue(&channel_internal_queue);
     acquisition->set_threshold(configuration->property("Acquisition.threshold", 0.0));
     acquisition->set_doppler_max(configuration->property("Acquisition.doppler_max", 10000));
     acquisition->set_doppler_step(configuration->property("Acquisition.doppler_step", 250));
@@ -340,6 +339,7 @@ int main(int argc, char** argv)
     // Get visible GPS satellites (positive acquisitions with Doppler measurements)
     // Compute Doppler estimations
 
+    //todo: Fix the front-end cal to support new channel internal message system (no more external queues)
     std::map<int,double> doppler_measurements_map;
     std::map<int,double> cn0_measurements_map;
 

-- 
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