[hamradio-commits] [gnss-sdr] 287/303: Fix execution of extra tests in some environments

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:36:08 UTC 2017


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

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

commit f8adffe5c21113b5d8c8c863663a87ceb3365c14
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Sun Feb 5 20:07:34 2017 +0100

    Fix execution of extra tests in some environments
    
    and some code cleaning
---
 src/tests/CMakeLists.txt                           |   2 +-
 src/tests/system-tests/obs_gps_l1_system_test.cc   |   8 -
 .../signal-processing-blocks/libs/CMakeLists.txt   |   2 +-
 .../libs/tlm_dump_reader.cc                        |   8 +-
 .../libs/tlm_dump_reader.h                         |  12 +-
 .../libs/tracking_dump_reader.cc                   |  10 +-
 .../libs/tracking_dump_reader.h                    |  12 +-
 .../libs/tracking_true_obs_reader.h                |  12 +-
 .../gps_l1_ca_telemetry_decoder_test.cc            | 110 ++++-----
 .../tracking/gps_l1_ca_dll_pll_tracking_test.cc    | 247 ++++++++++-----------
 10 files changed, 189 insertions(+), 234 deletions(-)

diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 3dae171..e0b3db5 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -279,7 +279,7 @@ if(ENABLE_UNIT_TESTING)
                                 signal_generator_blocks
                                 signal_generator_adapters
                                 pvt_gr_blocks
-                                signak_processing_testing_lib
+                                signal_processing_testing_lib
                                 ${VOLK_GNSSSDR_LIBRARIES}
                                 ${GNSS_SDR_TEST_OPTIONAL_LIBS}
     )
diff --git a/src/tests/system-tests/obs_gps_l1_system_test.cc b/src/tests/system-tests/obs_gps_l1_system_test.cc
index 78951d3..4eff21d 100644
--- a/src/tests/system-tests/obs_gps_l1_system_test.cc
+++ b/src/tests/system-tests/obs_gps_l1_system_test.cc
@@ -53,14 +53,6 @@
 #include "signal_generator_flags.h"
 
 
- DECLARE_string(generator_binary);
- DECLARE_string(rinex_nav_file);
- DECLARE_int32(duration);
- DECLARE_string(static_position);
- DECLARE_string(dynamic_position);
- DECLARE_string(filename_rinex_obs);
- DECLARE_string(filename_raw_data);
-
 // For GPS NAVIGATION (L1)
 concurrent_queue<Gps_Acq_Assist> global_gps_acq_assist_queue;
 concurrent_map<Gps_Acq_Assist> global_gps_acq_assist_map;
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt
index 3e68bc0..8b4136e 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt
@@ -32,6 +32,6 @@ include_directories(
 
 file(GLOB SIGNAL_PROCESSING_TESTING_LIB_HEADERS "*.h")
 list(SORT SIGNAL_PROCESSING_TESTING_LIB_HEADERS)
-add_library(signak_processing_testing_lib ${SIGNAL_PROCESSING_TESTING_LIB_SOURCES} ${SIGNAL_PROCESSING_TESTING_LIB_HEADERS})
+add_library(signal_processing_testing_lib ${SIGNAL_PROCESSING_TESTING_LIB_SOURCES} ${SIGNAL_PROCESSING_TESTING_LIB_HEADERS})
 source_group(Headers FILES ${SIGNAL_PROCESSING_TESTING_LIB_HEADERS})
 
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc
index 3cf8993..40e522f 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc
@@ -63,12 +63,12 @@ long int tlm_dump_reader::num_epochs()
 {
     std::ifstream::pos_type size;
     int number_of_vars_in_epoch = 3;
-    int epoch_size_bytes = sizeof(double)*number_of_vars_in_epoch;
+    int epoch_size_bytes = sizeof(double) * number_of_vars_in_epoch;
     std::ifstream tmpfile( d_dump_filename.c_str(), std::ios::binary | std::ios::ate);
     if (tmpfile.is_open())
         {
             size = tmpfile.tellg();
-            long int  nepoch=size / epoch_size_bytes;
+            long int nepoch = size / epoch_size_bytes;
             return nepoch;
         }
     else
@@ -86,12 +86,12 @@ bool tlm_dump_reader::open_obs_file(std::string out_file)
                     d_dump_filename=out_file;
                     d_dump_file.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
                     d_dump_file.open(d_dump_filename.c_str(), std::ios::in | std::ios::binary);
-                    std::cout << "TLM dump enabled, Log file: " << d_dump_filename.c_str()<< std::endl;
+                    std::cout << "TLM dump enabled, Log file: " << d_dump_filename.c_str() << std::endl;
                     return true;
             }
             catch (const std::ifstream::failure & e)
             {
-                    std::cout << "Problem opening TLM dump Log file: " << d_dump_filename.c_str()<< std::endl;
+                    std::cout << "Problem opening TLM dump Log file: " << d_dump_filename.c_str() << std::endl;
                     return false;
             }
         }
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h
index a3afec2..7339b6e 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h
@@ -28,16 +28,16 @@
  * -------------------------------------------------------------------------
  */
 
