diff --git a/0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch b/0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch deleted file mode 100644 index 1382208..0000000 --- a/0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch +++ /dev/null @@ -1,39 +0,0 @@ -From f643bc12100c67288adda3699a9e61d6a66fb529 Mon Sep 17 00:00:00 2001 -From: Gwenhael Goavec-Merou -Date: Fri, 7 Feb 2020 16:49:30 +0100 -Subject: [PATCH] gr-digital:glfsr.h: drop boost/cstdint.hpp and use cstdint - -gr-digital/glfsr.h include boost/cstdint.hpp to have uintxx_t. -These types are in boost namespace but nor using namespace xxx, nor boost:: are used. -The result is : -In file included from /home/buildroot/autobuild/instance-0/output-1/build/gnuradio-3.8.0.0/gr-digital/lib/glfsr.cc:23: -/home/buildroot/autobuild/instance-0/output-1/build/gnuradio-3.8.0.0/gr-digital/lib/../include/gnuradio/digital/glfsr.h:42:5: error: 'uint32_t' does not name a type; did you mean 'u_int32_t'? -uint32_t d_shift_register; -^~~~~~~~ -u_int32_t - -Since Gnuradio policy is Less boost == better and C++11 is used, use cstdint -instead of boost/cstdint.hpp. - -[backported from 475e4a156b516c089175afb998acdc80b740b437] -Signed-off-by: Gwenhael Goavec-Merou ---- - gr-digital/include/gnuradio/digital/glfsr.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gr-digital/include/gnuradio/digital/glfsr.h b/gr-digital/include/gnuradio/digital/glfsr.h -index 0b5141f1f..1003bcd01 100644 ---- a/gr-digital/include/gnuradio/digital/glfsr.h -+++ b/gr-digital/include/gnuradio/digital/glfsr.h -@@ -24,7 +24,7 @@ - #define INCLUDED_DIGITAL_GLFSR_H - - #include --#include -+#include - - namespace gr { - namespace digital { --- -2.24.1 - diff --git a/_constraints b/_constraints index 3333b73..c6c8f92 100644 --- a/_constraints +++ b/_constraints @@ -2,7 +2,7 @@ - 8 + 12 2000 diff --git a/gnuradio-3.8.5.0.tar.gz b/gnuradio-3.8.5.0.tar.gz deleted file mode 100644 index 716dace..0000000 --- a/gnuradio-3.8.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:492fe7d84fbd7a5106465326dc9fef5935288ea8f749d6038461a21eda649d13 -size 3399660 diff --git a/gnuradio-3.9.5.0.tar.gz b/gnuradio-3.9.5.0.tar.gz new file mode 100644 index 0000000..3ea4ea7 --- /dev/null +++ b/gnuradio-3.9.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066c88fcf05046593e534416a3526ee433c3b90a7faa40fca914add23989ef3e +size 4245820 diff --git a/gnuradio.changes b/gnuradio.changes index 0ffc05d..61a6748 100644 --- a/gnuradio.changes +++ b/gnuradio.changes @@ -1,175 +1,599 @@ ------------------------------------------------------------------- -Sun Jan 9 21:44:48 UTC 2022 - Wojciech Kazubski +Wed Feb 9 07:57:53 UTC 2022 - Wojciech Kazubski -- Update to version 3.8.5.0 +- Patch revert-23cece0d0.patch removed - not needed now + +------------------------------------------------------------------- +Sun Jan 9 21:21:09 UTC 2022 - Wojciech Kazubski + +- Update to version 3.9.5.0: * GRC - + GRC now runs on Fedora 35 ... Gtk initialization checks were - too strict + Fix: dependent variables sometimes fail to evaluate - + Change type aliasing to allow interleaved short/byte to be - connected to vectors of short/byte. Stricter type checking - was added previously and caused some blocks to be unconnectable - when using these types. - + Account for scale factor when computing drawing area size - + Tooltips fixed for categories and modules - * gr-digital - + Fix yml file for Header/Payload Demux + + Modify and cleanup bokeh server loop + * gr-analog + + Update python bindings for power squelch * gr-dtv + Add energy normalization for DVB-S2X constellations. * gr-filter + Remove pyqwt and qt4 from filter_design + * gr-network + + Fix: segfaults when TCP & UDP blocks are restarted + + Add throttle flag to the tcp source and sink blocks * gr-qtgui + Enable use of Qwt 6.2 - + Remove unusable int type in Number Sink yml - + RangeWidget - implement Eng & EngSlider -- Patch 0003-enables-use-of-qwt-6_2.patch removed (applied upstream). + * gr-uhd + + Add Python bindings for rfnoc_{block, ddc, duc, rx/tx_radio} + * modtool + + Improvements in generated QA code + * Build System + + Better support for cross-compiling (OpenEmbedded) + + Find log4cpp on Ubuntu systems + + Handle optional components in find_package + + Add version check for pygccxml + * CI/QA + + Update tests to work with OpenEmbedded +- Patch 0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch + removed (applied upstream) +- Patch 0003-enables-use-of-qwt-6_2.patch removed (applied upstream) ------------------------------------------------------------------- -Tue Oct 19 09:55:51 UTC 2021 - Guillaume GARDET +Mon Nov 1 22:15:06 UTC 2021 - Wojciech Kazubski -- Enable again LTO on %{arm} as it builds properly now - -------------------------------------------------------------------- -Tue Oct 5 23:10:14 UTC 2021 - Wojciech Kazubski - -- Update to version 3.8.4.0 - * Changed - GRC - + Fix drag and drop issue with Quartz - + Fix desync when dragging block - + Update disabled blocks if they depend on others - + Allow short and byte as valid types in an enum - + Fix evaluation of interdependent variables - modtool - + Set VERSION_PATH to 0 in new modules, instead of using GIT rev - + For Python3, return correct exeption ModuleNotFoundError - instead of ImportError - gr-blocks - + trix Interleaver block - gr-channels - + Fix "hide" expressions in yml files - gr-digital - + Remove unused msg output port from Chunks To Symbols block yml - gr-fft - + Add "shift" parameter to Log Power FFT - gr-qtgui - + Fix: tags on the last sample were not shown - gr-video-sdl - + Fix: U and V channels were reversed on sink blocks - -------------------------------------------------------------------- -Tue Aug 31 12:57:53 UTC 2021 - Wojciech Kazubski - -- added a patch 0003-enables-use-of-qwt-6_2.patch to build with - Qwt-6.2.0. The patch was backported from pull request #5034. -- fixed build for Tumbleweed and Factory - -------------------------------------------------------------------- -Fri Jun 11 19:00:29 UTC 2021 - Wojciech Kazubski - -- Update to version 3.8.3.1 - * This is a PATCH level revision. The API is compatible with C++ - code written for previous v3.8 releases. ABI (shared library - signature) is intended to be compatible, so code linked - against v3.8.3.0 should not require recompilation. - * Build system - + Improved messages related to dependencies MPIR and GMP. Only - one of these packages is required, and the previous error - messages were confusing. +- Update to version 3.9.4.0: + * Regressions Fixes + + Remove #include (C++17 feature) from one file + + Restore pyqwidget() in gr-qtgui * GRC - + Parameter expressions and/or values can be displayed in blocks - on the flowgraph. Previously, only values were displayed. - + Vector length is now correctly applied to all input ports. + + GRC now runs on Fedora 35 ... Gtk initialization checks + were too strict + + Add keyboard shortcuts for zoom + + Account for scale factor when computing drawing area size + + Use font size from config for block comments + + Change type aliasing to allow interleaved short/byte to be + connected to vectors of short/byte. Stricter type checking + was added previously and caused some blocks to be + unconnectable when using these types. + + Required params no longer default to 0 when left empty. This + caused hard-to-find errors. Older flowgraphs that have empty + required fields will need to be fixed. + + Tooltips fixed for categories and modules + * gr-runtime + + PMT uses the VOLK allocator for vectors + + get_tags_in_window() Python wrapper calls the correct function + + Add --pybind option to gnuradio-config-info to get PyBind11 version + * gr-blocks + + Add example for XMLRPC + + Add a unit test for Message Strobe + + Fix C++ support for Unpacked to Packed + * gr-channels + + RNG seeds are initialized correctly + * gr-digital + + Fix yml file for Header/Payload Demux + * gr-network + + Suppress warning in tuntap + * gr-qtgui + + Remove unusable int type in Number Sink yml + + Use no_quotes() function in several yml files + * modtool + + Hashes can be fixed using modtool using --update-hash-only + + Use tempfile() instead of /tmp in bindtool and modtool + + Use static_cast instead of reinterpret_cast in templates + + Correct broken Python general block template + * Build system + + Better check for Boost version + + Determine the Python prefix more reliably + + Use GR-specified compiler standard (C++14) in gr-soapy, + instead of the SoapySDR standard (C++11) + + GrPython.cmake is compatible with older cmake + * Documentation + + Man pages are in-tree + + Repair many examples, especially in gr-digital + + Allow UTF-8 in pydoc templates + * CI + + Execute make install during test +- Patch 0004-gnuradio-fix-boost-header.patch removed (applied upstream) + +------------------------------------------------------------------- +Thu Oct 7 12:38:52 UTC 2021 - Wojciech Kazubski + +- Update to version 3.9.3.0: + * General + + Many cleanups and some C++ modernization changes + + Replace Boost with stdc++ equivalents (ongoing effort) + + Logging cleanup and performance improvements (ongoing effort) + + Cleanup of many unused includes + + Various block yaml cleanups and repairs + + Use Soapy instead of UHD for flowgraph testing in gr-analog and gr-dtv + * GRC + + Improvements in C++ templates and code generation, more blocks are usable + + Add specification of packages to find (via cmake) for C++ templates + + Fix C++ hier block param template + + Add GUI hints for widgets in C++ code generation + + Add no_quotes() convenience function to strip quotes from strings, callable from templates + + Allow short and byte as valid types in an enum + + Fix desync when dragging block (block would not always track cursor) + + Correctly evaluate interdependent variables + + Allow error messages to be copied to clipboard + + Update disabled blocks if they depend on others + * gnuradio-runtime + + Deprecate tag_checker class (will be removed in 3.10) + + Detect and follow symbolic links for installation prefix in gr::prefix() + + Add "<" operator for comparison of tags (instead of offset_compare()) + * gr-blocks + + New Matrix Interleaver block + + Throttle and Head blocks can be input-only when no output is needed, improving performance + + Fix tag propagation in (un)pack-k-bits blocks + + Fix namespace for nco and vco in benchmarks + * gr-digital + + New Async CRC16 block + + Add NRZI option to Differential En/Decoder + + Constellation performance improvements + + Fix constellation normalization by average power + + Remove unimplemented msg output port from Chunks to Symbols block + + Make unpacking of bits optional in GMSK modulator so the blocks can accept unpacked bits + + In GFSK/GMSK hier blocks, replace M&M clock recovery with newer + and more capable Digital Symbol Sync block + * gr-fec + + Cleanups and code improvements + * gr-fft + + Add a "shift" paramenter to Log Power FFT, to place DC bin at center + * gr-filter + + Performance improvement in PFB Arbitrary Resampler when interpolating, especially at low rates + * gr-qtgui + + Fix display of tags on the last sample (would be dropped) + + Python wrapping: replace pyqwidget() with qwidget() - this is not intended + to be a visible fix, but is mentioned here in case it causes trouble for anyone + + C++ generation + - add double quotes to cpp_opts keys with colons + - position windows correctly depending on gui_hint + - use option attributes to generate enums + - use the cpp enums for wintype and trigger_type + * gr-uhd + + Fix input filename in freq hopping examples + + Make RFNoC a separately enabled component in cmake + + Python bindings for rfnoc_graph,_rx/tx_streamer + * gr-video-sdl + + U and V channels were reversed on sink blocks + * gr-soapy + + Added message support for SoapySDR 0.8 API + * modtool + + Set VERSION_PATCH to 0 instead of "git" in new modules + + Fix "rm", "bind", disable", "rename" and "makeyml" which had + unexpected side effects, or did not work as a user would expect + * Build System + + Correct minimum version checking for Mako + + Ensure that RC_*_VERSION are numeric (Windows) + + Fix finding libunwind + + Pass through extra arguments to GR_PYTHON_INSTALL to install command + + Remove absolute paths and private links from exported targets + + Add gir1.2-gtk-3.0 as deb runtime dependency + * Documentation + + Code of Conduct updates and link to Wiki + * CI + + Do not error out on deprecations, allowing testing of deprecated code +- Update to version 3.9.2.0: + * SoapySDR support (gr-soapy) + * GRC + + Parameter expressions and/or values can be displayed in blocks on + the flowgraph. Previously, only values were displayed. + + Deprecated blocks are shown in a distinct color (orange), + and the optional deprecated property has been added to block yaml + + Dark theme works better, especially for parameter fields + + Vector length is now correctly applied to all input ports + Validation has been improved. Raw types are validated. Port connections are checked by type rather than by item size. - + Variable names that cause conflicts in Python code (e.g., - package names) are rejected. - + Bus logic fixes. - + Blocks can no longer be dragged off the screen and lost - forever. + + Variable names that cause name conflicts in Python code (e.g., + with package names) are rejected + + Bus logic fixes + + Blocks can no longer be dragged off the screen and lost forever + * gnuradio-runtime + + Remove pmt::pmt_* functions, which were not actually implemented. + This is technically an API change, but any use of the API would have + resulted in a link error. + + Remove Python bindings for internal buffer functions + * gr-analog + + Added an example for PLL Frequency Detector + + Better names for parameters in PLL GRC blocks + * gr-blocks + + Consistent naming for Vector Length parameter in GRC blocks + + count_bits uses VOLK popcnt for better performance (used for example in + the Correlate Access Code block) + + Rotator block phase increment parameter is controllable via a message, + and a tag can be added at the point where the increment is adjusted + * gr-digital + + MPSK example updated to use a Linear Equalizer (replacing deprecated block) + * gr-filter + + Filter Delay documentation improvement + + Interpolating FIR filter can generate C++ code * gr-dtv + VL-SNR bugs fixed (incorrect constants). * gr-qtgui - + Improve autoscaling for vector sinks. + + Improve autoscaling for vector sinks + + Fix floating-point resolution problems in several widgets, due to + interpretation of PMT doubles as floats + * gr-uhd + + Add policy enum to Python bindings for tune_request + + Additional time spec options on UHD blocks (PC Clock on Next PPS, GPS Time on Next PPS) + + Fix up code that was generating warnings + + Fix command handler logic to apply commands from messages to the correct channel * gr_filter_design - + "File/Save" is disabled until the taps have been computed, - and the GUI is reset after a save, to make it clearer which - data is being saved. - + Entries are hidden for parameters that do not apply to the - selected filter type. - -------------------------------------------------------------------- -Mon Apr 12 07:05:36 UTC 2021 - Martin Pluskal - -- Fix source url -- Use ninja for building - -------------------------------------------------------------------- -Mon Mar 22 23:32:03 UTC 2021 - Wojciech Kazubski - -- Update to version 3.8.3.0: - * Changed on project Scope - + Preference file path may be set using the GR_PREFS_PATH - environment variable - + Lower message latency, previously slow when block aliases - were used - + PMT: is_dict() no longer returns True for PMT pairs, only - for PMT dicts - + Util gnuradio-config-info gets --print-all for those that - want it all - + Allow Thrift versions up thorugh 0.13 + + "File/Save" is disabled until the taps have been computed, and the GUI + is reset after a save, to make it clearer which data is being saved. + + Entries are hidden for parameters that do not apply to the selected filter type. + + Save window type as an integer instead of a Python enum name + * gr_modtool + + Improve validation of module and block names + * Build System and Infrastructure + + Improved messages related to dependencies MPIR and GMP. Only one of these + packages is required, and the previous error messages were confusing. + + Cleaner builds for Windows and Conda. A number of general cmake improvements + have resulted from this work. + + In-tree packaging files for DEB and RPM, used with Launchpad and COPR + + Added man pages for GNU Radio tools + + Test code generation for all in-tree GRC examples + + In GrPybind.cmake, PYBIND11_INCLUDE_DIR (incorrect) was changed to pybind11_INCLUDE_DIR +- Update to version 3.9.1.0: + * Project Scope + (internal) Build system improvements and fixes - + (internal) Reduce Boost usage by replacing bind() with lambdas - supported in C++11 + + (internal) Use C++14 features instead of Boost where possible + + Fewer compiler warnings (due to fixed code, not removal of warnings!) * OOT Support - + Allow override of gr python dir by setting -DGR_PYTHON_DIR - + Modtool will not try to add duplicate block names in a module - + Modtool can non-interactively add blocks with no parameters + + cmake: standard FindGSL used in lieu of custom one, so OOTs + should no longer copy this module from the GNU Radio tree if needed + + modtool: better exception/error handling + + modtool: will non-interactively add blocks with no parameters (--argument-list="") - + Modtool will use current installation prefix instead of - /usr/local as source of templates + + PyBind11 header hash hotfixer + + (gr-utils/bindtool/scripts/binding-hash-hotfixer.zsh) makes life easier * GRC + + Block param values can be shown as expressions and/or evaluated + values. Under the View menu, see "Show parameter ..." options. + Better handling of gui hints, avoid hiding widgets in cases where some have GUI hints and some do not - + Dark theme detection fix - + Add window size option for bokeh gui - * gr-audio - + ALSA nperiods default increased to 32 frames to reduce drops - (can be set in conf file under the audio_alsa section) + + Ensure that strings are valid utf8 when evaluating parameters + + Save embedded python blocks/modules to hier_block_directory + + Save config and update recent file sub-menu before executing flowgraph + + Revert to previous "block id" display behavior + + Fix drag n' drop issue with Quartz (macOS) backend + + C++ generated code: remove gnuradio prefix from linked libraries + + Python generated code: prefix generated modules with flowgraph id + connect() will be called for hier blocks even if they don't have ports + + Check for PyYAML 3.11 (was checking for 3.10 even though 3.11 was required) + * gnuradio-runtime + + Default buffer size can be adjusted by setting buffer_size in the + [Default] section of the GNU Radio config file. Otherwise, the + longstanding default of 32768 is used. * gr-blocks - + File Source handles EOF properly in non-seekable files - (e.g., pipes) - + File Source handles large files on Windows + + Message Debug: prints warning when a non-PDU message is + received on the Print PDU port + + File Source handles EOF properly in non-seekable files (e.g., pipes) + Several bounds checking and boundary condition improvements + + Remove DC Spike AutoSync algorithm fixed * gr-digital + MSK timing error detector improvement - + Improvements to correlation estimator example - + Correlate Access Code will not trigger until it receives - enough bits to compare to the access code - * gr-dtv - + Performance improvements + + Python bindings include control_loop parent class in child + class Correlation Estimator parameter threshold well documented + * gr-fft + + New window types: Nuttall, Blackman Nuttall, Nuttall CFD, Welch, Parzen, + + Exponential, Riemann, Gaussian and Tukey * gr-filter - + Filter designer works with Qt5 and Python3 - + Taps blocks (e.g., Low Pass Filter Taps) now propagate - parameter changes + + Taps blocks (e.g., Low Pass Filter Taps) now propagate parameter changes + + Filter Designer: IIR/Band Pass/Bessel works * gr-qtgui - + Chooser label defaults now correct - + Frequency Sink max hold plot for half spectrum width option - shows correctly - + Number Sink honors setting of 'avg' more consistently + + Add toggling label and icon on plot play/stop button + + Time Raster Sink: axis labels and ranges are configurable + + Qt Chooser: label improvements * gr-uhd - + Add start time parameter to GRC blocks - + Add message handler for GPIO control messages - + Additional master clock rates in GRC blocks - + UHD source sends tags on center frequency change - * gr-video-sdl - + Correct YUV format options + + DEPRECATION: UHD blocks currently accept control messages (e.g. for + frequency change) as PMT pairs and tuples, in addition to the intended + PMT dict format. In v3.11, only the dict format will be accepted. + + Command note: freq messages in this version must be dicts. + Additionally, the direction key must be present and set to TX or RX. + + set_filter() adds chan parameter + + Python generated code improved for FE corrections + + Allow control of frequency and gain in both directions at the same moment + + Add command handler for mtune ("manual tune") + + Add GPIO control via messages + + Add start time param to GRC blocks + + Support streaming modes: STREAM_MODE_START_CONTINUOUS, + STREAM_MODE_STOP_CONTINUOUS, STREAM_MODE_NUM_SAMPS_AND_DONE, + STREAM_MODE_NUM_SAMPS_AND_MORE + + Documentation improvements + + Tag sink demo example + + Better logging of over/underflows, time errors and time tags + + Added Python binding for ALL_LOS (all local oscillators) + + uhd_fft application X11/Qt related cleanups + * QA + + waitFor(condition, ...) available for tests that use timeouts +- Update to version 3.9.0.0: + Changed + * Project Scope + + License headers now SPDX format + + C++14 + + use C++11 facilities in a lot of places where Boost was still used, + especially smart pointers, range loops + + lambdas where boost::bind was used + + C11 + + Dependency versions: + Python 3.6.5 + numpy 1.13.3 + VOLK 2.4.1 + CMake 3.10.2 + numpy 1.13.3 + Boost 1.65 + Mako 1.0.7 + PyBind11 2.4.3 + + Compiler options: + GCC 8.3.0 + Clang 11.0.0 / Apple Clang 1100 + MSVC 1910 (Microsoft VS 2017 15.0) + + VOLK now "regular" dependency, not in-tree submodule + + numpy now also a CMake-checked hard dependency for Python support + + Exception Handling: throw by value, catch by reference (clang-tidy check) + + C++11: Emplace in vectors where you can; brings performance boni, but not + + included in clang-tidy-checks + + Further clang-tidy based code optimizations: + + empty() instead of size() == 0 + + override where overriding virtual functions (which we do a lot) + + Logging: removed all std::cerr and fprintf(stderr,…) by GNU Radio logging + + Logging: Changed logging format for many multiline error logs + + purged snprintf, printf logging + + There were a lot of places where a malloc'ed object + was used internally, where that was inappropriate. + Using simple instance-holding fields now. + + const for members that were only set at construction + time is now desired, and implemented in most places + + const -> constexp in a lot of places. + + assert -> static_assert + + An exception-throwing block will now terminate the + flow graph process, configurable through top_block + + gr-utils cleanup, folder restructuring + + config version checks installed CMake file will accept + "at least this version" now + + PyBind11 replaces SWIG + + Full tree conversion from SWIG to Pybind11 bindings + + Doxygen now uses MathJax, full LaTeX installation no + longer required + NOTE: Most of the changes above change the generally + preferred coding style in a lot of situations. + * GRC + + start flowgraph in folder where it resides + + gnuradio-runtime + * When calculating offsets in non-integer rate FEC, lround + + default seed for gr::random now actually as documented time-dependent + + loggers moved from gr::block to gr::basic_block + * PMT serialization + + PMT dicts no longer indistinguishable from pairs + + PMT symbol hashing no longer suffers under oddball own implementations + * gr-audio + + Increased ALSA buffer nperiods + * gr-blocks + + add, add_const VOLK'ized, templated + this seems to break things in other places, even if + it proves to be mathematically identical + + wavfile infrastructure: libsndfile now dependency + * gr-digital + + transcendental block: default to 32 bit float complex, not double + + Linear equalizer: separate adaptive algorithm, allows for + using e.g. trained sequences instead of the classical LMS, CMA + + DFE: better structure for decision history + * gr-dtv + + LDPC encoder: template functions instead of #defined macros + + LDPC encoder: smaller tables through uint16_t for index tables + * gr-fec + + API uint8_t, not char + * gr-fft + + FFT blocks/functions templatized + * gr-filter + + logging format + + rational_resampler_base -> rational_resampler + * gr-uhd + + Required UHD version bumped to 3.9.7 + + logging format + Deprecated + * gr-analog + + sig_source: freq port will be removed in the future + * gr-digital + + in favor of symbol_sync, deprecate: + clock_recovery_mm + msk_timing_recovery + pfb_clock_sync + Added + * Project Scope + + C++ Generation all over the place + + PyBind bindings + generator + + Github actions + + Reproducible builds-compatible CMake TIMESTAMP + * gnuradio-runtime + + block_gateway: set_max_output_buffer + + GR_PREFS_PATH environment variable sensitivity to + configure the path to the config file + + gnuradio-config-info --print-all + * GRC + + option to toggle ID visibilities globally + + Validation check for QT GUI hints + * Python snippets + + block header parsing tool + + block header parsing tool (GSoC 2019) + * gr_modtool + + option to convert blacklisted files + * gr-analog + + sig_source: cmd port adds support for dicts, setting of frequency, + + amplitude, offset and phase parameters + * gr-blocks + + selector now has control message ports + + Rotator-based freq shift convenience wrapper + + Message-to-Variable and vice versa blocks + + DC Spike removal + + IQ Swap + + Complex to interleaved char / short: scaling option + + Delay block: control message port + + Phase Shift block with message port + + wavfile_sink, _source can now deal with a lot of audio formats: + + uncompressed WAV/AIFF, µ- and A-law compressed audio, + OGG/Vorbis, FLAC, even octave files + + Stream Demux, which demuxes streams according to lengths vector + + rotator: phase() getter + * gr-digital + + OFDM: multiple CP lengths + + ofdm_equalizer_simpledfe: enable_soft_output + + Constellation Encoder + + Constellation: normalization options + * gr-fec + + {en,de}code_rs_8, {en,de}code_rs_ccsds: Reed-Solomon en- and decoders + * gr-fft + + Windows: + Gaussian + Flat Top + Tukey + + Window build() call now with default beta + * gr-filter + + GRC: File taps loader block + + Low pass FFT filter convenience wrapper + + ichar / ishort decimator + + phase continuity for freq_xlating_fir_filter + * gr-network + + gr-network: a whole new networking blocks module! + TCP + UDP + + Much better lockup/multithreading support than 3.7-era blks2 nightmare +infrastructure :) + * gr-qtgui + + Azimuth/Elevation plot + + Autocorrelation plot + + Compass visualization + + Dial control + + Gauge: dial, level + + Distance plot + + LED-like indicator + + Message-passing check box + + Message-passing numeric control + + Message-passing push button + + Toggle Button + + Eye sink + + Vertical slider + * gr-uhd + + Filter API + + UHD 4.0 support + + Power Reference API + + Bidirectional setting messages on both sink, source + * gr-vocoder + + Codec2 dev branch support + + FreeDV: In/output rates can differ + + FreeDV: text message output * gr-zeromq - + Connections no longer hang when flowgraph stops and other - end is still connected (ZMQ_LINGER now set) - + Receipt of bad PMTs logged (instead of exception) -- Patch 0002-boost_qualify_placeholders_with_their_full_namespace.patch - removed (applied upstream). + + C++ GRC templates + + Tag filtering for tag-forwarding blocks + Removed + * Project Scope + + VOLK is no longer a submodule + + Sphinx: consolidate into doxygen, or wiki-maintained block list. + + Python 2 + + SWIG + + gru python module + * gnuradio-runtime + + circular_file.cc + + math/common_factor.hpp + * gr-blocks + + bin_statistics_f + + log2_const + * gr-digital + + PFB clock sync: set_taps + + deprecated old OFDM infrastructur + + ofdm_frame_acquisition + + ofdm_frame_sink + + ofdm_insert_preamble + + ofdm_sync_fixed + + ofdm_sync_pn + + ofdm_sync_pnac + + ofdm_sync_ml + + ofdm_receiver + + digital_voice + * gr-fft + + malloc_float, _double: rely on VOLK + + Goertzel: dtor superfluous + * gr-filter + + deprecated window function duplicates (use them from gr-fft!) + Fixed + * Project Scope + + CMake: Qwt, Log4Cpp detection + + ctrlport strings unicodified + + Freedesktop install script was not executed + + Redundant icons installed + + Path substitution on Windows was backslash-broken + + YAML definitions: more than I can count + + Cross-building: py interpreter at runtime != build time + * gnuradio-runtime + + ctrlport: unholy stored reference to stack-allocated object removed + + Sine table generation for fixed point math + + gr_unittest: floatAlmostEqual had a lot of false passes due abuse of + all() + + get_tags_in_range for delay < (end-start) + + Premature tag pruning + + release flattened flowgraph after stopping, fixes + restartability/shutdown problem + + PMT serialization portability + + latency issue caused by setting block alias on msg block + + Windows logging errors + + ctrlport: Thrift >= 0.13 broke + * GRC + + Tab widget ID visibilities + + A lot of YAML templates + + Default setting in qtgui chooser restored + + Boolean parameters no longer switch buttons + + Nested namespace handling + + Don't rely on set ordering in tests + + configparser import + + input box color theme on dark themes + + Search box typing doesn't inadvertedly interact with the rest of GRC anymore + * gr_modtool + + Empty argument lists allowed + + Boost UTF replaced CppUnit, this needed to be done here, too + * gr-analog + + wfm left/right, filters + * gr-audio + + portaudio: lock acquisition was improper + * gr-blocks + + Throttle now uses monotonic clock + + Tag debug only saved last work call's tags + + File sink flushes on stop + + gr_read_file_metadata.py used to lose rx_time precision + + File source big file handling under Windows + + file_*: fseek errors used to be ignored + * gr-digital + + map_bb: thread safety, buffer overflows + + additive_scrambler: reset was broken + + Constellation scalefactor wasn't always initialized + + long-standing qa_header_payload_demux bug addressed by + waiting for both RX and TX, not only either + + false triggers in correlate_access_code + * gr-dtv + + rate mismatch in ATSC flowgraphs + * gr-fec + + async_decoder Heap corruption + + cc_encoder: constraint length K > 8 led to wrong output + * gr-fft + + thread safety of copy assignment/ctor + + log power FFT Python + * gr-filter + + variable_band_pass_filter GRC complex taps input + + RRC filter gain for alpha = 1 + * gr-qtgui + + Remove copies of image data in returns by using move semantics + + Remove bogus overriding in drawing functions of plot_raster, _waterfall + + Edit MSG box: don't require key to be set + + + Don't check for Python2 libs + + Number Sink ignored averaging setting + * gr-uhd + + UHD apps: Py3 fixes + + USRP blocks: multichannel objects not properly populating channels + * gr-video-sdl + + YUV formats fixed + * gr-zeromq + + Don't depend on deprecated ZMQ functionality (fix warnings, + include what you use) + + Unhandled exceptions now handled, much calmer + + Avoid infinite blocking in tb.stop() by using ZMQ_LINGER ------------------------------------------------------------------- Mon Feb 15 12:35:29 UTC 2021 - Guillaume GARDET diff --git a/gnuradio.spec b/gnuradio.spec index 8d0e68a..395c20d 100644 --- a/gnuradio.spec +++ b/gnuradio.spec @@ -16,10 +16,14 @@ # -%define sover 3_8_5 +%define sover 3_9_5 +%ifarch %{arm} +# boo#1182440 +%define _lto_cflags %{nil} +%endif %bcond_without docs Name: gnuradio -Version: 3.8.5.0 +Version: 3.9.5.0 Release: 0 Summary: GNU software radio License: GPL-3.0-or-later @@ -30,10 +34,8 @@ Source0: https://github.com/gnuradio/gnuradio/archive/refs/tags/v%{versio Source4: grc_to_37.sh Source99: %{name}-rpmlintrc Patch0: missing_library.patch -Patch1: revert-23cece0d0.patch -Patch2: 0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch BuildRequires: alsa-devel -BuildRequires: cmake >= 3.8 +BuildRequires: cmake >= 3.10.2 BuildRequires: cppunit-devel BuildRequires: cppzmq-devel BuildRequires: fdupes @@ -42,13 +44,15 @@ BuildRequires: gcc-c++ BuildRequires: gmp-devel BuildRequires: gsl-devel BuildRequires: libSDL-devel -BuildRequires: libboost_atomic-devel >= 1.53 -BuildRequires: libboost_filesystem-devel >= 1.53 +BuildRequires: libboost_atomic-devel >= 1.65 +BuildRequires: libboost_filesystem-devel >= 1.65 BuildRequires: libboost_system-devel BuildRequires: libgsm-devel BuildRequires: libjack-devel BuildRequires: libmpir-devel +BuildRequires: libsndfile-devel BuildRequires: log4cpp-devel +BuildRequires: mathjax BuildRequires: ninja BuildRequires: orc BuildRequires: pkgconfig @@ -59,14 +63,15 @@ BuildRequires: python3-click BuildRequires: python3-click-plugins BuildRequires: python3-gobject BuildRequires: python3-gobject-cairo -BuildRequires: python3-mako >= 0.9.1 -BuildRequires: python3-numpy +BuildRequires: python3-mako >= 1.0.7 +BuildRequires: python3-numpy-devel >= 1.13.3 BuildRequires: python3-pyaml >= 3.11 +BuildRequires: python3-pybind11-devel >= 2.4.3 BuildRequires: python3-pycairo BuildRequires: python3-qt5-devel BuildRequires: python3-six BuildRequires: qwt6-qt5-devel -BuildRequires: swig >= 3.0.8 +BuildRequires: soapy-sdr-devel BuildRequires: typelib(Gtk) = 3.0 BuildRequires: typelib(PangoCairo) = 1.0 BuildRequires: typelib(cairo) = 1.0 @@ -76,7 +81,7 @@ BuildRequires: pkgconfig(codec2) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(py3cairo) -BuildRequires: pkgconfig(volk) >= 2.0 +BuildRequires: volk-devel >= 2.4.1 # gr_modtool dependencies Requires: python3-click Requires: python3-click-plugins @@ -161,13 +166,6 @@ This package contains some examples of using GNU Radio. %prep %autosetup -p1 -# remove buildtime from documentation -sed -i 's|^HTML_TIMESTAMP = YES|HTML_TIMESTAMP = NO|' docs/doxygen/Doxyfile.in -sed -i 's|^HTML_TIMESTAMP = YES|HTML_TIMESTAMP = NO|' docs/doxygen/Doxyfile.swig_doc.in - -# protect the template files from %%cmake macro magic / mangling -find gr-utils/python/modtool/templates/gr-newmod -name CMakeLists.txt -exec mv '{}' '{}.tmpl' \; - %build %define __builder ninja %cmake \ @@ -180,9 +178,6 @@ find gr-utils/python/modtool/templates/gr-newmod -name CMakeLists.txt -exec mv %cmake_build %install -# move the template files back -find gr-utils/python/modtool/templates/gr-newmod -name CMakeLists.txt.tmpl -execdir mv '{}' 'CMakeLists.txt' \; - %cmake_install install -d %{buildroot}%{_docdir}/%{name} @@ -215,21 +210,23 @@ rm -rf %{buildroot}%{_datadir}/icons/gnome %{_datadir}/gnuradio/modtool/ %{_datadir}/gnuradio/themes/ %{_datadir}/gnuradio/fec/ +%{_datadir}/gnuradio/clang-format.conf %{_datadir}/icons/hicolor/*/apps/gnuradio-grc.png %{_datadir}/applications/gnuradio-grc.desktop %{_datadir}/mime/packages/gnuradio-grc.xml +%{_datadir}/metainfo/org.gnuradio.grc.metainfo.xml %{python3_sitearch}/* %dir %{_sysconfdir}/gnuradio %dir %{_sysconfdir}/gnuradio/conf.d %config(noreplace) %{_sysconfdir}/gnuradio/conf.d/*.conf +%{_mandir}/man1/*.1%{?ext_man} %dir %{_docdir}/%{name}/ %{_docdir}/%{name}/README* %{_docdir}/%{name}/CHANGELOG* +%{_docdir}/%{name}/CONTRIBUTING.md # doc package %exclude %{_docdir}/%{name}/html/ %exclude %{_docdir}/%{name}/xml/ -%exclude %{_docdir}/%{name}/*.py -%exclude %{_docdir}/%{name}/*.grc %files -n libgnuradio-%{sover} %{_libdir}/libgnuradio*.so.* @@ -245,8 +242,6 @@ rm -rf %{buildroot}%{_datadir}/icons/gnome %dir %{_docdir}/%{name} %{_docdir}/%{name}/html/ %{_docdir}/%{name}/xml/ -%{_docdir}/%{name}/*.py -%{_docdir}/%{name}/*.grc %files examples %dir %{_libdir}/gnuradio diff --git a/revert-23cece0d0.patch b/revert-23cece0d0.patch deleted file mode 100644 index 3935da2..0000000 --- a/revert-23cece0d0.patch +++ /dev/null @@ -1,555 +0,0 @@ -diff --git a/CHANGELOG.md b/CHANGELOG.md -index 523f4bbda..90b785104 100644 ---- a/CHANGELOG.md -+++ b/CHANGELOG.md -@@ -132,18 +132,6 @@ Older Logs can be found in `docs/RELEASE-NOTES-*`. - - global option to toggle showing of IDs - - Help "Keyboard Shortcut" entry - --### Deprecated -- --#### gr-analog -- --- `sig_source`: `freq` port will be removed in the future -- --### Added --#### gr-analog -- --- `sig_source`: `cmd` port adds support for dicts, setting of frequency, -- amplitude, offset and phase parameters -- - ## [3.8.0.0] - 2019-08-09 - - Witness me! -diff --git a/gr-analog/examples/sig_source_msg_ports.grc b/gr-analog/examples/sig_source_msg_ports.grc -deleted file mode 100644 -index 9cba1c62a..000000000 ---- a/gr-analog/examples/sig_source_msg_ports.grc -+++ /dev/null -@@ -1,242 +0,0 @@ --options: -- parameters: -- author: "Marcus M\xFCller" -- catch_exceptions: 'True' -- category: '[GRC Hier Blocks]' -- cmake_opt: '' -- comment: '' -- copyright: 2020 Free Software Foundation -- description: '' -- gen_cmake: 'On' -- gen_linking: dynamic -- generate_options: qt_gui -- hier_block_src_path: '.:' -- id: demonstrate_signal_source_message_ports -- max_nouts: '0' -- output_language: python -- placement: (0,0) -- qt_qss_theme: '' -- realtime_scheduling: '' -- run: 'True' -- run_command: '{python} -u {filename}' -- run_options: prompt -- sizing_mode: fixed -- thread_safe_setters: '' -- title: 'Demonstration: Signal Source Message Ports' -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [0, 4.0] -- rotation: 0 -- state: enabled -- --blocks: --- name: analog_sig_source_x_0 -- id: analog_sig_source_x -- parameters: -- affinity: '' -- alias: '' -- amp: '1' -- comment: '' -- freq: '1000' -- maxoutbuf: '0' -- minoutbuf: '0' -- offset: '0' -- phase: '0' -- samp_rate: samp_rate -- type: complex -- waveform: analog.GR_COS_WAVE -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [296, 188.0] -- rotation: 0 -- state: true --- name: blocks_message_strobe_0 -- id: blocks_message_strobe -- parameters: -- affinity: '' -- alias: '' -- comment: 'sets the amplitude -- -- and frequency every -- -- second' -- maxoutbuf: '0' -- minoutbuf: '0' -- msg: 'pmt.to_pmt({"freq": 2000, "ampl":1.5})' -- period: '1000' -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [40, 148.0] -- rotation: 0 -- state: true --- name: blocks_message_strobe_random_0 -- id: blocks_message_strobe_random -- parameters: -- affinity: '' -- alias: '' -- comment: 'resets the phase -- -- at random points -- -- in time' -- dist: blocks.STROBE_GAUSSIAN -- maxoutbuf: '0' -- mean: '200' -- minoutbuf: '0' -- msg: pmt.to_pmt({"phase":0.0}) -- std: '40' -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [24, 292.0] -- rotation: 0 -- state: true --- name: blocks_throttle_0 -- id: blocks_throttle -- parameters: -- affinity: '' -- alias: '' -- comment: '' -- ignoretag: 'True' -- maxoutbuf: '0' -- minoutbuf: '0' -- samples_per_second: samp_rate -- type: complex -- vlen: '1' -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [496, 228.0] -- rotation: 0 -- state: true --- name: qtgui_time_sink_x_0 -- id: qtgui_time_sink_x -- parameters: -- affinity: '' -- alias: '' -- alpha1: '1.0' -- alpha10: '1.0' -- alpha2: '1.0' -- alpha3: '1.0' -- alpha4: '1.0' -- alpha5: '1.0' -- alpha6: '1.0' -- alpha7: '1.0' -- alpha8: '1.0' -- alpha9: '1.0' -- autoscale: 'False' -- axislabels: 'True' -- color1: blue -- color10: dark blue -- color2: red -- color3: green -- color4: black -- color5: cyan -- color6: magenta -- color7: yellow -- color8: dark red -- color9: dark green -- comment: '' -- ctrlpanel: 'False' -- entags: 'True' -- grid: 'False' -- gui_hint: '' -- label1: Signal 1 -- label10: Signal 10 -- label2: Signal 2 -- label3: Signal 3 -- label4: Signal 4 -- label5: Signal 5 -- label6: Signal 6 -- label7: Signal 7 -- label8: Signal 8 -- label9: Signal 9 -- legend: 'True' -- marker1: '-1' -- marker10: '-1' -- marker2: '-1' -- marker3: '-1' -- marker4: '-1' -- marker5: '-1' -- marker6: '-1' -- marker7: '-1' -- marker8: '-1' -- marker9: '-1' -- name: '""' -- nconnections: '1' -- size: '1024' -- srate: samp_rate -- stemplot: 'False' -- style1: '1' -- style10: '1' -- style2: '1' -- style3: '1' -- style4: '1' -- style5: '1' -- style6: '1' -- style7: '1' -- style8: '1' -- style9: '1' -- tr_chan: '0' -- tr_delay: '0' -- tr_level: '0.0' -- tr_mode: qtgui.TRIG_MODE_NORM -- tr_slope: qtgui.TRIG_SLOPE_POS -- tr_tag: '""' -- type: complex -- update_time: '0.10' -- width1: '1' -- width10: '1' -- width2: '1' -- width3: '1' -- width4: '1' -- width5: '1' -- width6: '1' -- width7: '1' -- width8: '1' -- width9: '1' -- ylabel: Amplitude -- ymax: '2' -- ymin: '-2' -- yunit: '""' -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [656, 212.0] -- rotation: 0 -- state: true --- name: samp_rate -- id: parameter -- parameters: -- alias: '' -- comment: '' -- hide: none -- label: Sampling Rate [Hz] -- short_id: r -- type: eng_float -- value: 100e3 -- states: -- bus_sink: false -- bus_source: false -- bus_structure: null -- coordinate: [192, 4.0] -- rotation: 0 -- state: true -- --connections: --- [analog_sig_source_x_0, '0', blocks_throttle_0, '0'] --- [blocks_message_strobe_0, strobe, analog_sig_source_x_0, cmd] --- [blocks_message_strobe_random_0, strobe, analog_sig_source_x_0, cmd] --- [blocks_throttle_0, '0', qtgui_time_sink_x_0, '0'] -- --metadata: -- file_format: 1 -diff --git a/gr-analog/grc/analog_sig_source_x.block.yml b/gr-analog/grc/analog_sig_source_x.block.yml -index aa16061de..ebd55c2df 100644 ---- a/gr-analog/grc/analog_sig_source_x.block.yml -+++ b/gr-analog/grc/analog_sig_source_x.block.yml -@@ -40,10 +40,6 @@ parameters: - default: '0' - - inputs: --- domain: message -- id: cmd -- optional: true -- - - domain: message - id: freq - optional: true -diff --git a/gr-analog/lib/sig_source_impl.cc b/gr-analog/lib/sig_source_impl.cc -index 0a6289f2d..b73b32982 100644 ---- a/gr-analog/lib/sig_source_impl.cc -+++ b/gr-analog/lib/sig_source_impl.cc -@@ -65,12 +65,9 @@ sig_source_impl::sig_source_impl(double sampling_freq, - { - this->set_frequency(frequency); - this->set_phase(phase); -- this->message_port_register_in(pmt::mp("cmd")); -- this->set_msg_handler(pmt::mp("cmd"), -- [this](pmt::pmt_t msg) { this->set_cmd_msg(msg); }); - this->message_port_register_in(pmt::mp("freq")); - this->set_msg_handler(pmt::mp("freq"), -- [this](pmt::pmt_t msg) { this->set_freq_msg(msg); }); -+ boost::bind(&sig_source_impl::set_frequency_msg, this, _1)); - } - - template -@@ -79,76 +76,32 @@ sig_source_impl::~sig_source_impl() - } - - template --void sig_source_impl::set_freq_msg(pmt::pmt_t msg) -+void sig_source_impl::set_frequency_msg(pmt::pmt_t msg) - { -- GR_LOG_INFO(this->d_logger, -- "The `freq` port is deprecated and will be removed. Forwarding this " -- "message to the `cmd` handler."); -+ // Accepts either a number that is assumed to be the new -+ // frequency or a key:value pair message where the key must be -+ // "freq" and the value is the new frequency. -+ - if (pmt::is_number(msg)) { -- // if plain number, then interpret it as frequency - set_frequency(pmt::to_double(msg)); -- return; -- } -- set_cmd_msg(msg); --} -- --template --void sig_source_impl::set_cmd_msg(pmt::pmt_t msg) --{ -- static auto freq_key = pmt::intern("freq"); -- static auto ampl_key = pmt::intern("ampl"); -- static auto phase_key = pmt::intern("phase"); -- static auto offset_key = pmt::intern("offset"); -- -- // either a key:value pair or a dict -- pmt::pmt_t list_of_items; -- if (pmt::is_dict(msg)) { -- list_of_items = pmt::dict_items(msg); - } else if (pmt::is_pair(msg)) { -- list_of_items = pmt::list1(msg); -- } else { -- GR_LOG_WARN(this->d_logger, "malformed message: is not dict nor pair"); -- return; -- } -- -- do { -- auto item = pmt::car(list_of_items); -- -- auto key = pmt::car(item); -- auto val = pmt::cdr(item); -- -- if (key == freq_key) { -+ pmt::pmt_t key = pmt::car(msg); -+ pmt::pmt_t val = pmt::cdr(msg); -+ if (pmt::eq(key, pmt::intern("freq"))) { - if (pmt::is_number(val)) { - set_frequency(pmt::to_double(val)); -- } else { -- GR_LOG_WARN(this->d_logger, "frequency value needs to be a number") -- } -- } else if (key == ampl_key) { -- if (pmt::is_number(val)) { -- set_amplitude(pmt::to_double(val)); -- } else { -- GR_LOG_WARN(this->d_logger, "amplitude value needs to be a number") -- } -- } else if (key == phase_key) { -- if (pmt::is_number(val)) { -- set_phase(pmt::to_double(val)); -- } else { -- GR_LOG_WARN(this->d_logger, "phase value needs to be a number") -- } -- } else if (key == offset_key) { -- if (pmt::is_number(val)) { -- set_offset(pmt::to_double(val)); -- } else { -- GR_LOG_WARN(this->d_logger, "offset value needs to be a number") - } - } else { - GR_LOG_WARN(this->d_logger, -- "unsupported message key " + pmt::write_string(key)); -+ boost::format("Set Frequency Message must have " -+ "the key = 'freq'; got '%1%'.") % -+ pmt::write_string(key)); - } -- -- // advance to next item, if any -- list_of_items = pmt::cdr(list_of_items); -- } while (list_of_items != pmt::PMT_NIL); -+ } else { -+ GR_LOG_WARN(this->d_logger, -+ "Set Frequency Message must be either a number or a " -+ "key:value pair where the key is 'freq'."); -+ } - } - - template -@@ -371,5 +324,5 @@ template class sig_source; - template class sig_source; - template class sig_source; - template class sig_source; --} // namespace analog -+} /* namespace analog */ - } /* namespace gr */ -diff --git a/gr-analog/lib/sig_source_impl.h b/gr-analog/lib/sig_source_impl.h -index 82740cb6a..6b6457a16 100644 ---- a/gr-analog/lib/sig_source_impl.h -+++ b/gr-analog/lib/sig_source_impl.h -@@ -1,6 +1,6 @@ - /* -*- c++ -*- */ - /* -- * Copyright 2004,2012,2018,2020 Free Software Foundation, Inc. -+ * Copyright 2004,2012,2018 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * -@@ -64,12 +64,7 @@ public: - - void set_sampling_freq(double sampling_freq); - void set_waveform(gr_waveform_t waveform); -- -- // Message handlers -- //!\brief deprecated handler. Use "cmd" port instead. -- void set_freq_msg(pmt::pmt_t msg); -- void set_cmd_msg(pmt::pmt_t msg); -- -+ void set_frequency_msg(pmt::pmt_t msg); - void set_frequency(double frequency); - void set_amplitude(double ampl); - void set_offset(T offset); -diff --git a/gr-analog/python/analog/qa_sig_source.py b/gr-analog/python/analog/qa_sig_source.py -index 81ba7e407..b5acf750c 100644 ---- a/gr-analog/python/analog/qa_sig_source.py -+++ b/gr-analog/python/analog/qa_sig_source.py -@@ -1,8 +1,8 @@ - #!/usr/bin/env python - # --#Copyright 2004, 2007, 2010, 2012, 2013, 2020 Free Software Foundation, Inc. -+# Copyright 2004,2007,2010,2012,2013 Free Software Foundation, Inc. - # --#This file is part of GNU Radio -+# This file is part of GNU Radio - # - # GNU Radio is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by -@@ -26,8 +26,8 @@ import math - import pmt - from gnuradio import gr, gr_unittest, analog, blocks - -- - class test_sig_source(gr_unittest.TestCase): -+ - def setUp(self): - self.tb = gr.top_block() - -@@ -83,6 +83,7 @@ class test_sig_source(gr_unittest.TestCase): - dst_data = dst1.data() - self.assertFloatTuplesAlmostEqual(expected_result, dst_data, 5) - -+ - def test_sine_b(self): - tb = self.tb - sqrt2 = math.sqrt(2) / 2 -@@ -96,7 +97,7 @@ class test_sig_source(gr_unittest.TestCase): - tb.connect(op, dst1) - tb.run() - dst_data = dst1.data() -- #Let the python know we are dealing with signed int behind scenes -+ # Let the python know we are dealing with signed int behind scenes - dst_data_signed = [b if b < 127 else (256 - b) * -1 for b in dst_data] - self.assertFloatTuplesAlmostEqual(expected_result, dst_data_signed) - -@@ -117,10 +118,7 @@ class test_sig_source(gr_unittest.TestCase): - tb = self.tb - sqrt2 = math.sqrt(2) / 2 - sqrt2j = 1j * math.sqrt(2) / 2 -- expected_result = [ -- 1, sqrt2 + sqrt2j, 1j, -sqrt2 + sqrt2j, -1, -sqrt2 - sqrt2j, -1j, -- sqrt2 - sqrt2j, 1 -- ] -+ expected_result = (1, sqrt2 + sqrt2j, 1j, -sqrt2 + sqrt2j, -1, -sqrt2 - sqrt2j, -1j, sqrt2 - sqrt2j, 1) - src1 = analog.sig_source_c(8, analog.GR_COS_WAVE, 1.0, 1.0) - op = blocks.head(gr.sizeof_gr_complex, 9) - dst1 = blocks.vector_sink_c() -@@ -140,14 +138,12 @@ class test_sig_source(gr_unittest.TestCase): - tb.connect(op, dst1) - tb.run() - dst_data = dst1.data() -- self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 5) -+ self.assertEqual(expected_result, dst_data) - - def test_tri_c(self): - tb = self.tb -- expected_result = [ -- 1 + .5j, .75 + .75j, .5 + 1j, .25 + .75j, 0 + .5j, .25 + .25j, -- .5 + 0j, .75 + .25j, 1 + .5j -- ] -+ expected_result = (1+.5j, .75+.75j, .5+1j, .25+.75j, 0+.5j, -+ .25+.25j, .5+0j, .75+.25j, 1+.5j) - src1 = analog.sig_source_c(8, analog.GR_TRI_WAVE, 1.0, 1.0) - op = blocks.head(gr.sizeof_gr_complex, 9) - dst1 = blocks.vector_sink_c() -@@ -159,10 +155,8 @@ class test_sig_source(gr_unittest.TestCase): - - def test_saw_c(self): - tb = self.tb -- expected_result = [ -- .5 + .25j, .625 + .375j, .75 + .5j, .875 + .625j, 0 + .75j, -- .125 + .875j, .25 + 1j, .375 + .125j, .5 + .25j -- ] -+ expected_result = (.5+.25j, .625+.375j, .75+.5j, .875+.625j, -+ 0+.75j, .125+.875j, .25+1j, .375+.125j, .5+.25j) - src1 = analog.sig_source_c(8, analog.GR_SAW_WAVE, 1.0, 1.0) - op = blocks.head(gr.sizeof_gr_complex, 9) - dst1 = blocks.vector_sink_c() -@@ -208,7 +202,7 @@ class test_sig_source(gr_unittest.TestCase): - dst_data = dst1.data() - self.assertFloatTuplesAlmostEqual(expected_result, dst_data, 5) - -- def test_freq_msg(self): # deprecated but still tested -+ def test_freq_msg(self): - src = analog.sig_source_c(8, analog.GR_SIN_WAVE, 1.0, 1.0) - op = blocks.head(gr.sizeof_gr_complex, 9) - snk = blocks.vector_sink_c() -@@ -221,30 +215,6 @@ class test_sig_source(gr_unittest.TestCase): - - self.assertAlmostEqual(src.frequency(), frequency) - -- def test_cmd_msg(self): -- src = analog.sig_source_c(8, analog.GR_SIN_WAVE, 1.0, 1.0) -- op = blocks.head(gr.sizeof_gr_complex, 9) -- snk = blocks.vector_sink_c() -- self.tb.connect(src, op, snk) -- self.assertAlmostEqual(src.frequency(), 1.0) -- -- frequency = 3.0 -- amplitude = 10 -- offset = -1.0 -- -- src._post( -- pmt.to_pmt('freq'), -- pmt.to_pmt({ -- "freq": frequency, -- "ampl": amplitude, -- "offset": offset -- })) -- self.tb.run() -- -- self.assertAlmostEqual(src.frequency(), frequency) -- self.assertAlmostEqual(src.amplitude(), amplitude) -- self.assertAlmostEqual(src.offset(), offset) -- - - if __name__ == '__main__': - gr_unittest.run(test_sig_source, "test_sig_source.xml")