[hamradio-commits] [gnss-sdr] 16/20: Fix issue about the change in the VOLK API

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Thu Jun 30 20:08:59 UTC 2016


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 a826215778f910a61839b7c97f8cdbefcb09ab78
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Sun May 29 21:18:41 2016 +0200

    Fix issue about the change in the VOLK API
---
 cmake/Modules/FindVolk.cmake                       |  8 +++----
 .../acquisition/gnuradio_blocks/CMakeLists.txt     | 26 ++++++++++++++++++++++
 ...alileo_e5a_noncoherent_iq_acquisition_caf_cc.cc |  8 +++++++
 .../galileo_pcps_8ms_acquisition_cc.cc             |  6 +++++
 .../gnuradio_blocks/pcps_acquisition_cc.cc         |  4 ++++
 .../pcps_acquisition_fine_doppler_cc.cc            |  9 ++++++++
 .../gnuradio_blocks/pcps_acquisition_sc.cc         |  4 ++++
 .../pcps_assisted_acquisition_cc.cc                |  5 +++++
 .../gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc  |  7 ++++++
 .../pcps_multithread_acquisition_cc.cc             |  4 ++++
 .../gnuradio_blocks/pcps_opencl_acquisition_cc.cc  |  8 +++++++
 .../pcps_quicksync_acquisition_cc.cc               |  4 ++++
 .../gnuradio_blocks/pcps_tong_acquisition_cc.cc    |  4 ++++
 13 files changed, 93 insertions(+), 4 deletions(-)

diff --git a/cmake/Modules/FindVolk.cmake b/cmake/Modules/FindVolk.cmake
index a8e82a4..ffe0a48 100644
--- a/cmake/Modules/FindVolk.cmake
+++ b/cmake/Modules/FindVolk.cmake
@@ -9,22 +9,22 @@ FIND_PATH(
     VOLK_INCLUDE_DIRS
     NAMES volk/volk.h
     HINTS $ENV{VOLK_DIR}/include
-        ${PC_VOLK_INCLUDEDIR}
+          ${PC_VOLK_INCLUDEDIR}
     PATHS /usr/local/include
           /usr/include
-          ${GNURADIO_INSTALL_PREFIX}/include
+          ${CMAKE_INSTALL_PREFIX}/include
 )
 
 FIND_LIBRARY(
     VOLK_LIBRARIES
     NAMES volk
     HINTS $ENV{VOLK_DIR}/lib
-        ${PC_VOLK_LIBDIR}
+          ${PC_VOLK_LIBDIR}
     PATHS /usr/local/lib
           /usr/local/lib64
           /usr/lib
           /usr/lib64
-          ${GNURADIO_INSTALL_PREFIX}/lib
+          ${CMAKE_INSTALL_PREFIX}/lib
 )
 
 set(VOLK_VERSION ${PC_VOLK_VERSION})
diff --git a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
index 70d887f..37aae69 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
@@ -47,6 +47,32 @@ include_directories(
 )
 
 