-#ifndef GNSS_SDR_tlm_dump_reader_H
-#define GNSS_SDR_tlm_dump_reader_H
+#ifndef GNSS_SDR_TLM_DUMP_READER_H
+#define GNSS_SDR_TLM_DUMP_READER_H
 
 #include <iostream>
 #include <fstream>
 #include <string>
 #include <vector>
 
-class tlm_dump_reader {
-
+class tlm_dump_reader
+{
 public:
     ~tlm_dump_reader();
     bool read_binary_obs();
@@ -51,10 +51,8 @@ public:
     double d_TOW_at_Preamble;
 
 private:
-
     std::string d_dump_filename;
     std::ifstream d_dump_file;
-
 };
 
-#endif //GNSS_SDR_tlm_dump_reader_H
+#endif //GNSS_SDR_TLM_DUMP_READER_H
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc
index ac4120e..c410167 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc
@@ -78,8 +78,8 @@ bool tracking_dump_reader::restart()
 long int tracking_dump_reader::num_epochs()
 {
     std::ifstream::pos_type size;
-    int number_of_double_vars=11;
-    int number_of_float_vars=5;
+    int number_of_double_vars = 11;
+    int number_of_float_vars = 5;
     int epoch_size_bytes=sizeof(unsigned long int) +
             sizeof(double) * number_of_double_vars +
             sizeof(float) * number_of_float_vars;
@@ -113,8 +113,10 @@ bool tracking_dump_reader::open_obs_file(std::string out_file)
                     std::cout << "Problem opening Tracking dump Log file: " << d_dump_filename.c_str() << std::endl;
                     return false;
             }
-        }else{
-                return false;
+        }
+    else
+        {
+            return false;
         }
 }
 
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h
index 9f145ec..6ec71eb 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h
@@ -28,16 +28,16 @@
  * -------------------------------------------------------------------------
  */
 
-#ifndef GNSS_SDR_tracking_dump_reader_H
-#define GNSS_SDR_tracking_dump_reader_H
+#ifndef GNSS_SDR_TRACKING_DUMP_READER_H
+#define GNSS_SDR_TRACKING_DUMP_READER_H
 
 #include <iostream>
 #include <fstream>
 #include <string>
 #include <vector>
 
-class tracking_dump_reader {
-
+class tracking_dump_reader
+{
 public:
     ~tracking_dump_reader();
     bool read_binary_obs();
@@ -80,10 +80,8 @@ public:
     double aux2;
 
 private:
-
     std::string d_dump_filename;
     std::ifstream d_dump_file;
-
 };
 
-#endif //GNSS_SDR_tracking_dump_reader_H
+#endif //GNSS_SDR_TRACKING_DUMP_READER_H
diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h
index c7f1e64..08b69f4 100644
--- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h
+++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h
@@ -28,16 +28,16 @@
  * -------------------------------------------------------------------------
  */
 
-#ifndef GNSS_SDR_tracking_true_obs_reader_H
-#define GNSS_SDR_tracking_true_obs_reader_H
+#ifndef GNSS_SDR_TRACKING_TRUE_OBS_READER_H
+#define GNSS_SDR_TRACKING_TRUE_OBS_READER_H
 
 #include <iostream>
 #include <fstream>
 #include <string>
 #include <vector>
 
-class tracking_true_obs_reader {
-
+class tracking_true_obs_reader
+{
 public:
     ~tracking_true_obs_reader();
     bool read_binary_obs();
@@ -53,10 +53,8 @@ public:
     double tow;
 
 private:
-
     std::string d_dump_filename;
     std::ifstream d_dump_file;
-
 };
 
-#endif //GNSS_SDR_tracking_true_obs_reader_H
+#endif //GNSS_SDR_RACKING_TRUE_OBS_READER_H
diff --git a/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc b/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc
index 0f4a816..6842528 100644
--- a/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc
+++ b/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc
@@ -44,7 +44,6 @@
 #include <gnuradio/blocks/file_source.h>
 #include <gnuradio/analog/sig_source_waveform.h>
 #include <gnuradio/analog/sig_source_c.h>
-#include <gnuradio/msg_queue.h>
 #include <gnuradio/blocks/interleaved_char_to_complex.h>
 #include <gnuradio/blocks/null_sink.h>
 #include <gnuradio/blocks/skiphead.h>
@@ -64,15 +63,6 @@
 #include "gps_l1_ca_dll_pll_c_aid_tracking.h"
 #include "signal_generator_flags.h"
 
-DECLARE_string(generator_binary);
-DECLARE_string(rinex_nav_file);
-DECLARE_int32(duration); // 20
-DECLARE_int32(fs_gen_hz);
-DECLARE_string(static_position);
-DECLARE_string(dynamic_position);
-DECLARE_string(filename_rinex_obs);
-DECLARE_string(filename_raw_data);
-DECLARE_int32(test_satellite_PRN);
 
 // ######## GNURADIO BLOCK MESSAGE RECEVER FOR TRACKING MESSAGES #########
 class GpsL1CADllPllTelemetryDecoderTest_msg_rx;
@@ -218,7 +208,6 @@ public:
 
     void configure_receiver();
 
-    gr::msg_queue::sptr queue;
     gr::top_block_sptr top_block;
     std::shared_ptr<GNSSBlockFactory> factory;
     std::shared_ptr<InMemoryConfiguration> config;
@@ -302,34 +291,33 @@ void GpsL1CATelemetryDecoderTest::check_results(arma::vec true_time_s,
     //1. True value interpolation to match the measurement times
 
     arma::vec true_value_interp;
-    arma::interp1(true_time_s,true_value,meas_time_s,true_value_interp);
+    arma::interp1(true_time_s, true_value, meas_time_s, true_value_interp);
 
     //2. RMSE
     arma::vec err;
 
-    err=meas_value-true_value_interp;
-    arma::vec err2=arma::square(err);
-    double rmse=sqrt(arma::mean(err2));
+    err = meas_value - true_value_interp;
+    arma::vec err2 = arma::square(err);
+    double rmse = sqrt(arma::mean(err2));
 
     //3. Mean err and variance
-    double error_mean=arma::mean(err);
-    double error_var=arma::var(err);
+    double error_mean = arma::mean(err);
+    double error_var = arma::var(err);
 
     // 4. Peaks
-    double max_error=arma::max(err);
-    double min_error=arma::min(err);
+    double max_error = arma::max(err);
+    double min_error = arma::min(err);
 
     //5. report
 
-    std::cout<< std::setprecision(10)<<"TLM TOW RMSE="
-            <<rmse<<", mean="<<error_mean
-            <<", stdev="<<sqrt(error_var)<<" (max,min)="<<max_error<<","<<min_error<<" [Chips]"<<std::endl;
+    std::cout << std::setprecision(10) << "TLM TOW RMSE="
+              << rmse << ", mean=" << error_mean
+              << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Chips]" << std::endl;
 
 }
 
 TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults)
 {
-
     // Configure the signal generator
     configure_generator();
 
@@ -345,19 +333,17 @@ TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults)
     //open true observables log file written by the simulator
     tracking_true_obs_reader true_obs_data;
     int test_satellite_PRN = FLAGS_test_satellite_PRN;
