[hamradio-commits] [gnss-sdr] 218/303: Use GPSTk if found, let the user change that with -DENABLE_OWN_GPSTK=ON

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:36:02 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 7df15841b446485b3339cd31da0173b31d555a75
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Fri Dec 30 14:36:41 2016 +0100

    Use GPSTk if found, let the user change that with -DENABLE_OWN_GPSTK=ON
    
    Add diff stdev error computation for carrier phase
---
 src/tests/CMakeLists.txt                         | 92 +++++++++++++-----------
 src/tests/system-tests/obs_gps_l1_system_test.cc | 12 +++-
 2 files changed, 61 insertions(+), 43 deletions(-)

diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index f08fccc..71aae6c 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -136,6 +136,7 @@ endif(ENABLE_CUDA)
 ################################################################################
 # Optional generator
 ################################################################################
+option(ENABLE_OWN_GPSTK "Download, build and link GPSTk for system tests" OFF)
 if(ENABLE_SW_GENERATOR)
    ExternalProject_Add(
       gnss-sim
@@ -156,31 +157,38 @@ if(ENABLE_SW_GENERATOR)
    ################################################################################
    # Local installation of GPSTk http://www.gpstk.org/
    ################################################################################
-   set(gpstk_RELEASE "2.5")
-   set(gpstk_md5 "9d79f6838d274f5edfd46c780a6b1b72")
-   ExternalProject_Add(
-      gpstk-${gpstk_RELEASE}
-      URL https://sourceforge.net/projects/gpstk/files/gpstk/${gpstk_RELEASE}/gpstk-${gpstk_RELEASE}.src.tar.gz
-      URL_MD5 ${gpstk_md5}
-      SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk
-      BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk
-      CONFIGURE_COMMAND ""
-      BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/script_gpstk.sh -c
-      UPDATE_COMMAND ""
-      PATCH_COMMAND ""
-      INSTALL_COMMAND ""
-   )
-   set(GPSTK_INCLUDE_DIRS
-       ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/include CACHE PATH "Local GPSTK headers"
-   )
-   add_library(gpstk UNKNOWN IMPORTED)
-   set_property(TARGET gpstk PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gpstk${CMAKE_SHARED_LIBRARY_SUFFIX})
-   add_dependencies(gpstk gpstk-${gpstk_RELEASE})
-   set(GPSTK_BINDIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/bin/ )
-   add_definitions(-DGPSTK_BINDIR="${GPSTK_BINDIR}")
-   set(gpstk_libs gpstk)
+   find_package(GPSTK)
+   if(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK)
+      set(gpstk_RELEASE "2.5")
+      set(gpstk_md5 "9d79f6838d274f5edfd46c780a6b1b72")
+      ExternalProject_Add(
+         gpstk-${gpstk_RELEASE}
+         URL https://sourceforge.net/projects/gpstk/files/gpstk/${gpstk_RELEASE}/gpstk-${gpstk_RELEASE}.src.tar.gz
+         URL_MD5 ${gpstk_md5}
+         SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk
+         BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk
+         CONFIGURE_COMMAND ""
+         BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/script_gpstk.sh -c
+         UPDATE_COMMAND ""
+         PATCH_COMMAND ""
+         INSTALL_COMMAND ""
+      )
+      set(GPSTK_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/include CACHE PATH "Local GPSTK headers")
+      add_library(gpstk UNKNOWN IMPORTED)
+      set_property(TARGET gpstk PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gpstk${CMAKE_SHARED_LIBRARY_SUFFIX})
+      add_dependencies(gpstk gpstk-${gpstk_RELEASE})
+      set(GPSTK_BINDIR ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gpstk/dev/install/bin/ )
+      add_definitions(-DGPSTK_BINDIR="${GPSTK_BINDIR}")
+      set(gpstk_libs gpstk)
+   else(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK)
+       set(gpstk_libs ${GPSTK_LIBRARIES})
+       set(GPSTK_INCLUDE_DIRS ${GPSTK_INCLUDE_DIR})
+       set(GPSTK_BINDIR ${GPSTK_LIBRARY}/../bin/ )
+       add_definitions(-DGPSTK_BINDIR="${GPSTK_BINDIR}")
+   endif(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK)
 endif(ENABLE_SW_GENERATOR)
 
+
 add_definitions(-DTEST_PATH="${CMAKE_SOURCE_DIR}/src/tests/")
 
 include_directories(
@@ -481,23 +489,23 @@ if(ENABLE_SYSTEM_TESTING)
         ${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:ttff>
     )
 
-    add_executable(obs_gps_l1_system_test
-    ${CMAKE_CURRENT_SOURCE_DIR}/system-tests/obs_gps_l1_system_test.cc )
-    if(NOT ${GTEST_DIR_LOCAL})
-        add_dependencies(obs_gps_l1_system_test gtest-${gtest_RELEASE} )
-    else(NOT ${GTEST_DIR_LOCAL})
-        add_dependencies(obs_gps_l1_system_test gtest)
-    endif(NOT ${GTEST_DIR_LOCAL})
-    include_directories(${GPSTK_INCLUDE_DIRS})
-    target_link_libraries(obs_gps_l1_system_test ${GFlags_LIBS}
-                                                 ${GLOG_LIBRARIES}
-                                                 ${GTEST_LIBRARIES}
-                                                 gnss_sp_libs
-                                                 gnss_rx
-                                                 ${gpstk_libs})
-    add_custom_command(TARGET obs_gps_l1_system_test POST_BUILD
-        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:obs_gps_l1_system_test>
-        ${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:obs_gps_l1_system_test>
-    )
-
+    if(ENABLE_SW_GENERATOR)
+        add_executable(obs_gps_l1_system_test ${CMAKE_CURRENT_SOURCE_DIR}/system-tests/obs_gps_l1_system_test.cc )
+        if(NOT ${GTEST_DIR_LOCAL})
+            add_dependencies(obs_gps_l1_system_test gtest-${gtest_RELEASE} )
+        else(NOT ${GTEST_DIR_LOCAL})
+            add_dependencies(obs_gps_l1_system_test gtest)
+        endif(NOT ${GTEST_DIR_LOCAL})
+        include_directories(${GPSTK_INCLUDE_DIRS})
+        target_link_libraries(obs_gps_l1_system_test ${GFlags_LIBS}
+                                                     ${GLOG_LIBRARIES}
+                                                     ${GTEST_LIBRARIES}
+                                                     gnss_sp_libs
+                                                     gnss_rx
+                                                     ${gpstk_libs})
+        add_custom_command(TARGET obs_gps_l1_system_test POST_BUILD
+                           COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:obs_gps_l1_system_test>
+                               ${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:obs_gps_l1_system_test>
+        )
+    endif(ENABLE_SW_GENERATOR)
 endif(ENABLE_SYSTEM_TESTING)
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 cc7807d..b45a773 100644
--- a/src/tests/system-tests/obs_gps_l1_system_test.cc
+++ b/src/tests/system-tests/obs_gps_l1_system_test.cc
@@ -583,6 +583,7 @@ void Obs_Gps_L1_System_Test::check_results()
 
     // Compute carrier phase error
     prn_id = 0;
+    std::vector<double> mean_cp_diff_v;
     for(iter_diff = cp_diff.begin(); iter_diff != cp_diff.end(); iter_diff++)
         {
             // For each satellite with reference and measurements aligned in time
@@ -596,6 +597,7 @@ void Obs_Gps_L1_System_Test::check_results()
             if(number_obs > 0)
                 {
                     mean_diff = mean_diff / number_obs;
+                    mean_cp_diff_v.push_back(mean_diff);
                     std::cout << "-- Mean carrier phase difference for sat " << prn_id << ": " << mean_diff << std::endl;
                 }
             else
@@ -605,6 +607,14 @@ void Obs_Gps_L1_System_Test::check_results()
 
             prn_id++;
         }
+    sum_ = std::accumulate(mean_cp_diff_v.begin(), mean_cp_diff_v.end(), 0.0);
+    mean_ = sum_ / mean_cp_diff_v.size();
+    accum = 0.0;
+    std::for_each (std::begin(mean_cp_diff_v), std::end(mean_cp_diff_v), [&](const double d) {
+        accum += (d - mean_) * (d - mean_);
+    });
+    double stdev_cp = std::sqrt(accum / (mean_cp_diff_v.size() - 1));
+    std::cout << "Carrier phase diff error stdev = " << stdev_cp << " whole cycles (19 cm)" << std::endl;
 
     // Compute Doppler error
     prn_id = 0;
@@ -656,7 +666,7 @@ TEST_F(Obs_Gps_L1_System_Test, Observables_system_test)
     configure_generator();
 
     // Generate signal raw signal samples and observations RINEX file
-    generate_signal();
+    //generate_signal();
 
     std::cout << "Validating generated reference RINEX obs file: " << FLAGS_filename_rinex_obs << " ..." << std::endl;
     bool is_gen_rinex_obs_valid = check_valid_rinex_obs( "./" + FLAGS_filename_rinex_obs);

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