diff --git a/CMakeLists.txt b/CMakeLists.txt index 36690e1ad..a0eb5b977 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,18 +324,22 @@ set(GNSSSDR_PROTOBUF_MIN_VERSION "3.0.0") # Versions to download and build (but not installed) if not found ################################################################################ set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.2") -set(GNSSSDR_GLOG_LOCAL_VERSION "0.4.0") +set(GNSSSDR_GLOG_LOCAL_VERSION "0.5.0") set(GNSSSDR_ARMADILLO_LOCAL_VERSION "10.4.x") set(GNSSSDR_GTEST_LOCAL_VERSION "1.10.x") -set(GNSSSDR_GTEST_LOCAL_VERSION_POST_CMAKE_3_19 "23ef29555ef4789f555f1ba8c51b4c52975f0907") # Used with CMake >= 3.19 +set(GNSSSDR_GTEST_LOCAL_VERSION_POST_CMAKE_3_19 "f5e592d8ee5ffb1d9af5be7f715ce3576b8bf9c4") # Used with CMake >= 3.19 set(GNSSSDR_GNSS_SIM_LOCAL_VERSION "master") set(GNSSSDR_GPSTK_LOCAL_VERSION "8.0.0") set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.21") set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.11.4") -set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "3.15.8") +set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "3.16.0") set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.5.3") set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7") +if(CMAKE_VERSION VERSION_LESS "3.3") + set(GNSSSDR_GLOG_LOCAL_VERSION "0.4.0") # Fix for Debian 8 +endif() + if(CMAKE_VERSION VERSION_LESS "3.0.2") set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.1") # Fix for CentOS 7 set(GNSSSDR_GLOG_LOCAL_VERSION "0.3.4") # Fix for Ubuntu 14.04 @@ -549,7 +553,7 @@ set_package_properties(GOOGLETEST PROPERTIES ) if(NOT GOOGLETEST_FOUND) set_package_properties(GOOGLETEST PROPERTIES - PURPOSE "Googletest v${GNSSSDR_GTEST_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "Googletest v${GNSSSDR_GTEST_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() @@ -1306,7 +1310,7 @@ if(NOT GFLAGS_FOUND) else() message(STATUS " The gflags library has not been found.") endif() - message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built automatically") + message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded, built, and statically linked automatically") message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") set(GFLAGS_BUILD_COMMAND ${CMAKE_COMMAND} "--build" "${CMAKE_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}" @@ -1418,9 +1422,9 @@ if(NOT GFLAGS_FOUND) target_link_libraries(Gflags::gflags INTERFACE shlwapi.lib) endif() - set(LOCAL_GFLAGS TRUE CACHE STRING "GFlags downloaded and built automatically" FORCE) + set(LOCAL_GFLAGS TRUE CACHE STRING "GFlags downloaded, built, and statically linked automatically" FORCE) set_package_properties(GFLAGS PROPERTIES - PURPOSE "Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} and Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) if(CMAKE_VERSION VERSION_LESS 3.2) set_property(TARGET Gflags::gflags APPEND PROPERTY @@ -1446,7 +1450,7 @@ if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS}) if(NOT GFLAGS_FOUND) message(STATUS " or it is likely not linked to gflags.") endif() - message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built automatically") + message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked automatically") message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") if(NOT ${LOCAL_GFLAGS}) add_library(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} UNKNOWN IMPORTED) @@ -1469,7 +1473,7 @@ if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS}) set(GLOG_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) endif() - if(CMAKE_VERSION VERSION_LESS 3.2) + if(CMAKE_VERSION VERSION_LESS 3.3) if(CMAKE_VERSION VERSION_LESS 3.0) set(GLOG_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM}) set(GFLAGS_LIBRARIES_TO_LINK ${GFlags_LIBS}) @@ -1578,7 +1582,7 @@ ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src ${CMAKE_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src ) - else() # CMake > 3.0 but < 3.2 + else() # CMake > 3.0 but < 3.3 ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION} DEPENDS ${TARGET_GFLAGS} PREFIX ${CMAKE_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION} @@ -1602,7 +1606,7 @@ ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure ${GFlags_INCLUDE_DIRS} ) endif() - else() # CMake > 3.2 + else() # CMake > 3.3 set(GLOG_BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX} ) @@ -1623,10 +1627,11 @@ ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure SOURCE_DIR ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION} BINARY_DIR ${CMAKE_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION} CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_PREFIX_PATH=${GFLAGS_PREFIX_PATH} ${GLOG_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug> + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF BUILD_COMMAND "${GLOG_MAKE_PROGRAM} ${PARALLEL_BUILD}" BUILD_BYPRODUCTS ${GLOG_BUILD_BYPRODUCTS} UPDATE_COMMAND "" @@ -1685,10 +1690,10 @@ ${CMAKE_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure endif() endif() - set(LOCAL_GLOG TRUE CACHE STRING "Glog downloaded and built automatically" FORCE) + set(LOCAL_GLOG TRUE CACHE STRING "Glog downloaded, built, and statically linked automatically" FORCE) set_package_properties(GLOG PROPERTIES - PURPOSE "Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built when doing 'make'." + PURPOSE "Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() @@ -1814,7 +1819,7 @@ else() endif() if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) - message(STATUS " Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded and built automatically") + message(STATUS " Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded, built, and statically linked automatically") message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") set(armadillo_BRANCH ${GNSSSDR_ARMADILLO_LOCAL_VERSION}) set(armadillo_RELEASE ${armadillo_BRANCH}) @@ -1909,7 +1914,7 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) set(GFORTRAN "") endif() set(ARMADILLO_STATIC_LIBRARY ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}armadillo${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(LOCAL_ARMADILLO TRUE CACHE STRING "Armadillo downloaded and built automatically" FORCE) + set(LOCAL_ARMADILLO TRUE CACHE STRING "Armadillo downloaded, built, and statically linked automatically" FORCE) set(ARMADILLO_VERSION_STRING ${armadillo_RELEASE}) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/thirdparty/armadillo/armadillo-${armadillo_RELEASE}/include) add_library(Armadillo::armadillo STATIC IMPORTED) @@ -1941,7 +1946,7 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) endif() set_package_properties(Armadillo PROPERTIES DESCRIPTION "C++ library for linear algebra and scientific computing" - PURPOSE "Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() @@ -2053,7 +2058,7 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS if(MATIO_FOUND) message(STATUS " Matio installed version (${MATIO_VERSION_STRING}) is too old (>= ${GNSSSDR_MATIO_MIN_VERSION} is required).") endif() - message(STATUS " Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built automatically") + message(STATUS " Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded, built, and statically linked automatically") message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") find_package(ZLIB) set_package_properties(ZLIB PROPERTIES @@ -2222,7 +2227,7 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS message(FATAL_ERROR "*** The zlib library is required to build gnss-sdr") endif() set_package_properties(MATIO PROPERTIES - PURPOSE "Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() @@ -2237,7 +2242,7 @@ set_package_properties(PUGIXML PROPERTIES TYPE REQUIRED ) if(NOT PUGIXML_FOUND) - message(STATUS " PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") + message(STATUS " PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") set(PUGIXML_COMPILER -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}) set(PUGIXML_CMAKE_FLAGS "") if(DEFINED ENV{OECORE_TARGET_SYSROOT}) @@ -2326,7 +2331,7 @@ if(NOT PUGIXML_FOUND) endif() set_package_properties(PUGIXML PROPERTIES - PURPOSE "PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() @@ -2580,7 +2585,7 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI endif() endif() set_package_properties(Protobuf PROPERTIES - PURPOSE "Protocol Buffers v${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." + PURPOSE "Protocol Buffers v${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) endif() if(${Protobuf_VERSION} VERSION_EQUAL "0.0.0") diff --git a/README.md b/README.md index 4c858f4a6..eac9d2e42 100644 --- a/README.md +++ b/README.md @@ -322,11 +322,11 @@ $ sudo ldconfig #### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging: ``` -$ wget https://github.com/google/glog/archive/v0.4.0.tar.gz -$ tar xvfz v0.4.0.tar.gz -$ cd glog-0.4.0 -$ ./autogen.sh -$ ./configure +$ wget https://github.com/google/glog/archive/v0.5.0.tar.gz +$ tar xvfz v0.5.0.tar.gz +$ cd glog-0.5.0 +$ mkdir build && cd build +$ cmake .. $ make $ sudo make install $ sudo ldconfig @@ -395,9 +395,9 @@ $ sudo apt-get install autoconf automake libtool curl make g++ unzip and then: ``` -$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.15.8/protobuf-cpp-3.15.8.tar.gz -$ tar xvfz protobuf-cpp-3.15.8.tar.gz -$ cd protobuf-3.15.8 +$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.16.0/protobuf-cpp-3.16.0.tar.gz +$ tar xvfz protobuf-cpp-3.16.0.tar.gz +$ cd protobuf-3.16.0 $ ./autogen.sh $ ./configure $ make diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition_fpga.cc index 30c096a63..59ebe3309 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition_fpga.cc @@ -189,8 +189,8 @@ GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga( void GalileoE1PcpsAmbiguousAcquisitionFpga::stop_acquisition() { - // this command causes the SW to reset the HW. - acquisition_fpga_->reset_acquisition(); + // stop the acquisition and the other FPGA modules. + acquisition_fpga_->stop_acquisition(); } diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition_fpga.cc index 62461494f..ca26fba62 100644 --- a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition_fpga.cc @@ -192,8 +192,8 @@ GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga( void GalileoE5aPcpsAcquisitionFpga::stop_acquisition() { - // this command causes the SW to reset the HW. - acquisition_fpga_->reset_acquisition(); + // stop the acquisition and the other FPGA modules. + acquisition_fpga_->stop_acquisition(); } diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc index 8117920c7..5362f78bc 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc @@ -168,8 +168,8 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( void GpsL1CaPcpsAcquisitionFpga::stop_acquisition() { - // this command causes the SW to reset the HW. - acquisition_fpga_->reset_acquisition(); + // stop the acquisition and the other FPGA modules. + acquisition_fpga_->stop_acquisition(); } diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc index 464959a74..b3d0d117d 100644 --- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc @@ -158,6 +158,8 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga( void GpsL2MPcpsAcquisitionFpga::stop_acquisition() { + // stop the acquisition and the other FPGA modules. + acquisition_fpga_->stop_acquisition(); } diff --git a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition_fpga.cc index e287a8fd1..fe9a7a605 100644 --- a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition_fpga.cc @@ -170,8 +170,8 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga( void GpsL5iPcpsAcquisitionFpga::stop_acquisition() { - // this command causes the SW to reset the HW. - acquisition_fpga_->reset_acquisition(); + // stop the acquisition and the other FPGA modules. + acquisition_fpga_->stop_acquisition(); } diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 07629d80e..e1f8949e1 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -301,3 +301,11 @@ void pcps_acquisition_fpga::reset_acquisition() d_acquisition_fpga->reset_acquisition(); d_acquisition_fpga->close_device(); } + +void pcps_acquisition_fpga::stop_acquisition() +{ + // this function stops the acquisition and the other FPGA Modules. + d_acquisition_fpga->open_device(); + d_acquisition_fpga->stop_acquisition(); + d_acquisition_fpga->close_device(); +} diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h index aeebc27c9..3b3e534ee 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -189,6 +189,11 @@ public: */ void reset_acquisition(); + /*! + * \brief stop the acquisition and the other FPGA modules. + */ + void stop_acquisition(); + private: friend pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_); explicit pcps_acquisition_fpga(pcpsconf_fpga_t conf_); diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc index ab1439567..e198b32aa 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.cc +++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc @@ -240,11 +240,15 @@ void Fpga_Acquisition::close_device() void Fpga_Acquisition::reset_acquisition() { - // printf("============ resetting the hw now from the acquisition ==============="); - d_map_base[8] = RESET_ACQUISITION; // writing a 2 to d_map_base[8] resets the acquisition. This causes a reset of all + d_map_base[8] = RESET_ACQUISITION; // setting bit 2 of d_map_base[8] resets the acquisition. This causes a reset of all // the FPGA HW modules including the multicorrelators } +void Fpga_Acquisition::stop_acquisition() +{ + d_map_base[8] = STOP_ACQUISITION; // setting bit 3 of d_map_base[8] stops the acquisition module. This stops all + // the FPGA HW modules including the multicorrelators +} // this function is only used for the unit tests void Fpga_Acquisition::read_fpga_total_scale_factor(uint32_t *total_scale_factor, uint32_t *fw_scale_factor) diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.h b/src/algorithms/acquisition/libs/fpga_acquisition.h index 7b5453f0c..d9d2b31ba 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.h +++ b/src/algorithms/acquisition/libs/fpga_acquisition.h @@ -105,6 +105,11 @@ public: */ void reset_acquisition(); + /*! + * \brief stop the acquisition and the FPGA modules. + */ + void stop_acquisition(); + /*! * \brief Read the scaling factor that has been used by the FFT-IFFT */ @@ -138,8 +143,9 @@ public: private: // FPGA register parameters static const uint32_t PAGE_SIZE_DEFAULT = 0x10000; // default page size for the multicorrelator memory map - static const uint32_t RESET_ACQUISITION = 2; // command to reset the multicorrelator - static const uint32_t LAUNCH_ACQUISITION = 1; // command to launch the multicorrelator + static const uint32_t LAUNCH_ACQUISITION = 1; // command to launch the acquisition process + static const uint32_t RESET_ACQUISITION = 2; // command to reset the acquisition and the FPGA Modules + static const uint32_t STOP_ACQUISITION = 4; // command to stop the acquisition and the FPGA modules static const uint32_t TEST_REG_SANITY_CHECK = 0x55AA; // value to check the presence of the test register (to detect the hw) static const uint32_t LOCAL_CODE_CLEAR_MEM = 0x10000000; // command to clear the internal memory of the multicorrelator static const uint32_t MEM_LOCAL_CODE_WR_ENABLE = 0x0C000000; // command to enable the ENA and WR pins of the internal memory of the multicorrelator