-    std::cout<<"Testing satellite PRN="<<test_satellite_PRN<<std::endl;
-    std::string true_obs_file=std::string("./gps_l1_ca_obs_prn");
+    std::cout << "Testing satellite PRN=" << test_satellite_PRN << std::endl;
+    std::string true_obs_file = std::string("./gps_l1_ca_obs_prn");
     true_obs_file.append(std::to_string(test_satellite_PRN));
     true_obs_file.append(".dat");
     ASSERT_NO_THROW({
-        if (true_obs_data.open_obs_file(true_obs_file)==false)
+        if (true_obs_data.open_obs_file(true_obs_file) == false)
             {
                 throw std::exception();
             };
-    })<< "Failure opening true observables file" << std::endl;
-
+    }) << "Failure opening true observables file" << std::endl;
 
-    queue = gr::msg_queue::make(0);
     top_block = gr::make_top_block("Telemetry_Decoder test");
     std::shared_ptr<TrackingInterface> tracking = std::make_shared<GpsL1CaDllPllTracking>(config.get(), "Tracking_1C", 1, 1);
     //std::shared_ptr<TrackingInterface> tracking = std::make_shared<GpsL1CaDllPllCAidTracking>(config.get(), "Tracking_1C", 1, 1);
@@ -366,7 +352,7 @@ TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults)
 
     // load acquisition data based on the first epoch of the true observations
     ASSERT_NO_THROW({
-        if (true_obs_data.read_binary_obs()==false)
+        if (true_obs_data.read_binary_obs() == false)
         {
             throw std::exception();
         };
@@ -375,8 +361,8 @@ TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults)
     //restart the epoch counter
     true_obs_data.restart();
 
-    std::cout<<"Initial Doppler [Hz]="<<true_obs_data.doppler_l1_hz<<" Initial code delay [Chips]="<<true_obs_data.prn_delay_chips<<std::endl;
-    gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS-true_obs_data.prn_delay_chips/GPS_L1_CA_CODE_LENGTH_CHIPS)*baseband_sampling_freq*GPS_L1_CA_CODE_PERIOD;
+    std::cout << "Initial Doppler [Hz]=" << true_obs_data.doppler_l1_hz << " Initial code delay [Chips]=" << true_obs_data.prn_delay_chips <<s td::endl;
+    gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS - true_obs_data.prn_delay_chip s/ GPS_L1_CA_CODE_LENGTH_CHIPS) * baseband_sampling_freq * GPS_L1_CA_CODE_PERIOD;
     gnss_synchro.Acq_doppler_hz = true_obs_data.doppler_l1_hz;
     gnss_synchro.Acq_samplestamp_samples = 0;
 