+## Workaround for issues with the change of VOLK API
+## See https://github.com/gnuradio/volk/issues/84
+## and https://github.com/gnss-sdr/gnss-sdr/issues/31
+
+if(NOT VOLK_VERSION)
+    set(VOLK_VERSION "1.2.2")
+endif(NOT VOLK_VERSION)
+
+if(VOLK_VERSION VERSION_EQUAL 1.2.2)
+    find_file(VOLK_GREATER_THAN_122
+              NAMES volk/volk_32f_index_max_32u.h
+              HINTS ${CMAKE_INSTALL_PREFIX}/include
+              PATHS /usr/local/include
+                    /usr/include
+                    ${CMAKE_INSTALL_PREFIX}/include
+              )
+     if(VOLK_GREATER_THAN_122)
+         set(VOLK_VERSION "1.2.3+")
+     endif(VOLK_GREATER_THAN_122)
+endif(VOLK_VERSION VERSION_EQUAL 1.2.2)
+
+if(VOLK_VERSION VERSION_GREATER 1.2.2)
+   add_definitions(-DVOLK_GT_122=1)
+endif(VOLK_VERSION VERSION_GREATER 1.2.2)
+
+
 if(OPENCL_FOUND)
     include_directories( ${OPENCL_INCLUDE_DIRS} )
     if(OS_IS_MACOSX)
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 94734e7..d08a7bd 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
@@ -424,11 +424,19 @@ int galileo_e5a_noncoherentIQ_acquisition_caf_cc::general_work(int noutput_items
 
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
             uint16_t indext_IA = 0;
             uint16_t indext_IB = 0;
             uint16_t indext_QA = 0;
             uint16_t indext_QB = 0;
+#else
+            unsigned int indext = 0;
+            unsigned int indext_IA = 0;
+            unsigned int indext_IB = 0;
+            unsigned int indext_QA = 0;
+            unsigned int indext_QB = 0;
+#endif
             float magt = 0.0;
             float magt_IA = 0.0;
             float magt_IB = 0.0;
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 191a94f..13a0be9 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
@@ -242,9 +242,15 @@ int galileo_pcps_8ms_acquisition_cc::general_work(int noutput_items,
         {
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
             uint16_t indext_A = 0;
             uint16_t indext_B = 0;
+#else
+            unsigned int indext = 0;
+            unsigned int indext_A = 0;
+            unsigned int indext_B = 0;
+#endif
             float magt = 0.0;
             float magt_A = 0.0;
             float magt_B = 0.0;
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
index 0f8ef0f..c48d79c 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.cc
@@ -284,7 +284,11 @@ int pcps_acquisition_cc::general_work(int noutput_items,
         {
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
+#else
+            unsigned int indext = 0;
+#endif
             float magt = 0.0;
             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer
 
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 b81eeb5..ecc4480 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
@@ -222,8 +222,13 @@ double pcps_acquisition_fine_doppler_cc::search_maximum()
     float magt = 0.0;
     float fft_normalization_factor;
     int index_doppler = 0;
+#if VOLK_GT_122
     uint16_t tmp_intex_t;
     uint16_t index_time = 0;
+#else
+    unsigned int tmp_intex_t = 0;
+    unsigned int index_time = 0;
+#endif
 
     for (int i=0;i<d_num_doppler_points;i++)
         {
@@ -359,7 +364,11 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler(gr_vector_const_void_star
 
     volk_32fc_magnitude_squared_32f(p_tmp_vector, fft_operator->get_outbuf(), fft_size_extended);
 
+#if VOLK_GT_122
     uint16_t tmp_index_freq = 0;
+#else
+    unsigned int tmp_index_freq = 0;
+#endif
     volk_32f_index_max_16u(&tmp_index_freq, p_tmp_vector, fft_size_extended);
 
     //case even
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
index 1d45f45..855ec01 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_sc.cc
@@ -281,7 +281,11 @@ int pcps_acquisition_sc::general_work(int noutput_items,
         {
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
+#else
+            unsigned int indext = 0;
+#endif
             float magt = 0.0;
             const lv_16sc_t *in = (const lv_16sc_t *)input_items[0]; //Get the input samples pointer
             int effective_fft_size = ( d_bit_transition_flag ? d_fft_size/2 : d_fft_size );
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 6e31447..980a3b5 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
@@ -268,8 +268,13 @@ double pcps_assisted_acquisition_cc::search_maximum()
     float magt = 0.0;
     float fft_normalization_factor;
     int index_doppler = 0;
+#if VOLK_GT_122
     uint16_t tmp_intex_t;
     uint16_t index_time = 0;
+#else
+    unsigned int tmp_intex_t = 0;
+    unsigned int index_time = 0;
+#endif
 
     for (int i=0;i<d_num_doppler_points;i++)
         {
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 10f6cab..23457b4 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
@@ -254,9 +254,16 @@ int pcps_cccwsr_acquisition_cc::general_work(int noutput_items,
         {
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
             uint16_t indext_plus = 0;
             uint16_t indext_minus = 0;
+#else
+
+            unsigned int indext = 0;
+            unsigned int indext_plus = 0;
+            unsigned int indext_minus = 0;
+#endif
             float magt = 0.0;
             float magt_plus = 0.0;
             float magt_minus = 0.0;
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 3cfd18b..51bcc39 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_multithread_acquisition_cc.cc
@@ -200,7 +200,11 @@ void pcps_multithread_acquisition_cc::acquisition_core()
 {
     // initialize acquisition algorithm
     int doppler;
+#if VOLK_GT_122
     uint16_t indext = 0;
+#else
+    unsigned int indext = 0;
+#endif
     float magt = 0.0;
     float fft_normalization_factor = (float)d_fft_size * (float)d_fft_size;
     gr_complex* in = d_in_buffer[d_well_count];
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 b048a0b..8fa645f 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
@@ -386,7 +386,11 @@ void pcps_opencl_acquisition_cc::acquisition_core_volk()
 {
     // initialize acquisition algorithm
     int doppler;
+#if VOLK_GT_122
     uint16_t indext = 0;
+#else
+    unsigned int indext = 0;
+#endif
     float magt = 0.0;
     float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size);
     gr_complex* in = d_in_buffer[d_well_count];
@@ -508,7 +512,11 @@ void pcps_opencl_acquisition_cc::acquisition_core_opencl()
 {
     // initialize acquisition algorithm
     int doppler;
+#if VOLK_GT_122
     uint16_t indext = 0;
+#else
+    unsigned int indext = 0;
+#endif
     float magt = 0.0;
     float fft_normalization_factor = (static_cast<float>(d_fft_size_pow2) * static_cast<float>(d_fft_size)); //This works, but I am not sure why.
     gr_complex* in = d_in_buffer[d_well_count];
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 35dbc49..60fd668 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
@@ -301,7 +301,11 @@ int pcps_quicksync_acquisition_cc::general_work(int noutput_items,
             /* initialize acquisition  implementing the QuickSync algorithm*/
             //DLOG(INFO) << "START CASE 1";
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
+#else
+            unsigned int indext = 0;
+#endif
             float magt = 0.0;
             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer
 
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 e7d1cca..ada08ce 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
@@ -279,7 +279,11 @@ int pcps_tong_acquisition_cc::general_work(int noutput_items,
         {
             // initialize acquisition algorithm
             int doppler;
+#if VOLK_GT_122
             uint16_t indext = 0;
+#else
+            unsigned int indext = 0;
+#endif
             float magt = 0.0;
             const gr_complex *in = (const gr_complex *)input_items[0]; //Get the input samples pointer
             float fft_normalization_factor = static_cast<float>(d_fft_size) * static_cast<float>(d_fft_size);

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