Commit Graph

402 Commits

Author SHA1 Message Date
Carles Fernandez be86771ede
Move default destructor to header file, so compiler can make a better job 2019-07-21 19:32:52 +02:00
Carles Fernandez 49e64f94f6
Code cleaning, initializations 2019-07-20 11:13:28 +02:00
Marc Majoral 8b0e170a56 applied clang-format 2019-07-19 11:55:53 +02:00
Marc Majoral dd996bc2e2 Merge branch 'next' of https://github.com/mmajoral/gnss-sdr into fpga_extended_coherent_integration 2019-07-18 11:35:34 +02:00
Marc Majoral 4c22a1ce1a the tracking module is now sending 1 synchro_data per data symbol. 2019-07-17 18:01:27 +02:00
Carles Fernandez 19b35b6cef
Remove cstdio header
See * MISRA C++:2008, 27-0-1 - The stream input/output library <cstdio> shall not be used.
2019-07-14 00:42:56 +02:00
Carles Fernandez 90a539ed26
Avoid using cstdio header
See MISRA C++:2008, 27-0-1 - The stream input/output library <cstdio> shall not be used.
Replaced by filesystem library.
Avoid using cstring when it is easily replaced
2019-07-13 14:28:48 +02:00
Marc Majoral 58cc961aec Merge branch 'next' of https://github.com/mmajoral/gnss-sdr into fpga_extended_coherent_integration 2019-07-10 18:08:30 +02:00
Marc Majoral 3095176524 added the bit synchronization time limit and the doppler correction 2019-07-09 19:15:27 +02:00
Carles Fernandez 6cc1de7118
File cleaning 2019-07-07 21:44:58 +02:00
Carles Fernandez 5f1a418a9b
Merge branch 'tracking_debug' of https://github.com/gnss-sdr/gnss-sdr into move 2019-07-06 13:03:09 +02:00
Carles Fernandez 95ece1e6d4
Simplify move assignment operator 2019-07-06 12:34:27 +02:00
Javier Arribas 0d3299f29b Fix Beidou. Disabled symbol integration in tracking for Beidou and disabled experimental tracking carrier Doppler correction for all systems 2019-07-05 20:30:34 +02:00
Carles Fernandez 0e0991a1a5
Add move assignment operator 2019-07-05 14:44:56 +02:00
Marc Majoral c8ccd5ef91 Merge branch 'next' of https://github.com/mmajoral/gnss-sdr into fpga_extended_coherent_integration 2019-07-04 12:55:36 +02:00
Javier Arribas cf967be252 Consolidating unified dll pll veml tracking to synchronize symbols for GPS L1, L5, Galileo E1, E5 and Beidou B1, B3. Beidou bug fixes in acquisition. Adapting all telemetry decoders to use 1 sample per symbol 2019-07-03 18:57:26 +02:00
Carles Fernandez 018cde8953
Write public interface first, then private members in class definitions 2019-07-01 23:44:42 +02:00
Marc Majoral 2982961e49 currently making changes to be able to extend the FPGA coherent integration beyond 20 ms for GPS L1, 1 ms for Galileo E1, 10 ms for GPS L5 and 20 ms for Galileo E5a using SW. 2019-06-28 10:54:19 +02:00
Carles Fernandez 0e5211dbf0
Modern CUDA usage 2019-06-24 20:02:19 +02:00
Marc Majoral 05d006d1f9 Merge branch 'next' of https://github.com/mmajoral/gnss-sdr into fpga_extended_coherent_integration 2019-06-18 18:25:24 +02:00
Marc Majoral 33d1115246 added support for extended coherent integration in the FPGA. The code still needs to be optimized and cleaned. 2019-06-18 18:22:01 +02:00
Javier Arribas 47e6e173cb Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into tracking_debug 2019-06-17 09:53:14 +02:00
Carles Fernandez 16f7c4b889
Pass vectors and matrices by reference, rename classes to CamelCase style 2019-06-16 14:54:41 +02:00
Carles Fernandez 7467f94164
Relax Armadillo version for nonlinear filters 2019-06-15 10:54:49 +02:00
Carles Fernandez 1d80f1ba9b
Fix building if Armadillo < 9.400 2019-06-14 18:22:07 +02:00
Javier Arribas 88f78a107c Improving unified tracking. Added Doppler frequency correction for false PLL lock 2019-06-14 12:52:46 +02:00
Javier Arribas afc2a98089 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into tracking_debug 2019-06-14 12:39:25 +02:00
Carles Fernandez 7c23fb35b6
Apply clang-format 2019-06-14 10:21:26 +02:00
Gerald LaMountain c1f4c2aef3 Merge branch 'next' into kf19-next 2019-06-13 15:47:54 -04:00
Gerald LaMountain 0e68befe7c Add unscented filter to nonlinear_filtering library and add associated unit test 2019-06-13 15:42:52 -04:00
Gerald LaMountain 49a8f9a22a Rename cubature_filter library to nonlinear_filtering 2019-06-13 15:41:56 -04:00
Javier Arribas 5a43e757dd Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into tracking_debug 2019-06-13 17:59:58 +02:00
Carles Fernandez dd2198fd00 Apply code formatting 2019-06-13 17:37:32 +02:00
Gerald LaMountain 83d77fabb0 Update cubature filter library to align with coding conventions 2019-06-13 11:07:10 -04:00
Gerald LaMountain c567be407c Merge branch 'next' into kf19-next 2019-06-12 14:52:44 -04:00
Gerald LaMountain 6f5bca8188 Add cubature filter library to tracking and associated unit test to tests 2019-06-12 14:51:19 -04:00
Javier Arribas 559080b651 Improving tracking stability of carrier lock detector 2019-06-11 20:20:23 +02:00
Carles Fernandez 59494034d8
Better fix for Boost Asio and string_view issue in macOS 2019-05-26 02:09:53 +02:00
Carles Fernandez d13e00ba50 Fix documentation 2019-05-22 13:24:41 +02:00
Carles Fernandez 5c9bb66379 Revert "Adding missing factor in CN0 estimator"
This reverts commit 8b77576166.
2019-05-22 13:23:21 +02:00
Javier Arribas 8b77576166 Adding missing factor in CN0 estimator 2019-05-21 12:10:22 +02:00
Gerald LaMountain dddf6dedb3 Add refs to tracking lib for bayesian estimation 2019-05-20 20:42:41 +02:00
Gerald LaMountain 8cc141341b Add tracking lib for cubature kalman filter 2019-05-20 12:47:42 -04:00
Gerald LaMountain d4d849c83d Add refs to tracking lib for bayesian estimation 2019-05-20 12:42:43 -04:00
Carles Fernandez a1f77607c3
Fix building in some macOS configurations 2019-05-16 20:49:10 +02:00
Javier Arribas be5ffe6b67 Implementation of Differential Arctangent Discriminator for FLL 2019-05-15 17:38:45 +02:00
Marc Majoral e1d01d3b97 Re-enable uio interrupts manually + do not enable interrupt generation at reset. 2019-05-13 16:30:01 +02:00
Marc Majoral 585ecf2a84 removed the activation of the flag that causes the tracking HW accelerators to trigger an interrupt upon reset. 2019-05-13 16:30:01 +02:00
Carles Fernandez 6a6ec19b63
Fix building with Boost 1.65.1 (Ubuntu 18.04) 2019-05-08 21:35:15 +02:00
Carles Fernandez a8bcc77bfc Add blank line 2019-05-08 19:31:13 +02:00
Carles Fernandez 5563e609ec Fix identification of Boost version 2019-05-08 19:28:53 +02:00
Carles Fernandez 214c9d5de0 Fix building for Boost < 1.66 2019-05-08 16:15:59 +02:00
Carles Fernandez 40f0a93695 Replace boost::asio::io_service (deprecated since Boost 1.66) by boost::asio::io_context 2019-05-08 15:23:55 +02:00
Carles Fernandez cd0e7adaf4
Correct comments. Fixes: #269 2019-05-01 14:44:12 +02:00
Carles Fernandez 692cbf3130
Do not use std::cbegin, not available in old versions of gcc 2019-04-27 18:39:20 +02:00
Carles Fernandez 3602f9772c
Use constant iterators 2019-04-27 13:34:21 +02:00
Carles Fernandez 9d36199901 Trim CN0 smoother parameters. Add it to the FPGA block 2019-04-25 15:30:11 +02:00
Carles Fernandez 42c0544c4c Accelerate CN0 estimation 2019-04-25 14:58:30 +02:00
Carles Fernandez 50d4db9c05 Add a simple CN0 smoother 2019-04-25 08:50:21 +02:00
Marc Majoral 9f80eaf0ff code cleanup 2019-04-12 11:36:30 +02:00
Marc Majoral 91f509abf9 write the code phase rate and the nco phase rate parameters in the FPGA 2019-04-10 11:31:34 +02:00
Marc Majoral 19184da0f9 The FPGA multicorrelator interrupt is enabled only once when a satellite is assigned to a particular channel. Until now the interrupt was automatically disabled by the interrupt handler of the uio driver and the multicorrelator code had to re-enable it every time. This change saves CUP cycles for real-time operation. It requires that the code that disables the interrupt in the uio driver interrupt handler is commented out. 2019-04-09 16:03:31 +02:00
Marc Majoral 6979e561b8 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2019-04-04 19:55:56 +02:00
Marc Majoral ff024e7292 cleaned unused code and added some comments. 2019-04-04 19:55:02 +02:00
Javier Arribas bd22ef5153 Improving DLL discriminators implementation 2019-04-03 15:25:40 +02:00
Marc Majoral 553946fb65 moved the setting of the flags for the writing of the local code to the initialization, to save cpu cycles during tracking. 2019-04-02 20:36:48 +02:00
Marc Majoral a6110eb334 moved the calculations related to the local code that is specific to the FPGA to the initialisation phase of the tracking modules to save clock cycles during real-time tracking. 2019-04-02 18:46:37 +02:00
Marc Majoral edac9923ae updated the tracking code loop filter, the carrier filter and the d_Prompt circular buffer. 2019-04-01 12:38:45 +02:00
Marc Majoral fb38247273 updated the tracking adapters and added new FPGA tracking correlator parameters according to what is implemented in the SW tracking correlator. 2019-03-28 12:30:57 +01:00
Marc Majoral 905a85670c currently optimizing the FPGA-related code 2019-03-25 19:45:54 +01:00
Carles Fernandez 10d73da839
Fix typo 2019-03-19 20:39:23 +01:00
Carles Fernandez c8d27eb97c
Move contructor to the beginning of the file 2019-03-19 20:37:42 +01:00
Carles Fernandez 296d6d66c9
Move constants to implementation, fix typos in comments 2019-03-19 20:16:59 +01:00
Carles Fernandez 4bc4fb9988
Remove misleading comment 2019-03-19 19:53:51 +01:00
Javier Arribas 48180c967a
Replacing PLL/DLL fixed order loop filters with DLL/PLL/FLL order-configurable filters. Adding PLL false lock protection by using telemetry validation flag 2019-03-18 19:35:40 +01:00
Carles Fernandez 08ce4cdd75
Sort includes, fix coverity scan defect 2019-03-03 00:15:20 +01:00
Carles Fernandez fcfe63ba08
Fix defects detected by coverity scan 2019-03-01 20:49:45 +01:00
Carles Fernandez e43b8f5284
Fix defects detected by Coverity Scan 2019-03-01 15:29:43 +01:00
Carles Fernandez df0a77ee0d
Fix warnings
more protection on read/write failures and some code cleaning
2019-03-01 10:11:36 +01:00
Carles Fernandez 7c71ed9404
Merge branch 'fpga' of https://github.com/gnss-sdr/gnss-sdr into merge-fpga
Applied checks and formatting
2019-02-28 21:45:30 +01:00
Marc Majoral c32e0b427a coding style + removed some unnecessary memory arrays in the FPGA E5A tracking adapter class. 2019-02-27 17:27:31 +01:00
Marc Majoral a03ed571e6 replaced int and unsigned int by int32_t and uint32_t
removed some unused variables
2019-02-27 14:37:07 +01:00
Marc Majoral 8d770d9be9 more code cleaning
removed some non used variables
2019-02-27 13:30:09 +01:00
Marc Majoral cf0a37300a Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2019-02-25 19:21:00 +01:00
Carles Fernandez 62a7e54359
Introduce readability-identifier-naming check
This commit enforces naming style for Classes and global constants:
Camel_Snake_Case for Classes
UPPER_CASE for global constants
CamelCase for abstract classes
2019-02-22 10:47:24 +01:00
Carles Fernandez a734411b86
clang-tidy: apply performance-type-promotion-in-math-fn check 2019-02-21 12:46:01 +01:00
Carles Fernandez 9bc771bed6
Deploy a new option -DENABLE_CLANG_TIDY to integrate clang-tidy checks and fixes into the compilation process, if found. It defaults to OFF 2019-02-21 09:59:06 +01:00
Carles Fernandez 88147d4956
Fix build with Clang (not AppleClang) on macOS 2019-02-20 22:21:53 +01:00
Carles Fernandez 75bd492d96
Change CMake target names to more meaningful ones, reflecting the code tree 2019-02-10 18:34:28 +01:00
Carles Fernandez 708b288e61
Clean CMake scripts 2019-02-04 22:44:45 +01:00
Carles Fernandez b58b07fe01
Update and clean CMake scripts 2019-02-04 20:29:42 +01:00
Carles Fernandez 8ae72fe458
Update to modern CMake usage 2019-02-03 19:24:44 +01:00
Marc Majoral f127729eb0 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2019-01-25 18:02:07 +01:00
Marc Majoral 7da82dbaea updated the FPGA tracking gnuradioblock according to the latest changes in the SW tracking gnuradioblock. 2018-12-14 18:15:21 +01:00
Marc Majoral ae61646270 Solved two bugs:
- a minor bug in the E5A fpga acquisition adapter module: a config parameter was not correctly read.
- a bug in the tracking fpga multicorrelator module: if pilot tracking was enabled then the results of the pilot correlator were not correctly read when using the multicorrelator 3-1 HW Accelerator in the FPGA (used for GPS L5 and Galileo E5A).
2018-12-11 14:44:42 +01:00
Carles Fernandez 54237770a6
Apply fixes by clang-tidy 2018-12-10 22:59:10 +01:00
Carles Fernandez 3dce8934fd
Apply fixes by clang-tidy 2018-12-10 19:05:12 +01:00
Carles Fernandez 5f79053d65
Sort includes automatically with clang-format
Order:
1.- Main header
2.- Local headers
3.- Third-party library headers
4.- System headers