@@ -414,68 +400,66 @@ TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults)
 
     EXPECT_NO_THROW( {
         gettimeofday(&tv, NULL);
-        begin = tv.tv_sec *1000000 + tv.tv_usec;
+        begin = tv.tv_sec * 1000000 + tv.tv_usec;
         top_block->run(); // Start threads and wait
         gettimeofday(&tv, NULL);
-        end = tv.tv_sec *1000000 + tv.tv_usec;
+        end = tv.tv_sec * 1000000 + tv.tv_usec;
     }) << "Failure running the top_block." << std::endl;
 
     //check results
     //load the true values
-    long int nepoch =true_obs_data.num_epochs();
-    std::cout<<"True observation epochs="<<nepoch<<std::endl;
+    long int nepoch = true_obs_data.num_epochs();
+    std::cout << "True observation epochs=" << nepoch << std::endl;
 
-    arma::vec true_timestamp_s=arma::zeros(nepoch,1);
-    arma::vec true_acc_carrier_phase_cycles=arma::zeros(nepoch,1);
-    arma::vec true_Doppler_Hz=arma::zeros(nepoch,1);
-    arma::vec true_prn_delay_chips=arma::zeros(nepoch,1);
-    arma::vec true_tow_s=arma::zeros(nepoch,1);
+    arma::vec true_timestamp_s = arma::zeros(nepoch, 1);
+    arma::vec true_acc_carrier_phase_cycles = arma::zeros(nepoch, 1);
+    arma::vec true_Doppler_Hz = arma::zeros(nepoch, 1);
+    arma::vec true_prn_delay_chips = arma::zeros(nepoch, 1);
+    arma::vec true_tow_s = arma::zeros(nepoch, 1);
 
-    long int epoch_counter=0;
+    long int epoch_counter = 0;
     while(true_obs_data.read_binary_obs())
     {
-        true_timestamp_s(epoch_counter)=true_obs_data.signal_timestamp_s;
-        true_acc_carrier_phase_cycles(epoch_counter)=true_obs_data.acc_carrier_phase_cycles;
-        true_Doppler_Hz(epoch_counter)=true_obs_data.doppler_l1_hz;
-        true_prn_delay_chips(epoch_counter)=true_obs_data.prn_delay_chips;
-        true_tow_s(epoch_counter)=true_obs_data.tow;
+        true_timestamp_s(epoch_counter) = true_obs_data.signal_timestamp_s;
+        true_acc_carrier_phase_cycles(epoch_counter) = true_obs_data.acc_carrier_phase_cycles;
+        true_Doppler_Hz(epoch_counter) = true_obs_data.doppler_l1_hz;
+        true_prn_delay_chips(epoch_counter) = true_obs_data.prn_delay_chips;
+        true_tow_s(epoch_counter) = true_obs_data.tow;
         epoch_counter++;
     }
 
-
     //load the measured values
     tlm_dump_reader tlm_dump;
     ASSERT_NO_THROW({
-        if (tlm_dump.open_obs_file(std::string("./telemetry0.dat"))==false)
+        if (tlm_dump.open_obs_file(std::string("./telemetry0.dat")) == false)
             {
                 throw std::exception();
             };
-    })<< "Failure opening telemetry dump file" << std::endl;
+    }) << "Failure opening telemetry dump file" << std::endl;
 
-    nepoch =tlm_dump.num_epochs();
-    std::cout<<"Measured observation epochs="<<nepoch<<std::endl;
+    nepoch = tlm_dump.num_epochs();
+    std::cout << "Measured observation epochs=" << nepoch << std::endl;
 
-    arma::vec tlm_timestamp_s=arma::zeros(nepoch,1);
-    arma::vec tlm_TOW_at_Preamble=arma::zeros(nepoch,1);
-    arma::vec tlm_tow_s=arma::zeros(nepoch,1);
+    arma::vec tlm_timestamp_s = arma::zeros(nepoch, 1);
+    arma::vec tlm_TOW_at_Preamble = arma::zeros(nepoch, 1);
+    arma::vec tlm_tow_s = arma::zeros(nepoch, 1);
 
-    epoch_counter=0;
+    epoch_counter = 0;
     while(tlm_dump.read_binary_obs())
     {
-        tlm_timestamp_s(epoch_counter)=tlm_dump.Prn_timestamp_ms/1000.0;
-        tlm_TOW_at_Preamble(epoch_counter)=tlm_dump.d_TOW_at_Preamble;
-        tlm_tow_s(epoch_counter)=tlm_dump.TOW_at_current_symbol;
+        tlm_timestamp_s(epoch_counter) = tlm_dump.Prn_timestamp_ms / 1000.0;
+        tlm_TOW_at_Preamble(epoch_counter) = tlm_dump.d_TOW_at_Preamble;
+        tlm_tow_s(epoch_counter) = tlm_dump.TOW_at_current_symbol;
         epoch_counter++;
-
     }
 
     //Cut measurement initial transitory of the measurements
     arma::uvec initial_meas_point = arma::find(tlm_tow_s >= true_tow_s(0), 1, "first");
 
-    tlm_timestamp_s=tlm_timestamp_s.subvec(initial_meas_point(0),tlm_timestamp_s.size()-1);
-    tlm_tow_s=tlm_tow_s.subvec(initial_meas_point(0),tlm_tow_s.size()-1);
+    tlm_timestamp_s = tlm_timestamp_s.subvec(initial_meas_point(0), tlm_timestamp_s.size() - 1);
+    tlm_tow_s = tlm_tow_s.subvec(initial_meas_point(0), tlm_tow_s.size() - 1);
 
