aboutsummaryrefslogtreecommitdiffstats
path: root/gr-fec (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cmake: change how test files are build when cross compilingPhilip Balister2021-12-031-0/+3
| | | | | | | | | | | | | | | | | | | | * When cross compiling gnuradio, change how the test files are built. Normally, the gnuradio QA code expects to run in the build tree. For the cross compilng case, we cannot run the QA code during the build process. The changes here allow the creation of an additional package that can be installed on a target that will run the QA code against the installed libraries. Major changes are not using full paths to test files (since they include paths that only exist on the build machine) and not setting environment variables in the shell files to force the QA code to use code in the build tree. This patch disables the C++ only tests, these need some work and then they can be added back for the cross compile case. Signed-off-by: Philip Balister <philip@balister.org>
* fec: pep8 formattingJosh Morman2021-11-2427-852/+911
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* logging core: replace log4cpp by spdlogMarcus Müller2021-11-192-4/+5
| | | | | | | | also: enable formerly disabled qa_logger tests This replaces log4cpp with spdlog. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: Custom Buffer/Accelerator Device Support - Milestone 1David Sorber2021-10-255-34/+33
| | | | | | | | | | | | | | | Custom Buffer/Accelerator Device Support - Milestone 1 changes: * Refactored existing single mapped buffer code and created single mapped buffer abstraction; wrapping within single mapped buffers is handled explicitly by input blocked and output blocked callbacks that are called from block_executor * Added simple custom buffer allocation interface (NOTE: this interface will change for milestone 2) * Accelerated blocks are still responsible for data transfer but the custom buffer interface eliminates the double copy problem Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* global: Replace stdio logging with loggerDavid Winter2021-10-211-5/+7
| | | | | | | This commit replaces many uses of std::c{out,err} and printf with the appropriate GR_LOG_* directives. Signed-off-by: David Winter <david.winter@analog.com>
* polar_channel_construction: fix print usageDoron Behar2021-10-211-2/+2
| | | | Signed-off-by: Doron Behar <doron.behar@gmail.com>
* modules: include boost/format where usedMarcus Müller2021-09-0720-4/+24
| | | | | | | | | | | | | | | | | | | in the classic modules: audio blocks digital dtv fec fft filter qtgui trellis/fsm uhd video-sdl vocoder/freedv_rx Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* classic modules: use common precompiled headersMarcus Müller2021-07-191-0/+4
| | | | | | | This commit contains all the additions to gr-*/lib/CMakeLists.txt applicable to modules already present in 3.8. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* fec: Open files using with statements, restructured read_alist_filejfmadeira2021-07-191-72/+67
| | | | Signed-off-by: jfmadeira <jf.madeira@campus.fct.unl.pt>
* fec: Removed star import numpy, ran auto formatterjfmadeira2021-07-191-148/+160
| | | | Signed-off-by: jfmadeira <jf.madeira@campus.fct.unl.pt>
* fec: Corrected spacings and updated String.split() usagejmadeira2021-07-191-14/+14
| | | | Signed-off-by: jfmadeira <jf.madeira@campus.fct.unl.pt>
* fec: generic_{en,de}coder: Use logger_get_configured_logger helperDavid Winter2021-07-022-44/+2
| | | | | | | | This commit uses the new logger_get_configured_logger helper to replace the duplicated logger retrieval code in the constructor of generic_decoder and generic_encoder. Signed-off-by: David Winter <david.winter@analog.com>
* global: remove boost/assign/list_of, obsoleted by C++11Marcus Müller2021-06-227-9/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: automatically remove unused boost includesMarcus Müller2021-06-223-3/+0
| | | | | | | | used command: sed -i '/^#include.*boost.*$/d' $(ag -L '(boost::|BOOST)' $(ag --cpp -l '#include <boost')) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* logging: remove <iostream> from logger.h, add where consequently missingMarcus Müller2021-06-171-0/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* fec: add <iostream> to alist, cldpc where it was missingMarcus Müller2021-06-172-0/+6
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: remove iostream from all files not use cout|cerr|cin|clogMarcus Müller2021-06-175-5/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* applied formatter to codeMark Bauer2021-06-167-298/+425
| | | | Signed-off-by: Mark Bauer <markb5@illinois.edu>
* replaced star imports with explicit importsMark Bauer2021-06-167-7/+16
| | | | Signed-off-by: Mark Bauer <markb5@illinois.edu>
* gr-blocks: remove pdu blocksJacob Gilbert2021-03-189-103/+103
| | | | | | | | | | | | | | | | | | | | | | | | The following have been moved to the new gr::pdu module or to gr::network and are no longer needed in gr::blocks: - pdu (noblock) - pdu_filter block - pdu_remove block - pdu_set block - pdu_to_tagged_stream block - random_pdu block - socket_pdu block - stream_pdu_base (noblock) - tagged_stream_to_pdu block - tcp_connection (noblock) - tuntap_pdu block The digital and FEC modules had a large number of references to the PDU blocks that were moved from gr-blocks to gr-pdu, this updates these changes in example flowgraphs and a few python files. The usage-manual update will be propagated to the wiki so that future exports will remain up to date. Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* cmake: add compiler version statementsJosh Morman2021-03-131-0/+3
| | | | | | | Where std::filesystem is used to allow linking properly on Debian and Centos 8 Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* Replace boost::filesystem with std::filesystemZackery Spytz2021-03-132-2/+4
| | | | Signed-off-by: Zackery Spytz <zspytz@gmail.com>
* cmake: remove custom FindGSL moduleJosh Morman2021-03-041-1/+1
| | | | | | | | | | The in-tree FindGSL.cmake module differs from the standard cmake FindGSL in the target names that are output. (gsl::gsl vs GSL::gsl). This makes linking an OOT to something that links to gsl cause issues and requires copying in FindGSL.cmake into the OOT. Since CMake 3.8 (current project minimum) installs FindGSL, use that instead Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* pybind: remove forecast from python bindingsJosh Morman2021-02-182-14/+0
| | | | | | | | There is no scenario that a block or app should be calling forecast over the python interface. This is only called by the scheduler, and for python blocks would pass through the gateway interface. Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* fec: If GSL is missing, remove those yml files that require GSLVolker Schroer2021-02-091-0/+12
| | | | Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* fec: Exclude modules from Python bindings if GSL is not presentVolker Schroer2021-02-083-15/+25
| | | | | | | This removes the same blocks from the Python bindings that are already not present in the C++ library if GSL is not present. Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* Remove unneeded boost includes and avoid boost depreciated warningsVolker Schroer2021-02-073-3/+0
| | | | Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* gr-fec: Remove carriage returns from include file.Ron Economos2021-01-271-87/+87
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* clang-tidy: run full .clang-tidy on C++17 codebaseMarcus Müller2021-01-1930-44/+44
| | | | | | | | | | | | | | | | | | | | run /usr/share/clang/run-clang-tidy.py -checks=file '-header-filter=.*' -fix .. from build directory. Then, clang-format -i $(git diff --name-only origin/master) to clang-format changed files. Then, refresh all header hashes in pybind bindings (*/python/bindings/*.cc) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* C++14: Use std::make_unique instead of boost::make_uniqueMarcus Müller2021-01-041-2/+2
| | | | | | Also, clean up includes Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* fec: lib: Remove use of FEC_API for function definitions.Ryan Volz2020-12-184-12/+4
| | | | | | | | | | This fixes building with MSVC. Since these files first get built into an object that is *not* a shared library, FEC_API was resolving to __declspec(dllimport), which should never be used for function definitions. Warnings still occur about inconsistent dll linkage because the gr_fec_rs target is built into an object library that doesn't define "gnuradio_fec_EXPORTS", but the end result works. These warnings have always existed previously.
* fec: remove stray pybind submodule definition for polarJosh Morman2020-12-071-6/+0
|
* modernization: `override` instead of virtual in all compilation unitsMarcus Müller2020-11-0381-269/+272
|
* Add `override` for common virtual function overridesThomas Habets2020-11-0313-18/+18
| | | | | | | | | | Mostly done with: ``` find -name "*_impl.h" | xargs sed -i -r '/(void forecast|int work|int general_work|bool check_topology)\(/{:back /\)/b nxt;N;b back;:nxt s/\)$|\)(;)/) override\1/g}' ``` Then I removed an incorrect `work` that this found.
* qa: run autopep8 formatting on qa python filesmormj2020-10-3014-272/+454
| | | | | | find ./ -iname qa*.py | xargs autopep8 --in-place -a -a mostly formats whitespace and gets rid of trailing semicolons
* qa: remove xml file parameter causing deprecation warningsmormj2020-10-3011-11/+11
|
* pybind: add implicit conversion from int to enummormj2020-10-281-0/+2
| | | | | | | | | | | | | * dtv: add implicit conversion from int to enum * analog: add implicit conversion from int to enum * blocks: add implicit conversion from int to enum * digital: add implicit conversion from int to enum * fec: add implicit conversion from int to enum * fft: add implicit conversion from int to enum * filter: add implicit conversion from int to enum * qtgui: add implicit conversion from int to enum * trellis: add implicit conversion from int to enum * vocoder: add implicit conversion from int to enum * bindtool: add implicitly_convertible to all enums
* gr-fec: Enable examples only if Python is enabled.Doron Behar2020-10-141-3/+3
| | | | gr-fec's grc example files are usable only with Python.
* lib, include: Include missing headers.Ryan Volz2020-10-027-3/+7
| | | | | This fixes compilation with MSVC on conda-forge, although why this wasn't needed earlier is a mystery.
* gr-fec: fix MSVC workaround for libfec Reed-Solomon decoderDaniel Estévez2020-10-011-1/+1
| | | | | | | | | | | | | | MSVC does not support variable length arrays in C, so under MSVC the Reed-Solmon decoder from libfec is built using a maximum array size instead of variable length arrays. This workaround only affects the generic decode_rs_char() function. The CCSDS functions decode_rs_8() and decode_rs_ccsds() use fixed length arrays. In f762dc637b3b954c4521fd83829c531371d1f87f the generic decode_rs_char() function was moved from decode_rs.c to char.c, so the CMakeLists.txt workaround needs to be updated accordingly.
* gr-fec: build and export (en|de)code_rs_8() and (en|de)code_rs_ccsds()Daniel Estévez2020-10-0110-22/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | These functions implement the CCSDS Reed-Solomon code in the conventional and dual basis respectively. The code for them was already included in gr-fec, but they weren't built. While these functions are currently not used in GNU Radio, they might be used by other OOT modules, as discussed in #3637. The behaviour of the functions (en|de)code_rs_8() could actually be achieved with the currently available (en|de)code_rs_char(), by passing the correct parameters to init_rs_char(), but since the CCSDS code is so popular, having the specific functions is handy. On the other hand, it is not possible to obtain (en|de)code_rs_ccsds() by using (en|de)code_rs_char(), since there is an additional change of basis involved (see decode_rs_ccsds.c). Some reorganization of the code has been needed. The different encode and decode functions use some kind of templating using the C preprocessor. The implmementation uses several symbols that should be defined by the preprocessor before including the implementation. The implementation can be included several times to instance the different functions. The code in (en|de)code_rs.c has been moved to (en|de)code_rs.h, since now it is included and compiled twice instead of being compiled directly. The files char.c and ccsds.c include the appropriate preprocessor definitions from char.h and fixed.h respectively and these are what is built.
* fec: Remove manual memory managementThomas Habets2020-09-0716-110/+81
| | | | | This removes almost all manual memory management in gr-fec/. `scl_list` is a bit of magic, so requires more thinking.
* add an option to enable/disable examplesGwenhael Goavec-Merou2020-09-021-1/+3
|
* fec: make gsl optional for python bindingsJosh Morman2020-08-141-9/+17
|
* blocks/polar: Remove manual memory managementThomas Habets2020-08-146-39/+32
|
* fec/cc_decoder: Remove manual memory managementThomas Habets2020-08-142-45/+31
|
* fec/async_encoder: Remove manual memory managementThomas Habets2020-08-142-36/+19
|
* fec/async_decoder: Remove manual memory managementThomas Habets2020-08-142-33/+20
|
* python: Remove unnecessary 'from __future__ import'Oleksandr Kravchuk2020-08-0338-91/+0
| | | | | | | | | | | | | | | | All of the removed `from __future__ import` were needed in older versions of Python (mostly 2.5.x and below) but later became mandatory in most versions of Python 3 hence are not necessary anymore. More specifically, according to __future__.py[1]: - unicode_literals is part of Python since versions 2.6.0 and 3.0.0; - print_function is part of Python since versions 2.6.0 and 3.0.0; - absolute_import is part of Python since versions 2.5.0 and 3.0.0; - division is part of Python since versions 2.2.0 and 3.0.0; Get rid of those unnecessary imports to slightly clean up the codebase. [1] https://github.com/python/cpython/blob/master/Lib/__future__.py
* Replace all calls to `get_initial_sptr` with `make_block_sptr`Thomas Habets2020-07-3013-22/+21
| | | | | | | | | | | | | | First batch of changes: ``` find […] -print0 | xargs -0 sed -i -r '/get_initial_sptr/{:nxt N;/;/!b nxt;s/get_initial_sptr\(\s*new ([^(]+)(.*)\)\)/make_block_sptr<\1>\2)/}' ``` Then: * Back out `sptr_magic.h` edits * Change some `friend` clauses * clang-format the whole thing * Update checksums in the pybind11 bindings files