each category sorted lexicographically
2018-12-09 22:00:09 +01:00
Carles Fernandez 17260bbcea
Miscelaneous code improvements by clang-tidy 2018-12-08 18:49:31 +01:00
Carles Fernandez fdc12d94b8
Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into next 2018-12-03 22:23:08 +01:00
Carles Fernandez 578d96159d
Use emplace back when possible 2018-12-03 22:20:40 +01:00
Carles Fernandez 327fec627c clang-tidy: apply readability-else-after-return fix (see https://clang.llvm.org/extra/clang-tidy/checks/readability-else-after-return.html) 2018-12-03 22:08:19 +01:00
Carles Fernandez 8319c2d33a
Fix building 2018-12-03 11:19:24 +01:00
Carles Fernandez 96f34cabb1
clang-tidy: apply modernize-use-equals-default fix. See https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-default.html 2018-12-03 11:12:10 +01:00
Marc Majoral bd90563925 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-11-30 11:10:38 +01:00
Marc Majoral f48a91c413 Galileo E5a is now debugged and working. Acquisition is using interrupts again. Each acquisition process opens and closes the acquisition device when an acquisition is done instead of having the device opened all the time. In this way the acquisition interrupt should only be received by the process that is using the interrupt at that time. 2018-11-30 11:07:01 +01:00
Carles Fernandez 87d1413447
Make cmakelint happier 2018-11-24 18:40:34 +01:00
Carles Fernandez b0ba246934
Apply some style rules to CMake scripts 2018-11-22 00:35:21 +01:00
Marc Majoral 41faa311f7 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-11-05 18:29:35 +01:00
Marc Majoral 392f92839f updated L5 and E5a adapters for debugging
corrected minor issues
2018-11-05 17:01:29 +01:00
Carles Fernandez 715f32f0ee Improve tracking dump saving
Dump files can now be saved anywhere, including absolute paths. If directories do not exist, they will be created.

Added new dump_mat to deactivate generation of .mat files
2018-10-30 00:47:12 +01:00
Marc Majoral 17ddab1c3e Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-10-17 15:49:58 +02:00
Carles Fernandez 8e5a24b32d
Merge branch 'trk_hi_dyn' of https://github.com/antonioramosdet/gnss-sdr into antonioramosdet-trk_hi_dyn 2018-10-10 19:34:51 +02:00
Marc Majoral 8710ba1cf7 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-10-08 19:47:39 +02:00
Carles Fernandez 78c0b76cb9
Avoid use of GLOB for source and header files 2018-10-04 22:35:44 +02:00
Marc Majoral df3caf5c2b Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-09-18 11:43:19 +02:00
Antonio Ramos 4375d0a051 Clean code 2018-09-17 19:19:19 +02:00
Antonio Ramos a465689f20 Change rem_carrier_phase_rad computation 2018-09-13 19:18:19 +02:00
Marc Majoral 5b9b63cc77 implemented tracking pull-in tests for the FPGA
solved a bug in which the SW was using the doppler shift index reported by the HW acquisition accelerator plus one, instead of using the doppler shift index as such.
2018-09-12 16:02:23 +02:00
Antonio Ramos 0031aaa973 Set high_dynamics to false by default 2018-09-11 20:52:16 +02:00
Antonio Ramos 25d04a94f2 Update rem_carrier_phase and minor changes 2018-09-09 18:19:43 +02:00
Antonio Ramos b66540b776 Add moving average smoother to carrier phase rate 2018-09-07 19:18:03 +02:00
Antonio Ramos 47e5ef7f39 Improve generic kernel 2018-09-06 17:46:55 +02:00
Carles Fernandez bbcc0bee36
Rename volk_gnsssdr_32f_xn_fast_resampler_32f_xn to volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn 2018-08-23 19:52:01 +02:00
Carles Fernandez 41527fb921
Rename volk_gnsssdr_32f_xn_fast_resampler_32f_xn to volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xnn 2018-08-23 19:39:41 +02:00
Carles Fernandez d364258b6e
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into doppler_rate 2018-08-22 17:30:21 +02:00
Carles Fernandez 0c26a95af4 Enhance const correctness, minor cosmetics 2018-08-21 15:20:48 +02:00
Carles Fernandez 388d1623ed Pass parameters by reference instead of by value (improves effieciency) 2018-08-21 14:57:22 +02:00
Carles Fernandez a833abbb8a Merge branch 'kf' of https://github.com/gnss-sdr/gnss-sdr into next 2018-08-21 11:50:39 +02:00
Carles Fernandez 2b0e0f73ff
Add work on Doppler rate 2018-08-15 13:38:49 +02:00
Gerald LaMountain e42467a068 Updates to integration of bayesian_estimation library into GPS L1 kalman tracking block 2018-08-13 21:18:01 -04:00
Carles Fernandez 4a2ba1cff0
Improve handling of data types 2018-08-13 00:54:23 +02:00
Carles Fernandez 05a1806c8f
Merge branch 'fpga' of https://github.com/mmajoral/gnss-sdr into merge-marc 2018-08-11 12:56:52 +02:00
Marc Majoral f14ad930d5 declared the 64-bit variables as long long ints instead of long ints in the FPGA related files.
Variables declared as long ints are interpreted as 32-bit variables in the ARM architecture and 64-bit variables in the X86-64 architecture.
2018-08-10 16:42:53 +02:00
Marc Majoral b1524a3afe implemented 64-bit global sample counter
started programming the FPGA tracking unit tests
2018-08-10 13:12:06 +02:00
Marc Majoral ee132f445f Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-08-08 14:25:12 +02:00
Carles Fernandez 0b5c827eda
Add Doppler rate in fast_resampler kernel. Still not used 2018-08-08 12:03:58 +02:00
Javier Arribas 19c5220886 Prepare the tracking configuration to allow a specific pull-in loops bandwidth 2018-08-07 20:05:35 +02:00
Marc Majoral b1a7031e52 solved some bugs in GPS L5
removed check for sign in multicorrelator results: this is not necessary anymore
did some other minor maintenances
2018-08-07 18:56:54 +02:00
Javier Arribas 856eaf1881 Unified tracking algorithm improvement 2018-08-03 12:05:40 +02:00
Javier Arribas 83021ccfff Use by default the new fast local code resampler 2018-08-03 11:40:11 +02:00
Marc Majoral daedfc3e01 adapted the FPGA tracking class according to the latest changes in the next branch 2018-08-02 17:32:59 +02:00
Marc Majoral 7e246dea29 Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga 2018-08-01 18:59:40 +02:00
Marc Majoral bb33faea21 improved existing code
started the GPS L2 FPGA class implementation (not finished yet)
implemented the GPS L5 FPGA class (not tested yet)
implemented the Galileo E5 FPGA class (not tested yet)

The code is still "dirty": it is yet to be cleaned of debug comments/code and any possible redundant code and not used variables.
2018-08-01 15:55:40 +02:00
Carles Fernandez 16848069ee
Fix building 2018-07-20 13:19:41 +02:00
Gerald LaMountain 486ac195db Add bayesian_estimation library to tracking/libs which will be used to perform noise adaptation to Kalman filter based tracking 2018-07-09 11:46:34 -04:00
Carles Fernandez acd662b88f Add file header 2018-06-19 12:57:43 +02:00
Javier Arribas 799fe45830 Migrating DLL/PLL configuration from struct to class and adding tracking quality indicators plot sample MATLAB script 2018-06-19 11:36:15 +02:00
Carles Fernandez ebd8b46e51 Remove if parameter from Acquisition and Tracking blocks 2018-06-06 17:25:03 +02:00
mmajoral 75cbc3fcdd Added Galileo E1 acquisition + tracking classes that use the generic acquisition and tracking classes for the FPGA HW accelerators (still to be tested). Did some minor code cleaning to the GPS files that use the FPGA HW accelerator. 2018-05-22 12:25:14 +02:00