-    check_results(true_timestamp_s,true_tow_s,tlm_timestamp_s,tlm_tow_s);
+    check_results(true_timestamp_s, true_tow_s, tlm_timestamp_s, tlm_tow_s);
 
     std::cout <<  "Test completed in " << (end - begin) << " microseconds" << std::endl;
 }
diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc
index fbc8807..baf372d 100644
--- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc
+++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc
@@ -2,12 +2,12 @@
  * \file gps_l1_ca_dll_pll_tracking_test.cc
  * \brief  This class implements a tracking test for Galileo_E5a_DLL_PLL_Tracking
  *  implementation based on some input parameters.
- * \author Javier Arribas, 2015. jarribas(at)cttc.es
+ * \author Javier Arribas, 2017. jarribas(at)cttc.es
  *
  *
  * -------------------------------------------------------------------------
  *
- * Copyright (C) 2012-2015  (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2012-2017  (see AUTHORS file for a list of contributors)
  *
  * GNSS-SDR is a software defined Global Navigation
  *          Satellite Systems receiver
@@ -39,11 +39,11 @@
 #include <gnuradio/blocks/file_source.h>
 #include <gnuradio/analog/sig_source_waveform.h>
 #include <gnuradio/analog/sig_source_c.h>
-#include <gnuradio/msg_queue.h>
 #include <gnuradio/blocks/interleaved_char_to_complex.h>
 #include <gnuradio/blocks/null_sink.h>
 #include <gnuradio/blocks/skiphead.h>
 #include <gtest/gtest.h>
+#include <sys/wait.h>
 #include "GPS_L1_CA.h"
 #include "gnss_block_factory.h"
 #include "gnss_block_interface.h"
@@ -55,15 +55,6 @@
 #include "tracking_dump_reader.h"
 #include "signal_generator_flags.h"
 
-DECLARE_string(generator_binary);
-DECLARE_string(rinex_nav_file);
-DECLARE_int32(duration);
-DECLARE_int32(fs_gen_hz);
-DECLARE_string(static_position);
-DECLARE_string(dynamic_position);
-DECLARE_string(filename_rinex_obs);
-DECLARE_string(filename_raw_data);
-DECLARE_int32(test_satellite_PRN);
 
 // ######## GNURADIO BLOCK MESSAGE RECEVER #########
 class GpsL1CADllPllTrackingTest_msg_rx;
@@ -82,7 +73,6 @@ private:
 public:
     int rx_message;
     ~GpsL1CADllPllTrackingTest_msg_rx(); //!< Default destructor
-
 };
 
 GpsL1CADllPllTrackingTest_msg_rx_sptr GpsL1CADllPllTrackingTest_msg_rx_make()
@@ -163,7 +153,6 @@ public:
 
     void configure_receiver();
 
-    gr::msg_queue::sptr queue;
     gr::top_block_sptr top_block;
     std::shared_ptr<GNSSBlockFactory> factory;
     std::shared_ptr<InMemoryConfiguration> config;
@@ -244,28 +233,28 @@ void GpsL1CADllPllTrackingTest::check_results_doppler(arma::vec true_time_s,
     //1. True value interpolation to match the measurement times
 
     arma::vec true_value_interp;
-    arma::interp1(true_time_s,true_value,meas_time_s,true_value_interp);
+    arma::interp1(true_time_s, true_value, meas_time_s, true_value_interp);
 
     //2. RMSE
     arma::vec err;
 
-    err=meas_value-true_value_interp;
-    arma::vec err2=arma::square(err);
-    double rmse=sqrt(arma::mean(err2));
+    err = meas_value - true_value_interp;
+    arma::vec err2 = arma::square(err);
+    double rmse = sqrt(arma::mean(err2));
 
     //3. Mean err and variance
-    double error_mean=arma::mean(err);
-    double error_var=arma::var(err);
+    double error_mean = arma::mean(err);
+    double error_var = arma::var(err);
 
     // 5. Peaks
-    double max_error=arma::max(err);
-    double min_error=arma::min(err);
+    double max_error = arma::max(err);
+    double min_error = arma::min(err);
 
     //5. report
 
-    std::cout<< std::setprecision(10)<<"TRK Doppler RMSE="<<rmse
-            <<", mean="<<error_mean
-            <<", stdev="<<sqrt(error_var)<<" (max,min)="<<max_error<<","<<min_error<<" [Hz]"<<std::endl;
+    std::cout << std::setprecision(10) << "TRK Doppler RMSE=" << rmse
+              << ", mean=" << error_mean
+              << ", stdev="<< sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Hz]" << std::endl;
 
 }
 
@@ -277,28 +266,28 @@ void GpsL1CADllPllTrackingTest::check_results_acc_carrier_phase(arma::vec true_t
     //1. True value interpolation to match the measurement times
 
     arma::vec true_value_interp;
-    arma::interp1(true_time_s,true_value,meas_time_s,true_value_interp);
+    arma::interp1(true_time_s, true_value, meas_time_s, true_value_interp);
 
     //2. RMSE
     arma::vec err;
 
-    err=meas_value-true_value_interp;
-    arma::vec err2=arma::square(err);
-    double rmse=sqrt(arma::mean(err2));
+    err = meas_value - true_value_interp;
+    arma::vec err2 = arma::square(err);
+    double rmse = sqrt(arma::mean(err2));
 
     //3. Mean err and variance
-    double error_mean=arma::mean(err);
-    double error_var=arma::var(err);
+    double error_mean = arma::mean(err);
+    double error_var = arma::var(err);
 
     // 4. Peaks
-    double max_error=arma::max(err);
-    double min_error=arma::min(err);
+    double max_error = arma::max(err);
+    double min_error = arma::min(err);
 
     //5. report
 
-    std::cout<< std::setprecision(10)<<"TRK acc carrier phase RMSE="<<rmse
-            <<", mean="<<error_mean
-            <<", stdev="<<sqrt(error_var)<<" (max,min)="<<max_error<<","<<min_error<<" [Hz]"<<std::endl;
+    std::cout << std::setprecision(10) << "TRK acc carrier phase RMSE=" << rmse
+              << ", mean=" << error_mean
+              << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Hz]" << std::endl;
 
 }
 
@@ -310,30 +299,31 @@ void GpsL1CADllPllTrackingTest::check_results_codephase(arma::vec true_time_s,
     //1. True value interpolation to match the measurement times
 
     arma::vec true_value_interp;
-    arma::interp1(true_time_s,true_value,meas_time_s,true_value_interp);
+    arma::interp1(true_time_s, true_value, meas_time_s, true_value_interp);
 
     //2. RMSE
     arma::vec err;
 
-    err=meas_value-true_value_interp;
-    arma::vec err2=arma::square(err);
-    double rmse=sqrt(arma::mean(err2));
+    err = meas_value - true_value_interp;
+    arma::vec err2 = arma::square(err);
+    double rmse = sqrt(arma::mean(err2));
 
     //3. Mean err and variance
-    double error_mean=arma::mean(err);
-    double error_var=arma::var(err);
+    double error_mean = arma::mean(err);
+    double error_var = arma::var(err);
 
     // 4. Peaks
-    double max_error=arma::max(err);
-    double min_error=arma::min(err);
+    double max_error = arma::max(err);
+    double min_error = arma::min(err);
 
     //5. report
 
-    std::cout<< std::setprecision(10)<<"TRK code phase RMSE="<<rmse
-            <<", mean="<<error_mean
-            <<", stdev="<<sqrt(error_var)<<" (max,min)="<<max_error<<","<<min_error<<" [Chips]"<<std::endl;
+    std::cout << std::setprecision(10) << "TRK code phase RMSE=" << rmse
+              << ", mean=" << error_mean
+              << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Chips]" << std::endl;
 
 }
+
 TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults)
 {
     // Configure the signal generator
@@ -351,19 +341,17 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults)
     //open true observables log file written by the simulator
     tracking_true_obs_reader true_obs_data;
     int test_satellite_PRN = FLAGS_test_satellite_PRN;
-    std::cout<<"Testing satellite PRN="<<test_satellite_PRN<<std::endl;
-    std::string true_obs_file=std::string("./gps_l1_ca_obs_prn");
+    std::cout << "Testing satellite PRN=" << test_satellite_PRN << std::endl;
+    std::string true_obs_file = std::string("./gps_l1_ca_obs_prn");
     true_obs_file.append(std::to_string(test_satellite_PRN));
     true_obs_file.append(".dat");
     ASSERT_NO_THROW({
-        if (true_obs_data.open_obs_file(true_obs_file)==false)
+        if (true_obs_data.open_obs_file(true_obs_file) == false)
             {
                 throw std::exception();
             };
-    })<< "Failure opening true observables file" << std::endl;
-
+    }) << "Failure opening true observables file" << std::endl;
 
-    queue = gr::msg_queue::make(0);
     top_block = gr::make_top_block("Tracking test");
     std::shared_ptr<TrackingInterface> tracking = std::make_shared<GpsL1CaDllPllTracking>(config.get(), "Tracking_1C", 1, 1);
     //std::shared_ptr<TrackingInterface> tracking = std::make_shared<GpsL1CaDllPllCAidTracking>(config.get(), "Tracking_1C", 1, 1);
@@ -372,17 +360,17 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults)
 
     // load acquisition data based on the first epoch of the true observations
     ASSERT_NO_THROW({
-        if (true_obs_data.read_binary_obs()==false)
-        {
-            throw std::exception();
-        };
-    })<< "Failure reading true observables file" << std::endl;
+        if (true_obs_data.read_binary_obs() == false)
+            {
+                throw std::exception();
+            };
+    }) << "Failure reading true observables file" << std::endl;
 
     //restart the epoch counter
     true_obs_data.restart();
 
-    std::cout<<"Initial Doppler [Hz]="<<true_obs_data.doppler_l1_hz<<" Initial code delay [Chips]="<<true_obs_data.prn_delay_chips<<std::endl;
-    gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS-true_obs_data.prn_delay_chips/GPS_L1_CA_CODE_LENGTH_CHIPS)*baseband_sampling_freq*GPS_L1_CA_CODE_PERIOD;
+    std::cout << "Initial Doppler [Hz]=" << true_obs_data.doppler_l1_hz << " Initial code delay [Chips]=" << true_obs_data.prn_delay_chips << std::endl;
+    gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS - true_obs_data.prn_delay_chips / GPS_L1_CA_CODE_LENGTH_CHIPS) * baseband_sampling_freq * GPS_L1_CA_CODE_PERIOD;
     gnss_synchro.Acq_doppler_hz = true_obs_data.doppler_l1_hz;
     gnss_synchro.Acq_samplestamp_samples = 0;
 
@@ -414,83 +402,78 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults)
 
     EXPECT_NO_THROW( {
         gettimeofday(&tv, NULL);
-        begin = tv.tv_sec *1000000 + tv.tv_usec;
+        begin = tv.tv_sec * 1000000 + tv.tv_usec;
         top_block->run(); // Start threads and wait
         gettimeofday(&tv, NULL);
-        end = tv.tv_sec *1000000 + tv.tv_usec;
+        end = tv.tv_sec * 1000000 + tv.tv_usec;
     }) << "Failure running the top_block." << std::endl;
 
     //check results
-     //load the true values
-     long int nepoch =true_obs_data.num_epochs();
-     std::cout<<"True observation epochs="<<nepoch<<std::endl;
-
-     arma::vec true_timestamp_s=arma::zeros(nepoch,1);
-     arma::vec true_acc_carrier_phase_cycles=arma::zeros(nepoch,1);
-     arma::vec true_Doppler_Hz=arma::zeros(nepoch,1);
-     arma::vec true_prn_delay_chips=arma::zeros(nepoch,1);
-     arma::vec true_tow_s=arma::zeros(nepoch,1);
-
-     long int epoch_counter=0;
-     while(true_obs_data.read_binary_obs())
-     {
-         true_timestamp_s(epoch_counter)=true_obs_data.signal_timestamp_s;
-         true_acc_carrier_phase_cycles(epoch_counter)=true_obs_data.acc_carrier_phase_cycles;
-         true_Doppler_Hz(epoch_counter)=true_obs_data.doppler_l1_hz;
-         true_prn_delay_chips(epoch_counter)=true_obs_data.prn_delay_chips;
-         true_tow_s(epoch_counter)=true_obs_data.tow;
-         epoch_counter++;
-     }
-
-
-     //load the measured values
-     tracking_dump_reader trk_dump;
-     ASSERT_NO_THROW({
-         if (trk_dump.open_obs_file(std::string("./tracking_ch_0.dat"))==false)
-             {
-                 throw std::exception();
-             };
-     })<< "Failure opening tracking dump file" << std::endl;
-
-     nepoch =trk_dump.num_epochs();
-     std::cout<<"Measured observation epochs="<<nepoch<<std::endl;
-
-     arma::vec trk_timestamp_s=arma::zeros(nepoch,1);
-     arma::vec trk_acc_carrier_phase_cycles=arma::zeros(nepoch,1);
-     arma::vec trk_Doppler_Hz=arma::zeros(nepoch,1);
-     arma::vec trk_prn_delay_chips=arma::zeros(nepoch,1);
-
-
-     epoch_counter=0;
-     while(trk_dump.read_binary_obs())
-     {
-         trk_timestamp_s(epoch_counter)=static_cast<double>(trk_dump.PRN_start_sample_count)/static_cast<double>(baseband_sampling_freq);
-         trk_acc_carrier_phase_cycles(epoch_counter)=trk_dump.acc_carrier_phase_rad/GPS_TWO_PI;
-         trk_Doppler_Hz(epoch_counter)=trk_dump.carrier_doppler_hz;
-
-         double delay_chips=GPS_L1_CA_CODE_LENGTH_CHIPS
-                 -GPS_L1_CA_CODE_LENGTH_CHIPS
-                 *(fmod((static_cast<double>(trk_dump.PRN_start_sample_count)+trk_dump.aux1)/static_cast<double>(baseband_sampling_freq),1.0e-3)/1.0e-3);
-
-         trk_prn_delay_chips(epoch_counter)=delay_chips;
-         epoch_counter++;
-
-     }
-
-
-     //Align initial measurements and cut the tracking pull-in transitory
-
-     double pull_in_offset_s=1.0;
-     arma::uvec initial_meas_point = arma::find(trk_timestamp_s >= (true_timestamp_s(0)+pull_in_offset_s), 1, "first");
-
-     trk_timestamp_s=trk_timestamp_s.subvec(initial_meas_point(0),trk_timestamp_s.size()-1);
-     trk_acc_carrier_phase_cycles=trk_acc_carrier_phase_cycles.subvec(initial_meas_point(0),trk_acc_carrier_phase_cycles.size()-1);
-     trk_Doppler_Hz=trk_Doppler_Hz.subvec(initial_meas_point(0),trk_Doppler_Hz.size()-1);
-     trk_prn_delay_chips=trk_prn_delay_chips.subvec(initial_meas_point(0),trk_prn_delay_chips.size()-1);
-
-     check_results_doppler(true_timestamp_s,true_Doppler_Hz,trk_timestamp_s,trk_Doppler_Hz);
-     check_results_codephase(true_timestamp_s,true_prn_delay_chips,trk_timestamp_s,trk_prn_delay_chips);
-     check_results_acc_carrier_phase(true_timestamp_s,true_acc_carrier_phase_cycles,trk_timestamp_s,trk_acc_carrier_phase_cycles);
+    //load the true values
+    long int nepoch = true_obs_data.num_epochs();
+    std::cout << "True observation epochs=" << nepoch << std::endl;
+
+    arma::vec true_timestamp_s = arma::zeros(nepoch, 1);
+    arma::vec true_acc_carrier_phase_cycles = arma::zeros(nepoch, 1);
+    arma::vec true_Doppler_Hz = arma::zeros(nepoch, 1);
+    arma::vec true_prn_delay_chips = arma::zeros(nepoch, 1);
+    arma::vec true_tow_s = arma::zeros(nepoch, 1);
+
+    long int epoch_counter = 0;
+    while(true_obs_data.read_binary_obs())
+        {
+            true_timestamp_s(epoch_counter) = true_obs_data.signal_timestamp_s;
+            true_acc_carrier_phase_cycles(epoch_counter) = true_obs_data.acc_carrier_phase_cycles;
+            true_Doppler_Hz(epoch_counter) = true_obs_data.doppler_l1_hz;
+            true_prn_delay_chips(epoch_counter) = true_obs_data.prn_delay_chips;
+            true_tow_s(epoch_counter) = true_obs_data.tow;
+            epoch_counter++;
+        }
+
+    //load the measured values
+    tracking_dump_reader trk_dump;
+    ASSERT_NO_THROW({
+        if (trk_dump.open_obs_file(std::string("./tracking_ch_0.dat")) == false)
+            {
+                throw std::exception();
+            };
+    }) << "Failure opening tracking dump file" << std::endl;
+
+    nepoch = trk_dump.num_epochs();
+    std::cout << "Measured observation epochs=" << nepoch << std::endl;
+
+    arma::vec trk_timestamp_s = arma::zeros(nepoch, 1);
+    arma::vec trk_acc_carrier_phase_cycles = arma::zeros(nepoch, 1);
+    arma::vec trk_Doppler_Hz = arma::zeros(nepoch, 1);
+    arma::vec trk_prn_delay_chips = arma::zeros(nepoch, 1);
+
+    epoch_counter = 0;
+    while(trk_dump.read_binary_obs())
+        {
+            trk_timestamp_s(epoch_counter) = static_cast<double>(trk_dump.PRN_start_sample_count) / static_cast<double>(baseband_sampling_freq);
+            trk_acc_carrier_phase_cycles(epoch_counter) = trk_dump.acc_carrier_phase_rad / GPS_TWO_PI;
+            trk_Doppler_Hz(epoch_counter) = trk_dump.carrier_doppler_hz;
+
+            double delay_chips = GPS_L1_CA_CODE_LENGTH_CHIPS
+                    - GPS_L1_CA_CODE_LENGTH_CHIPS
+                    * (fmod((static_cast<double>(trk_dump.PRN_start_sample_count) + trk_dump.aux1) / static_cast<double>(baseband_sampling_freq), 1.0e-3) /1.0e-3);
+
+            trk_prn_delay_chips(epoch_counter) = delay_chips;
+            epoch_counter++;
+        }
+
+    //Align initial measurements and cut the tracking pull-in transitory
+    double pull_in_offset_s = 1.0;
+    arma::uvec initial_meas_point = arma::find(trk_timestamp_s >= (true_timestamp_s(0) + pull_in_offset_s), 1, "first");
+
+    trk_timestamp_s = trk_timestamp_s.subvec(initial_meas_point(0), trk_timestamp_s.size() - 1);
+    trk_acc_carrier_phase_cycles = trk_acc_carrier_phase_cycles.subvec(initial_meas_point(0), trk_acc_carrier_phase_cycles.size() - 1);
+    trk_Doppler_Hz = trk_Doppler_Hz.subvec(initial_meas_point(0), trk_Doppler_Hz.size() - 1);
+    trk_prn_delay_chips = trk_prn_delay_chips.subvec(initial_meas_point(0), trk_prn_delay_chips.size() - 1);
+
+    check_results_doppler(true_timestamp_s, true_Doppler_Hz, trk_timestamp_s, trk_Doppler_Hz);
+    check_results_codephase(true_timestamp_s, true_prn_delay_chips, trk_timestamp_s, trk_prn_delay_chips);
+    check_results_acc_carrier_phase(true_timestamp_s, true_acc_carrier_phase_cycles, trk_timestamp_s, trk_acc_carrier_phase_cycles);
 
     std::cout <<  "Signal tracking completed in " << (end - begin) << " microseconds" << std::endl;
 }

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