debian/0000775000000000000000000000000012554223326007174 5ustar debian/gnuradio.install0000664000000000000000000000005712262175353012400 0ustar etc usr/bin usr/lib/python* usr/share/gnuradio debian/usrp_flex.10000664000000000000000000000173711714136317011275 0ustar .TH USRP_FLEX "1" "December 2011" "usrp_flex 3.5" "User Commands" .SH NAME usrp_flex \- demodulate Flex protocol signals with GNU Radio .SH SYNOPSIS .B usrp_flex [\fIoptions\fR] .SH DESCRIPTION demodulate Flex protocol. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-f\fR FREQ, \fB\-\-freq\fR=\fIFREQ\fR Set receive frequency to FREQ [default=none] .TP \fB\-a\fR ADDRESS, \fB\-\-address\fR=\fIADDRESS\fR Address of UHD device, [default=addr=192.168.10.2] .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-\-rx\-gain\fR=\fIRX_GAIN\fR set receive gain in dB (default is midpoint) .TP \fB\-c\fR Hz, \fB\-\-calibration\fR=\fIHz\fR set frequency offset to Hz .HP \fB\-v\fR, \fB\-\-verbose\fR .TP \fB\-l\fR, \fB\-\-log\fR log flowgraph to files (LOTS of data) .TP \fB\-F\fR FROM_FILE, \fB\-\-from\-file\fR=\fIFROM_FILE\fR read samples from file instead of USRP .SH "SEE ALSO" usrp_flex_all(1) usrp_flex_band(1) debian/ChangeLogV3_7_2_10000664000000000000000000001055012250371016012040 0ustar ChangeLogV3.7.2.1 This is a bug-fix only release with no new features, rolling up issues that have been corrected since the 3.7.2 release. Contributors: Alistair Bird Johnathan Corgan Martin Braun Michael Dickens Philip Balister Sebastian Koslowski Sylvain Munaut <246tnt@gmail.com> Tim O'Shea Tom Rondeau The bug fixes are mostly minor changes scattered throughout the tree. However, a few issues were important enough to get corrected in a maintenance release. An issue was corrected in the UDP source and sink to allow operation over localhost when no other network interfaces are present, which was causing test failures in some environments. See issues #565 and #613. Several longstanding issues in the VOLK library when operating on the ARM architecture and elsewhere were corrected. See issues #569, #582, #583, and #614. In addition, some fixes were also needed to work with MacOSX 10.9. The new QT Time Sink feature allowing triggering on stream tags had an issue when there were no stream tags at all; this was fixed. See issue #615. The OFDM Header/Payload Demuxer block was throwing exceptions when receiving a payload length that exceeded the maximum buffer size, this was fixed to discard the packet instead. See issue #615. The new GNU Radio Companion search feature had a remaining bug fixed that was preventing the use of certain letters in the search entry. The overall shortlog follows: Alistair Bird (1): blocks: fix pdu_to_tagged_stream when saving leftover items Martin Braun (6): runtime: fixed case where tagged stream blocks produce zero length tags digital: HPD fixes (burst ID tags are no more propagated; buffer sizes are halved to est. max output size) modtool: bugfixes for in-tree operation (include paths, license, cmake editing) digital: fix CID 1090058 and 1043272 in constellation digital: Fix CID 1043268 and 1043271 modtool: dashes no longer allowed in modnames at all (fixes #619) Michael Dickens (1): cmake: fixes for Apple (specifically; clang generically) to handle some missing AVX instructions. Philip Balister (4): qa_fir_filter_with_buffer.cc : Fix incorrect use of sizeof(). fir_filter.cc : Address Coverity sizeof not portable warnings. fir_filter.cc, fir_filter_with_buffer.cc : Address Coverity sizeof not portable warnings. dc_blocker_cc_impl.cc, dc_blocker_ff_impl.cc : Fix uninitialized pointer. Sebastian Koslowski (2): blocks: allow extra header chunks in wav_file_source grc: fix search entry focus (again) Sylvain Munaut (2): cmake: proper handling and exporting of ALL include dirs and libraries. cmake: patch that fixes scoping issue by re-declaring the variable in the parent scope. Tim O'Shea (1): cmake: ensure GrPython is included before using methods from it in FindICE.cmake - needed when including only FindICE from OOT modules Tom Rondeau (18): runtime: minor swig fix of declaring std_string.i. Need for OS X 10.9. digital: fixed simple warning on ofdm code. blocks: updated UDP source to handle no network connections by allowing use of loopback device. Also fixed an infrequent problem on shutdown before the thread exited. filter: fixed missing copyright and import sys in examples fft: optimization; bug fixes for kaiser window and added windows to win_type. qtgui: fix for issue #615. volk: naming error between orc file name and kernel name. volk: explicitly casting tolerance to float or unsigned int for passing to fcpmare or icompare in QA tests. blocks: loosen restriction on damping factor in control_loop class. digital: updated qa_mpsk_receiver to have similar tests in test01 and test02. digital: on 32-bit machines when M=4 using single-precision float was causing k=1. Using double-precision calculation here to avoid possible confusion and errors docs: fixed doxygen warning. docs: fixed exploring-gnuradio examples and added to doxygen manual. pmt: added class comparator to rename comperator (to be removed in 3.8). blocks: prevent alowing more input streams than this block uses. docs: fixed/modifying/adding documentation for blocks a-l. digital: fixed warnings about order of initializing variables in constellation. debian/hrpt_demod.10000664000000000000000000000174111714071545011407 0ustar .TH HRPT_DEMOD "1" "December 2011" "hrpt_demod 3.5" "User Commands" .SH NAME hrpt_demod \- Demodulate NOAA High Rate Picture Transmission .SH SYNOPSIS .B hrpt_demod.py: [\fIoptions\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-F\fR INPUT_FILENAME, \fB\-\-input\-filename\fR=\fIINPUT_FILENAME\fR Set usrp.dat [default=usrp.dat] .TP \fB\-o\fR OUTPUT_FILENAME, \fB\-\-output\-filename\fR=\fIOUTPUT_FILENAME\fR Set frames.dat [default=frames.dat] .TP \fB\-d\fR DECIM, \fB\-\-decim\fR=\fIDECIM\fR Set None [default=32] .TP \fB\-p\fR PLL_ALPHA, \fB\-\-pll\-alpha\fR=\fIPLL_ALPHA\fR Set None [default=10m] .TP \fB\-s\fR CLOCK_ALPHA, \fB\-\-clock\-alpha\fR=\fICLOCK_ALPHA\fR Set None [default=10m] .SH "SEE ALSO" The full documentation for .B hrpt_demod is maintained as an HTML file. If the .B gnuradio-doc package is properly installed at your site .IP .B usr/share/doc/gnuradio-doc/html/noaa__api_8h.html .PP should give you access to the complete manual. debian/gr_plot_char.10000664000000000000000000000232411714130631011713 0ustar .TH GR_PLOT_CHAR "1" "December 2011" "gr_plot_char 3.5" "User Commands" .SH NAME gr_plot_char \- plot samples versus time for byte/char data .SH SYNOPSIS .B gr_plot_char: [\fIoptions\fR] \fIinput_filenames\fR .SH DESCRIPTION Takes a GNU Radio byte/char binary file and displays the samples versus time. You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/tags_demo.10000664000000000000000000000205611752524102011216 0ustar .TH TAGS_DEMO "1" "May 2012" "TAGS_DEMO 3.6.0" "User Commands" .SH NAME tags_demo \- GNURadio and UHD tags example .SH DESCRIPTION Show source timestamps and demonstrate timed bursts on a sink. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-\-addr\fR the device address in string format .TP \fB\-\-rate\fR the sample rate in samples per second (default=1000000) .TP \fB\-\-freq\fR the center frequency in Hz (defaualt=1000000) .TP \fB\-\-burst\fR the duration of each burst in seconds (defaualt=0.10000000000000001) .TP \fB\-\-idle\fR idle time between bursts in seconds (defaualt=0.050000000000000003) .PP The tags sink demo block will print USRP source time stamps. The tags source demo block will send bursts to the USRP sink. Look at the USRP output on a scope to see the timed bursts. .SH "SEE ALSO" .PP The c++ gnuradio example programs are in /usr/bin. There are also many Python and GnuRadio Companion examples in /usr/share/gnuradio/examples/... .PP dial_tone(1) fcd_nfm_rx(1) uhd_rx_nogui(1) uhd_siggen(1) uhd_siggen_gui(1) debian/libgnuradio-audio3.7.2.1.install0000664000000000000000000000004712250407106014703 0ustar usr/lib/*/libgnuradio-audio.so.3.7.2.1 debian/mkmanpages.sh0000775000000000000000000000671711674206457011701 0ustar #!/bin/sh for i in \ create-gnuradio-out-of-tree-project \ file_rx_hrpt \ gnuradio-companion \ gnuradio-config-info \ gr_filter_design \ gr_plot_char \ gr_plot_const \ gr_plot_fft \ gr_plot_fft_c \ gr_plot_fft_f \ gr_plot_float \ gr_plot_int \ gr_plot_iq \ gr_plot_psd \ gr_plot_psd_c \ gr_plot_psd_f \ gr_plot_qt \ gr_plot_short \ hrpt_decode \ hrpt_demod \ uhd_fft \ uhd_rx_cfile \ uhd_rx_nogui \ uhd_siggen \ uhd_siggen_gui \ usrp_flex \ usrp_flex_all \ usrp_flex_band \ usrp_rx_hrpt \ usrp_rx_hrpt_nogui \ ; do help2man --no-discard-stderr --version-string=3.5 /usr/bin/$i.py > $i.1 ; done exit 0 W: gnuradio: binary-without-manpage usr/bin/create-gnuradio-out-of-tree-project N: N: Each binary in /usr/bin, /usr/sbin, /bin, /sbin or /usr/games should N: have a manual page N: N: Note that though the man program has the capability to check for several N: program names in the NAMES section, each of these programs should have N: its own manual page (a symbolic link to the appropriate manual page is N: sufficient) because other manual page viewers such as xman or tkman N: don't support this. N: N: If the name of the man page differs from the binary by case, man may be N: able to find it anyway; however, it is still best practice to make the N: case of the man page match the case of the binary. N: N: If the man pages are provided by another package on which this package N: depends, lintian may not be able to determine that man pages are N: available. In this case, after confirming that all binaries do have man N: pages after this package and its dependencies are installed, please add N: a lintian override. N: N: Refer to Debian Policy Manual section 12.1 (Manual pages) for details. N: N: Severity: normal, Certainty: possible N: N: Check: manpages, Type: binary N: W: gnuradio: binary-without-manpage usr/bin/file_rx_hrpt W: gnuradio: binary-without-manpage usr/bin/gnuradio-companion W: gnuradio: binary-without-manpage usr/bin/gnuradio-config-info W: gnuradio: binary-without-manpage usr/bin/gr_filter_design W: gnuradio: binary-without-manpage usr/bin/gr_plot_char W: gnuradio: binary-without-manpage usr/bin/gr_plot_const W: gnuradio: binary-without-manpage usr/bin/gr_plot_fft W: gnuradio: binary-without-manpage usr/bin/gr_plot_fft_c W: gnuradio: binary-without-manpage usr/bin/gr_plot_fft_f W: gnuradio: binary-without-manpage usr/bin/gr_plot_float W: gnuradio: binary-without-manpage usr/bin/gr_plot_int W: gnuradio: binary-without-manpage usr/bin/gr_plot_iq W: gnuradio: binary-without-manpage usr/bin/gr_plot_psd W: gnuradio: binary-without-manpage usr/bin/gr_plot_psd_c W: gnuradio: binary-without-manpage usr/bin/gr_plot_psd_f W: gnuradio: binary-without-manpage usr/bin/gr_plot_qt W: gnuradio: binary-without-manpage usr/bin/gr_plot_short W: gnuradio: binary-without-manpage usr/bin/hrpt_decode W: gnuradio: binary-without-manpage usr/bin/hrpt_demod W: gnuradio: binary-without-manpage usr/bin/uhd_fft W: gnuradio: binary-without-manpage usr/bin/uhd_rx_cfile W: gnuradio: binary-without-manpage usr/bin/uhd_rx_nogui W: gnuradio: binary-without-manpage usr/bin/uhd_siggen W: gnuradio: binary-without-manpage usr/bin/uhd_siggen_gui W: gnuradio: binary-without-manpage usr/bin/usrp_flex W: gnuradio: binary-without-manpage usr/bin/usrp_flex_all W: gnuradio: binary-without-manpage usr/bin/usrp_flex_band W: gnuradio: binary-without-manpage usr/bin/usrp_rx_hrpt W: gnuradio: binary-without-manpage usr/bin/usrp_rx_hrpt_nogui debian/libgnuradio-vocoder3.7.2.1.install0000664000000000000000000000005112250406747015250 0ustar usr/lib/*/libgnuradio-vocoder.so.3.7.2.1 debian/gnuradio-companion.10000664000000000000000000000170511720254513013046 0ustar .TH GNURADIO-COMPANION "1" "December 2011" "GNU Radio Companion 3.5" "User Commands" .SH NAME gnuradio-companion \- GNU Radio Companion (GRC) is a graphical tool for creating signal flow graphs and generating flow-graph source code. .SH SYNOPSIS .B gnuradio-companion: [\fIoptions\fR] [\fIsaved flow graphs\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit. .TP \fB\-v\fR, \fB\-\-version\fR show program's version number and exit .TP \fB\-c\fR, \fB\-\-compile\fR Only compile the GRC file without invoking the GUI. Useful for unit testing, running gnuradio-companion from a Makefile and other command-line scripting. .TP \fB\-d\fR, \fB\-\-output-dir\fR Output path for the Python file. .SH SAVED FLOW GRAPHS Invoke the program with an XML file saved by a previous run. .SH "SEE ALSO" The full documentation for .B gnuradio-companion is maintained as an HTML file. See http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioCompanion debian/gr_plot_short.10000664000000000000000000000235611714132262012144 0ustar .TH GR_PLOT_SHORT "1" "December 2011" "gr_plot_short 3.5" "User Commands" .SH NAME gr_plot_short \- plot short integer binary samples versus time using GNU Radio .SH SYNOPSIS .B gr_plot_short: [\fIoptions\fR] \fIinput_filenames\fR .SH DESCRIPTION Takes a GNU Radio short integer binary file and displays the samples versus time. You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/compat0000664000000000000000000000000212025427613010370 0ustar 9 debian/gr_plot_psd.10000664000000000000000000000421111714264032011564 0ustar .TH GR_PLOT_PSD "1" "December 2011" "gr_plot_psd 3.5" "User Commands" .SH NAME gr_plot_psd \- GNU Radio power spectrum plotting .SH SYNOPSIS .B gr_plot_psd: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio binary file (with specified data type using \fB\-\-data\-type\fR) and displays the I&Q data versus time as well as the power spectral density (PSD) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. Finally, the size of the FFT to use for the PSD and spectrogram plots can be set independently with \fB\-\-psd\-size\fR and \fB\-\-spec\-size\fR, respectively. The spectrogram plot does not display by default and is turned on with \fB\-S\fR or \fB\-\-enable\-spec\fR. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-d\fR DATA_TYPE, \fB\-\-data\-type\fR=\fIDATA_TYPE\fR Specify the data type (complex64, float32, (u)int32, (u)int16, (u)int8) [default=complex64] .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=8192] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .TP \fB\-\-psd\-size\fR=\fIPSD_SIZE\fR Set the size of the PSD FFT [default=1024] .TP \fB\-\-spec\-size\fR=\fISPEC_SIZE\fR Set the size of the spectrogram FFT [default=256] .TP \fB\-S\fR, \fB\-\-enable\-spec\fR Turn on plotting the spectrogram [default=False] .SH "SEE ALSO" gr_plot_psd_c(1) gr_plot_psd_f(1) debian/libgnuradio-pmt3.7.2.1.install0000664000000000000000000000004512250407011014373 0ustar usr/lib/*/libgnuradio-pmt.so.3.7.2.1 debian/usrp_flex_all.10000664000000000000000000000212111714136035012106 0ustar .TH USRP_FLEX_ALL "1" "December 2011" "usrp_flex_all 3.5" "User Commands" .SH NAME usrp_flex_all \- FLEX protocol demodulator .SH SYNOPSIS .B usrp_flex_all [\fIoptions\fR] .SH DESCRIPTION linux; GNU C++ version 4.6.2; Boost_104601; UHD_003.003.001\-666a2f0 .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-f\fR FREQ, \fB\-\-freq\fR=\fIFREQ\fR Set receive frequency to FREQ [default=929512500.0] .TP \fB\-a\fR ADDRESS, \fB\-\-address\fR=\fIADDRESS\fR Address of UHD device, [default=addr=192.168.10.2] .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-\-rx\-gain\fR=\fIRX_GAIN\fR set receive gain in dB (default is midpoint) .TP \fB\-c\fR Hz, \fB\-\-calibration\fR=\fIHz\fR set frequency offset to Hz .HP \fB\-v\fR, \fB\-\-verbose\fR .TP \fB\-l\fR, \fB\-\-log\fR log flowgraph to files (LOTS of data) .TP \fB\-F\fR FROM_FILE, \fB\-\-from\-file\fR=\fIFROM_FILE\fR read samples from file instead of USRP .TP \fB\-\-nchan\fR=\fInchan\fR set to number of channels in capture file .SH "SEE ALSO" usrp_flex_band(1) usrp_flex(1) debian/libgnuradio-fec3.7.2.1.install0000664000000000000000000000004512250407045014337 0ustar usr/lib/*/libgnuradio-fec.so.3.7.2.1 debian/hrpt_decode.10000664000000000000000000000157611714071340011541 0ustar .TH HRPT_DECODE "1" "December 2011" "hrpt_decode 3.5" "User Commands" .SH NAME hrpt_decode \- Decode NOAA High Rate Picture Transmission .SH SYNOPSIS .B hrpt_decode: [\fIoptions\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-d\fR DECIM, \fB\-\-decim\fR=\fIDECIM\fR Set decim [default=32] .TP \fB\-p\fR PLL_ALPHA, \fB\-\-pll\-alpha\fR=\fIPLL_ALPHA\fR Set pll_alpha [default=10m] .TP \fB\-s\fR CLOCK_ALPHA, \fB\-\-clock\-alpha\fR=\fICLOCK_ALPHA\fR Set clock_alpha [default=10m] .TP \fB\-F\fR INPUT_FILENAME, \fB\-\-input\-filename\fR=\fIINPUT_FILENAME\fR Set frames.hrpt [default=frames.hrpt] .SH "SEE ALSO" The full documentation for .B hrpt_decode is maintained as an HTML file. If the .B gnuradio-doc package is properly installed at your site .IP .B usr/share/doc/gnuradio-doc/html/noaa__api_8h.html .PP should give you access to the complete manual. debian/rules0000775000000000000000000000167112262311237010254 0ustar #!/usr/bin/make -f DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) export DEB_HOST_MULTIARCH %: dh $@ --parallel --builddirectory=build --with-buildsystem=cmake --with python2 override_dh_auto_configure: dh_auto_configure -- -DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" -DPythonLibs_FIND_VERSION:STRING="2.7" -DPythonInterp_FIND_VERSION:STRING="2.7" # dh_auto_configure -- -DCMAKE_CC_COMPILER=gcc-4.6 -DCMAKE_CXX_COMPILER=g++-4.6 -DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" -DPythonLibs_FIND_VERSION:STRING="2.7" -DPythonInterp_FIND_VERSION:STRING="2.7" override_dh_python2: dh_python2 --no-guessing-versions override_dh_auto_test: - dh_auto_test -- CTEST_TEST_TIMEOUT=60 override_dh_auto_install: dh_auto_install # jquery.js is provided in another debian package, do not ship one here too rm debian/tmp/usr/share/doc/gnuradio*/html/jquery.js chmod +x debian/tmp/usr/lib/python2.7/dist-packages/gnuradio/grc/python/flow_graph.tmpl debian/changelog0000664000000000000000000014005112554223326011047 0ustar gnuradio (3.7.2.1-5ubuntu0.1) trusty; urgency=medium * Don't build-depend on unused libqwtplot3d-qt4-dev (LP: #1476475). -- Logan Rosen Thu, 23 Jul 2015 03:00:48 -0400 gnuradio (3.7.2.1-5) unstable; urgency=low * use correct compiler for unstable build -- A. Maitland Bottoms Sun, 05 Jan 2014 12:14:43 -0500 gnuradio (3.7.2.1-4) unstable; urgency=low * Clarify gnuradio.install (Closes: #734207) -- A. Maitland Bottoms Sat, 04 Jan 2014 16:22:02 -0500 gnuradio (3.7.2.1-3) unstable; urgency=low * Remove Feature 606 patch, caused more problems rather than solved. -- A. Maitland Bottoms Thu, 02 Jan 2014 00:16:41 -0500 gnuradio (3.7.2.1-2) unstable; urgency=low * New upstream bugfix release * New upstream release, see extended release notes in the gnuradio package /usr/share/doc/gnuradio/ChangeLogV3_7_2 and /usr/share/doc/gnuradio/ChangeLogV3_7_2_1 * Avoid functions not in FreeBSD libusb (Closes: #729270) * Implement Feature 606 -- A. Maitland Bottoms Thu, 26 Dec 2013 00:05:24 -0500 gnuradio (3.7.2.1-1) unstable; urgency=low * New upstream bugfix release -- A. Maitland Bottoms Fri, 06 Dec 2013 06:46:38 -0500 gnuradio (3.7.1.1-1) unstable; urgency=low * New upstream bugfix release -- A. Maitland Bottoms Sun, 10 Nov 2013 17:35:42 -0500 gnuradio (3.7.1-2) unstable; urgency=low * Match GNU Radio live distribution 2013-0926 * Use libsndfile if available -- A. Maitland Bottoms Tue, 01 Oct 2013 18:36:54 -0400 gnuradio (3.7.1-1) unstable; urgency=low * New upstream release Important new features GRC Bus Ports (Nicholas McCarthy) Bus ports in the GNU Radio Companion (GRC) allow ganging block input or output ports into a single port for display and connections. This simplifies flowgraph entry when dealing with blocks that work with an arbitrary number of streams. For further information, see: http://gnuradio.org/redmine/projects/gnuradio/wiki/Busports Minor features/updates (3.7.1): atsc: created atsc_rx.py and removed obsolete scripts (Andrew Davis) blocks: added interleaved_char_to_complex block (Tim O'Shea) blocks: Added QA code for all ControlPort probe types. (Tom Rondeau) blocks: adding a complex VCO block. (Tom Rondeau) blocks: adding a tags strobing block to help test tag stream. (Tom Rondeau) blocks: modified tag_debug block to publish number of tags queued (Tom Rondeau) build: Windows packages automatically include compiler runtime DLLs (Nicholas Corgan) build: installing all cmake files into lib/cmake/gnuradio directory (Tom Rondeau) channels: Added hardware impairments blocks from Matt Ettus' GRCon11 talk (Tom Rondeau) channels: added second channel model to dynamically change freq/timing offsets. (Tom Rondeau) channels: updated quantization demo for new histogram constructor (Tom Rondeau) channels: using new qtgui histogram sink in quantization demo. (Tom Rondeau) digital: added lo_offset and external clock utilisation to OFDM (Mike Jameson) digital: added lo_offset and external clock source to narrowband examples (Mike Jameson) digital: delay ofdm benchmark_tx exit to allow TX to empty (Mike Jameson) filter: added optional second input that dynamically adjusts resampling rate (Tom Rondeau) grc: Sorts the block tree column at start-up. (Julien Olivain) grc: Remove *out from sinks, *in from sources (Marcus Müller) grc: allow set_min_output_buffer on any blocks that have output ports (Tim O'Shea) grc: added special variable objects to represent constellations (Tom Rondeau) qtgui: Added histogram sink (Tom Rondeau) runtime: added tag_propagation_policy_t to block_gateway (Marcus Müller) runtime: Improved display handling for gr-ctrlport-monitor (Tim Newman) runtime: Added probes for byte, short, and int data types (Tom Rondeau) runtime: allow setting thread affinity to all blocks under a hier_block2 (Tom Rondeau) uhd: squashed per-channel stream support (Josh Blum) Bug Fixes (3.7.1, 3.7.0.1): analog: agc3_cc: Fix uninitialized variable error. (Philip Balister) analog: agc3_cc: bug fix for input values of zero (Tim O'Shea) atsc: Fix bugs in atsc_field_sync_mux (Clayton Smith) blocks: expose set_period callback for blocks.message_strobe in GRC (Tim O'Shea) blocks: moved type conversions to use Volk dispatchers. (Tom Rondeau) blocks: set file_descriptor_source default to repeat=false (Tom Rondeau) build: don't install controlport config file in two places (Tom Rondeau) build: fix for finding and handling ICE 3.5 or 3.4 (Tom Rondeau) build: fix to allow reconfiguring install prefix (Johnathan Corgan) build: fixed some differences between handling Ice 3.4 and 3.5. (Tom Rondeau) build: fixes FindQwt cmake module to check that Qwt is >= 5.2.0. (Tom Rondeau) build: force detection to Python 2.x only (Julien Olivain) build: more robust FindICE operation with multiple ICE installs (Tom Rondeau) build: require Python v2 for build configuration (Jiri Pinkava) digital: fix digital.cpmmod_bc XML for new constants location (Johnathan Corgan) digital: fix for OFDM serializer QA after FFT block fix (Johnathan Corgan) digital: fix for moving average filter in OFDM equalizer. (Stefano Banti) digital: ofdm benchmark_rx fft conflict fix (Mike Jameson) docs: Fixes sphinx docs for user set LD_LIBRARY_PATH (Tom Rondeau) docs: Minor corrections, fixes to ControlPort documentation. (Tom Rondeau) docs: Updated and improved the message passing docs page. (Tom Rondeau) docs: added doc page on Performance Counters. (Tom Rondeau) docs: added documentation of the stream tags interface. (Tom Rondeau) docs: added information about the new pfb_arb_resampler kernel. (Tom Rondeau) examples: fix examples using 3.7 API without importing namespaces (Nathan West) fec: fix uninitialized class member in decode_ccsds_27 (Johnathan Corgan) fft: Remove the default constructor for fft::goertzel. (Philip Balister) fft: fix XML import for logpwrfft block (Andrej Lajovic) fft: fix missing set_window call on initialization (Johnathan Corgan) grc: added utf8 encoding line to python templates (Marcus Müller) grc: applying hidapi update patch from Hans de Goede (Volker Schroer) grc: fix to allow grcc to execute in headless mode (Roy Thompson) grc: fixes grcc to exit with error in case of a compilation error. (Julien Olivain) modtool: fixes using templates in OOT projects created with modtool. (Tom Rondeau) modtool: more robust checks for gnuradio-runtime include dirs and libs. (Tom Rondeau) modtool: fix finding gnuradio-runtime (Jiri Pinkava) modtool: fix detection of GNU Radio module directory (Jiri Pinkava) qtgui: fix missing API declarations (Nicholas McCarthy) qtgui: fixes some bugs between qwt 5 and 6, some reorg. (Tom Rondeau) runtime: Fixed runtime SWIG linker error (Nicholas Corgan) runtime: fix asynch messages delivery when handler not defined (Tim O'Shea) runtime: fix hier_block2 disconnect_all() (Johnathan Corgan) runtime: fixed copy/paste error in volk_types.py (Alexandru Csete) runtime: vmcircbuf_sysv_shm workaround for shmem race condition (Tim O'Shea) uhd: fix GRC wrapper generation to match UHD change (fixes #562) (Timo Lindfors) uhd: fix USRP config info strings to account for B2x0 (Nicholas Corgan) volk: fix ARM test functions that resulted in an infinite loop (Tom Rondeau) volk: fix xgetbv tests for OSX/gcc (Michael Dickens) volk: fix QA test to use non-integer multiples of register sizes (Doug Geiger) volk: fix Volk profiler to use non integer multiples of register sizes (Doug Geiger) wxgui: Prevent crash displaying a tooltip before initialization (Miklos Maroti) * Handle lack of freedesktop icon directories better (Closes: #720389) -- A. Maitland Bottoms Thu, 29 Aug 2013 23:25:22 -0400 gnuradio (3.7.0-5) unstable; urgency=low * Following zeroc-ice to unstable -- A. Maitland Bottoms Mon, 12 Aug 2013 22:32:03 -0400 gnuradio (3.7.0-4) experimental; urgency=low * Using zeroc-ice 3.5 in experimental * fixup volk versioned depends * Include upstream maint branch fixes - but not Applying-hidapi-patch-from-Hans-de-Goede - conflicts with Debian BSD kernel patches * Debian uses default library locations, so NO_DEFAULT_PATH isn't good. * version depends on libvolk (Closes: #705867, #718707) -- A. Maitland Bottoms Sun, 11 Aug 2013 18:11:24 -0400 gnuradio (3.7.0-3) experimental; urgency=low * Ship cmake files (Closes: #718310) * Include upstream maint branch fixes -- A. Maitland Bottoms Tue, 30 Jul 2013 12:26:13 -0400 gnuradio (3.7.0-2) experimental; urgency=low * Update bsd-no-thread-affinity * Add comma between arguments of atsc/xlate.py (Closes: #714987) -- A. Maitland Bottoms Fri, 05 Jul 2013 08:05:12 -0400 gnuradio (3.7.0-1) experimental; urgency=low * New upstream release * In experimental until zeroc-ice 3.5 is available in unstable. * Code Structure Changes (Johnathan Corgan, Tom Rondeau) The GNU Radio source code was restructured and flattened. All top-level components now use the same structure for consistency and ease of use. All blocks were moved out of gnuradio-core, which has been renamed to gnuradio-runtime. The blocks are now in their appropriate top-level components and reimplemented with the new 3.7 API style. The new API makes use of C++ namespaces and the virtual private implementation class pattern to better hide GNU Radio internals from user code. Details about this can be found here: http://gnuradio.org/redmine/projects/gnuradio/wiki/Move_3-6_to_3-7 A Google doc showing all items that were moved from one place to another in the new style is here: http://ow.ly/mDpey Blocks not listed were already in their own components. Many blocks were removed. All columns marked with ‘-----’ means that column is not applicable to that block or class. Any column (except those marked as Remove) that are blank means that we might be able to improve upon it, which normally indicates using VOLK or improving documentation. A Google doc showing the new component and Doxygen categories for all components is here: http://ow.ly/mDplO * Important new features: * ControlPort (Tom Rondeau, Tim O’Shea) ControlPort is a new interface for standardizing remote procedure calls in GNU Radio: Remote control and visualization. Use of ControlPort to enable debugging without requiring extra debug streams. Abstracted interface, but currently using ICE (www.zeroc.com). No additional CPU usage while no monitoring is occurring. Can connect multiple remotes to same GNU Radio application. Can also have single ControlPort app control multiple GR apps. Each block creates interfaces to control data members, by defining ‘get’ and ‘set’ interface to query and update values of block variables. Preference files control the state of ControlPort in section [ControlPort] of gnuradio-runtime.conf. ControlPort comes with a generic utility to allow you to see all interfaces of a flowgraph: gr-ctrlport-monitor -p Within a flowgraph, one can also use ControlPort probes to pass vectors of data to a ControlPort client, including complex IQ data. One useful probe calculates the power spectral density of a block output for remote display. See the ControlPort page in the GNU Radio manual for more information: http://gnuradio.org/doc/doxygen/page_ctrlport.html * Performance Measurement Tools Performance Counters were first built into GNU Radio in 3.6.5, but could only be accessed locally. Now, all Performance Counters can be exported over ControlPort. Performance Counters must be compiled into GNU Radio using -DENABLE_PERFORMANCE_COUNTERS=True. They can be toggled on/off at runtime using the [PerfCounters] section in gnuradio-runtime.conf. Use option ‘export’ to export Performance Counters over ControlPort. We now include a new tool to visualize the Performance Counters over ControlPort. This is installed as gr-perf-monitorx and requires the Python modules Scipy, NetworkX, and Matplotlib. Nodes of the flowgraph are represented as blue squares. The size of the square is proportional to the amount of time spent in the work function (either thread time or monotonic (wall clock) time). The size and depth of the shade of red of the edges is proportional to how full the block’s output buffer is. * QTGUI Enhancements (Tom Rondeau, Nick Foster, Ben Reynwar) The QTGUI widgets defined in gr-qtgui have had a major overhaul in 3.7. All plots are now split out into individual components, including: Time plots (amplitude versus time) FFT plots (or PSD) (log magnitude versus frequency) Waterfall plots (or spectrograms) (time versus frequency with magnitude as the color intensity) Constellation plots (imaginary (quadrature) versus real (inphase)) Time raster plots (time vs. time) Each plot can accept multiple connections that will overlay the signals on them. Zooming and unzooming are the same using the left and right mouse buttons. The center mouse button will pull up a context menu to allow manipulations of all kinds of properties of the display, such as line and marker styles, the size of the FFT, averaging, line transparency, etc. Significant work has gone into improving the performance, including the use of VOLK and more intelligent ways of handling the display to reduce the computational load. QT defined QT Style Sheets (QSS) that allow us to specify looks, colors, and other properties of a display. Support for the use of QSS has been added to gr-qtgui to make establishing your preferences easier. gr-qtgui/examples contains a number of examples showing how to use each type of plot and the QSS definition and interface. * Uninstalled imports (Ben Reynwar) The GNU Radio source tree was updated to allow us to directly import all GNU Radio components in-tree before install but using the same syntax. This change greatly reduces problems and complexity of writing Python code for use in both normal installations and QA code. This change will also allow us to automatically build the Sphinx Python manual during make. * Updated gr_filter_design (Sreeraj Rajendran) Overhauled the current gr_filter_design to add better visualization and interactive tools. Installed as part of the gr-filter component now, the gr_filter_design tool adds many new features for visualizing filters as well as support for IIR filter tap design. The new tool also includes a programmatic API that allows a user to launch the filter design tool inline in a program, design the new filter, and pass back an object containing the filter taps and parameters. Passing a callback function allows the designer to run in a separate thread and every time a new filter is designed, the callback function can be triggered to update a filter. Examples of using the programmatic access to gr_filter_design can be found in gr-filter/examples/gr_filtdes_*. * Other New Components and Features New blocks added gr::analog::fast_noise_source - pre-generates a table of random samples from the selected PDF and randomly samples from them. This has somewhat less entropy than the normal noise_source block but is significantly faster. gr::analog::agc3_*: Performs an initial linear gain ramp to quickly converge on a signal during startup and then falls back to an iterative loop similar to agc2. The agc, agc2, and agc3 blocks have been made to use a unified interface that now includes a default maximum gain value (set to 2^16 so that it can scale up even the LSB of a USRP’s device). * New gr-fec component This new top-level component mainly functions as a placeholder for new FEC block implementations. Currently contains only a couple of purpose-built FEC blocks. * New gr-channels component (Tim O'Shea) This new top-level component holds current and future channel model blocks. The standard AWGN channel_model has moved here. In addition, there are two new channel models: fading_model - Uses configurable max Doppler shift, Rician power factor, and lists of the delays (in samples) and magnitudes of a power delay profile. selective_fading model - Basic fading model that can have a number of sinusoids, max Doppler shift, and Rician power factor defined for it. * GnuradioConfig.cmake (Tom Rondeau, Tim O’Shea) New GnuradioConfig.cmake and GnuradioConfigVersion.cmake cmake files are installed into the system under $prefix/lib/cmake/gnuradio. These files can be used by any other project to easily test if any GNU Radio components are installed and the minimum API-compatible version required. Set GR_REQUIRED_MODULES to any of the top-level components in GNU Radio in all caps. Then use find_package(Gnuradio) to search for them. The second optional argument is the API compatible version is was built against. For example, to test if gnuradio-runtime, gnuradio-blocks, and gnuradio-filter are installed, we would use: set(GR_REQUIRED_MODULES RUNTIME BLOCKS FILTER) find_package(Gnuradio 3.7.0) * Additional Fixes (Ben Reynwar, Tom Rondeau, Josh Blum, Nicholas Corgan) Added symbol output stream from constellation_receiver so we can see the locked constellation as well as the output bits. Introduced a new pfb_arb_resampler kernel class that can be used by other blocks. We have used this to significantly simplify the pfb_arb_resampler_ccf/fff blocks. All PFB code has new QA and fixed a few minor bugs in the calculation of some of the filters. Added more QAM support with Gray coding. Reworked VOLK. All kernels are now in volk/kernels/volk, made all kernels consistent in use of num_points, and redid any kernels that used num_bytes. Removed assumptions that were Linux-only to continue to support native MSVC builds. * Obsoleted and/or removed functionality The following items have been removed or redone: gr-shd (removed) gruel (removed; all functionality now in gnuradio-runtime) gr-howto-write-a-block (functionality replaced by gr_modtool) For more removed components, see: http://ow.ly/mDpey * Deprecated functionality These are items that are currently part of GNU Radio, but are planned to be removed in the next API release (3.8). gr-noaa - will be reimplemented as a stand-alone, out-of-tree project and supported with PyBOMBS gr-pager - will be reimplemented as a stand-alone, out-of-tree project and supported with PyBOMBS -- A. Maitland Bottoms Wed, 03 Jul 2013 17:00:23 -0400 gnuradio (3.6.5.1-1) unstable; urgency=low * New upstream release * Bug fixes audio: fix default alsa device from hw:0,0 to default, Bug #551 (Tim O'Shea) blocks: fix big-endian issue in wavefile blocks (Jaroslav Škarvada) blocks: fix erroneous linkage to gr-filter (#547) (Johnathan Corgan) blocks: fix for ~file_source crash, Bug #550 (Tim O'Shea) blocks: fix param test in keep_me_in_n GRC wrapper (Tim Monahan-Mitchell) blocks: fix use of assertGreater in QA for older Python (Johnathan Corgan) cmake: fix CRLF to LF in in some modules (fixes #549) (Johnathan Corgan) cmake: make install directory of GNU Radio cmakes files configurable (Jaroslav Škarvada) core: ensure message passing blocks marked done are handled (Johnathan Corgan) core: fir_filter_with_buffer using consistent error margins in all QA tests (Tom Rondeau) core: fix vmcircbuf file read/compare to use strncmp instead of strcmp (Tom Rondeau) core: makes sure if capping to max_noutput_items with output_multiple that the value is always an output_multiple. (Tom Rondeau) core: making block_registry thread-safe for multiple flowgraphs to access it (Tom Rondeau) core: fix 2 threading issues with the shared memory system. (Tom Rondeau) digital: a block should not hold a reference to itself (Josh Blum) digital: bugfixes to ofdm_chanest, HPD and frame EQ (Martin Braun) digital: hack to prevent the HPD from crashing flow graphs (Martin Braun) digital: remove stray import from QA test (Johnathan Corgan) grcc: set grc file path, which is required for hier blocks (Bastian Bloessl) wavelet: fix for -lgslcblas getting stripped out of link flags (Tim O'Shea) wavelet: do not use unsupported compile flags for OSX (Michael Dickens) wxgui: Fixes to solve issues using GL sinks on OS X (Balint Seeber) wxgui: fix exception in callback before label set (Marcus D. Leech) wxgui: fix flickering on Linux created by bea6d506 (Sylvain Munaut) -- A. Maitland Bottoms Mon, 01 Jul 2013 06:51:25 -0400 gnuradio (3.7.0~rc0-1) experimental; urgency=low * New upstream release candidate * This is a snapshot of the repository master branch at tag v3.7.0rc0, and is intended for final testing by users. As this is not a formal release, it is not accompanied by release notes. The full list of changes between the 3.6 and 3.7 APIs will be made available at the time of 3.7.0 release. It does indicate, however, that the 3.7 API is now frozen and we will only be merging bug fixes into the source code until the final release. -- A. Maitland Bottoms Fri, 21 Jun 2013 09:51:22 -0400 gnuradio (3.6.5-1) unstable; urgency=low * New upstream release * Important new features (3.6.5): New OFDM PHY layer (Martin Braun, Ben Reynwar) This release includes new OFDM PHY layer blocks in gr-digital. These have been rewritten from scratch to allow more configurability and to use some of the newer GNU Radio features (stream tags, async messages). Some work remains to tie these into a full over-the-air transceiver, so further development will be happening in the GNU Radio 3.7.x release series. * New runtime logging capability (Tom Rondeau) GNU Radio has a logging interface to enable various levels of logging information to be printed to the console or a file. The logger derives from log4cpp (http://log4cpp.sourceforge.net/) which is readily available in most Linux distributions. This is an optional dependency and GNU Radio will work without it. See: http://gnuradio.org/cgit/gnuradio.git/tree/docs/doxygen/other/logger.dox * Minor features/changes (3.6.5): build: git now ignores the build/ directory (Ben Hilburn) build: create and install a config.h for external projects (Tom Rondeau) build: install our cmake modules into share/gnuradio/cmake/Modules (Tom Rondeau) blocks: fixed udp_source to avoid permanent work blockage (Josh Blum) blocks: added proper EOF for msg tags test (Josh Blum) blocks: added gr::blocks::socket_pdu (Tim O'Shea) blocks: added gr::blocks::taptun_pdu (Tim O'Shea) blocks: added gr::blocks::pdu_to_tagged_stream (Tim O'Shea) blocks: added gr::blocks::tagged_stream_to_pdu (Tim O'Shea) blocks: added default arg value to mute_XX (Tim O'Shea) blocks: added probe_rate block (Tim O'Shea) blocks: fixed probe_signal_vx vector utilisation (Mike Jameson) blocks: fixed XML data type in gr::blocks::deinterleave (Miklos Maroti) docs: updated pfb introduction (Ben Reynwar) digital: added option to QAM to help with frequency locking (Ben Reynwar) digital: made qa_constellation_receiver more reliable (Ben Reynwar) digital: added QAM32-like constellation (Ben Reynwar) filter: added callback to adjust resampling rate of pfb_arb_resampler block (Tom Rondeau) filter: added fractional_resampler as a renamed fractional_interpolator (Tom Rondeau) grc: added sorting ability to GRC category tree (Gregory Warnes) grc: made 'float' an acceptable alias to 'real' in parameter types (Tom Rondeau) modtool: added tagged_stream block as an option (Martin Braun) modtool: fixed general python block template (Mike Jameson) uhd: added a usrp PC sync option (Josh Blum) uhd: added getters for bandwidth setting and range (Josh Blum) uhd: updated usrp_spectrum_sense with frequency readout (Mike Jameson) -- A. Maitland Bottoms Mon, 27 May 2013 15:28:27 -0400 gnuradio (3.6.4.2-1) unstable; urgency=low * New upstream release * Bug fixes: docs: fixed QT docs keywords (Ben Reynwar) blocks: fixed XML wrapper for gr::blocks::complex_to_real (Johnathan Corgan) blocks: fixed file meta data source to handle repeat of files (Tom Rondeau) blocks: fixed XML data type in gr::blocks::plateau_detector_fb (Johnathan Corgan) digital: fixed virtual destructor for constellation class (Tom Rondeau) digital: fixed SNR estimators (Tom Rondeau) filter: fixed pfb_arb_resampler XML for I/O types (Johnathan Corgan) filter: fixed exception when using interpolating filter with no taps (Tom Rondeau) filter: fixed pfb_arb_resampler to handle default taps (None) case (Tom Rondeau) grc: fixed (removed) "c" key shortcut for create heir action (Tim O'Shea) grc: fixed problem with order of message ports vs. data ports (Tom Rondeau) runtime: fixed thread safety issue with tags and perf counters (Tim O'Shea) runtime: fixed gr types for setting processor affinity (Tom Rondeau) runtime: fixed swig issue with affinity mask vector (Tom Rondeau) modtool: fixed gr-modtool template output signature (Johnathan Corgan) modtool: fixed case when module name ends in 0 (Martin Braun) modtool: fixed typo in help string (Tim Monahan-Mitchell) modtool: fixed wording in modtool for 'float' sink/source type (Tom Rondeau) modtool: fixed some setup for noblock gen (Tom Rondeau) modtool: fixed initial templates of a block (Tom Rondeau) pkg: fixed packages for Ubuntu 13.04 (Nicholas Corgan) qtgui: fixed init FFT Size box for QTGUI sink (Tom Rondeau) video-sdl: fixed typo in .pc file (Johnathan Corgan) volk: fixed CentOS build failure with extra lib64 in path (Johnathan Corgan) wxgui: fixed GL sinks issues on OS X (Balint Seeber) wxgui: fixed set_callback failure in nongl sinks (Marcus Leech) wxgui: fixed scaling issue of nongl FFT plot (issue #523) (Tom Rondeau) -- A. Maitland Bottoms Mon, 27 May 2013 00:28:52 -0400 gnuradio (3.6.4.1-1) unstable; urgency=low * New upstream release * Bug fixes: core: fixed filename path operator (Tim O'Shea) core: fixed async message queue max length (Tom Rondeau) docs: fixed missing gr-uhd to sphinx docs. (Ben Reynwar) docs: fixed a section name collision (Tom Rondeau) modtool: fixed Python general blocks syntax (Martin Braun) modtool: fixed general python block template (Mike Jameson) modtool: fixed extra comma bug in gr_modtool Python (Tom Rondeau) volk: fixed MSVC include directory (Nicholas Corgan) -- A. Maitland Bottoms Tue, 19 Mar 2013 17:12:54 -0400 gnuradio (3.6.4-1) unstable; urgency=low * Include arm build fix from Peter Michael Green (Closes: #682595) * Include debian/watch file by Bart Martens * postinst, do not specify --theme for xdg-icon-resource (Closes: #673597) * gnuradio-dev depends on same version of gnuradio (Closes: #678919) * fix debian/control format (Closes: #689357) * New upstream release http://gnuradio.org/redmine/projects/gnuradio/wiki/ChangeLogV3_6_4 Ability to set processor affinity for GNU Radio blocks http://www.trondeau.com/home/2013/2/7/block-core-affinity.html Inclusion of gr_modtool by Martin Braun http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules Use of GNU Radio preferences in native C++ applications http://gnuradio.org/cgit/gnuradio.git/commit/?id=3643a858 Addition of GNU Radio block performance counters http://gnuradio.org/redmine/projects/gnuradio/wiki/PerformanceCounters -- A. Maitland Bottoms Tue, 26 Feb 2013 21:44:34 -0500 gnuradio (3.6.3.1-1) experimental; urgency=low * New upstream bugfix release analog: fixed floating point accuracy issue in CTCSS squelch (Tom Rondeau) blocks: fixed use of bare boost::mutex::scoped_lock (Johnathan Corgan) blocks: fixed missing include in file_source_impl (Josh Blum) cmake: fixed chrono as a necessary Boost library under MSVC (Nicholas Corgan) cmake: allow user to override check for bad versions of boost (Tom Rondeau) cmake: disable certain buggy Boost versions to fix Issue #513. (Tom Rondeau) cmake: fixing generated includes, deps, and header installation. core: fixed gr_pdu_to_tagged_stream XML for type (Johnathan Corgan) core: fixed gr_message_debug for printing PDUs (Johnathan Corgan) core: fixed missing include in gr_socket_pdu (Josh Blum) core: fixed missing include for gruel thread (Josh Blum) core: fixed redundant test settings (Josh Blum) core: fixed gr_random_pdu MSVC incompatibility issue (Nicholas Corgan) core: fixed missing include to gr_block_registry.h (Tim O'Shea) digital: fixed bug in digital_bert_rx.py (Ben Reynwar)(thanks Charles Ru) digital: fixed pfb_clock_sync grc xml file for loop bandwidth (Ben Reynwar) filter: fixed synthesis filter output rate (Tom Rondeau) grc: fixed failing drag-n-drop in GRC on Windows (Balint Seeber) grc: fixed Bug #485 by gracefully exiting (Martin Braun) howto: fixed block parameters documentation (Julien Olivain) uhd: fixed gain defaults in usrp_wfm_rcv*.py examples (Mike Jameson) uhd: fixed default midpoint gain for usrp_am_mw_rcv.py example (Mike Jameson) uhd: fixed usrp_nbfm_ptt.py example receive path (Mike Jameson) uhd: fixed audio_alsa_sink busy using default in examples (Mike Jameson) volk: fixed bad find_package missing components (Josh Blum) volk: fixed cmake, the profiler is no longer strictly unix (Josh Blum) volk: fixed volk_profile MSVC incompatibility (Nicholas Corgan) -- A. Maitland Bottoms Tue, 26 Feb 2013 20:14:48 -0500 gnuradio (3.6.3-2) experimental; urgency=low * postinst, do not specify --theme gnome for xdg-icon-resource (673597) * gnuradio-dev depends on same version of gnuradio (678919) * Debian build uses generic arm, not v7 (682595) * fix debian/control format (689357) * build with portaudio19-dev and libjack-jackd2-dev (in addition to pulseaudio and alsa) -- A. Maitland Bottoms Sun, 10 Feb 2013 10:37:05 -0500 gnuradio (3.7git-1) experimental; urgency=low * New upstream next git branch ba015f * Build with ZeroC's Ice, the Internet Communications Engine * new components gr-channels, gr-ctrlport, gr-fec * new executables: gr_constellation_plot gr_psd_plot_[bcfis] gr_spectrogram_plot_[bcfis] gr_time_plot_[bcfis] -- A. Maitland Bottoms Mon, 04 Feb 2013 12:15:28 -0500 gnuradio (3.6.3-1) experimental; urgency=low * New upstream release Bug fixes: Overhaul of cmake include directory ordering (Michael Dickens) Fixed use of default noise seed in channel model (Alick Zhao) Fixed file_meta_source/sink incompatibilities with MSVC (Nicholas Corgan) Fixed some unused parameter warnings (Alexandru Csete) -- A. Maitland Bottoms Mon, 28 Jan 2013 00:10:46 -0500 gnuradio (3.6.3~rc0-1) experimental; urgency=low * New upstream release * Addition/upgrade of message passing infrastructure (Tim O'Shea, Tom Rondeau, Johnathan Corgan, Josh Blum) This introduces the ability to add and connect formally defined asychronous message ports to signal processing blocks and hierarchical blocks. These message ports can be connected to pass asynchronous data in the form of PMTs (polymorphic types) among blocks in a flowgraph. It is also possible to implement pure message passing blocks that have no requirement for streaming ports or work functions. We've also introduced the concept of PDUs (Protocol Data Units) as a convention for passing data+metadata using the new messaging ports. A PDU is a PMT pair that combines a PMT dictionary of metadata keys/values along with a PMT blob to hold a vector of data in memory. A few new general purpose blocks supporting these capabilties are in gnuradio-core: gr_message_debug gr_message_strobe gr_tagged_stream_to_pdu gr_pdu_to_tagged_stream Two new blocks for interfacing with networking stacks using the new PDU semantics: gr_socket_pdu gr_tuntap_pdu This new message passing capability and PDU convention is aimed at providing the infrastructure to better support software radio implementations using packet-oriented semantics, such as MAC-layer processing. * Addition of new Python-based signal processing blocks (Josh Blum) This feature, originally introduced by Josh Blum as part of GrExtras, allows implementing signal processing blocks directly in Python, and has now become a standard feature of GNU Radio. * Addition of gr-analog top-level component (Tom Rondeau) This implements the current gnuradio-core signal processing blocks used for analog signal processing into their own top-level component, gr-analog, and uses the new 3.7 API organization. The original blocks in gnuradio-core will be removed on the 3.7 branch prior to 3.7 release. * Addition of gr-blocks top-level component (Johnathan Corgan) This implements a large portion of the gnuradio-core non-signal processing blocks in the 3.7 API form. The original blocks in gnuradio-core will be removed on the 3.7 branch prior to 3.7 release. * Metadata file source and sink blocks (Tom Rondeau) Two new blocks implement enhanced file source and sink blocks that incorporate metadata passed using the stream tags feature in GNU Radio. It is now possible to store things like frequency and sample rate into capture files, or whatever key/value pairs you tag onto data streams inside a flowgraph. http://www.trondeau.com/home/2012/12/15/metadata-file-format.html * GNU Radio buffer latency control (Tim O'Shea, Tom Rondeau) For finer-grained control over latency inside a GNU Radio flowgraph, it is now possible to adjust, on a per-block basis, the maximum noutput_items that will be used to call a block work function. In addition, it is possible to set the maximum size an output buffer can grow to before a work function is called. * New GNU Radio Companion (GRC) capabilities Added optional flag to pad source and sink (Josh Blum) Added wildcard type to pad source and sink (Josh Blum) Added ability to reload XML for block (Tim O'Shea) Added ability to automatically create hier_blocks from a flowgraph (Tim Newman) Added ability to open custom GRC hier block definitions (Tim O'Shea) Added new grcc command line GRC-to-Python utility (Tom Rondeau) * New Documentation Updates (Tom Rondeau) We are introducing documentation into the Doxygen manual describing features and capabilities of GNU Radio, above and beyond just documenting the API functions. Tom Rondeau has written about this here: http://www.trondeau.com/home/2012/12/18/new-documentation-for-new-features.html Some examples of commits where this has been done: gnuradio.org/cgit/gnuradio.git/commit/?id=77ea309 (PMT type usage) gnuradio.org/cgit/gnuradio.git/commit/?id=a21c5f7 (Message passing interface) gnuradio.org/cgit/gnuradio.git/commit/?id=996e599 (Metatdata format) gnuradio.org/cgit/gnuradio.git/commit/?id=5fcb7eb (Max output buffer control) * Other new features: Allow file source to open new files while running (Brett L. Trotter) Allow source blocks to return none/yield (Josh Blum) Improved capabilities of uhd_fft.grc example in gr-uhd (Ben Hilburn) Added parameter in qtgui sink's GRC block to set the update rate (Julien Olivain) Added source block hook in gr-uhd for issue stream cmd (Josh Blum) Added cmake package support for Ubuntu 12.10 (Nicholas Corgan) Added gr::blocks::patterned_interleaver (Tim O'Shea) Allow user to set Python path during cmake configuration (Tom Rondeau) Enabled serialize/deserialize for PMT vectors (Tom Rondeau) Added unsigned long long int support to the PMT sugar functions (Tom Rondeau) Allow using pmt_init_Xvector methods in python (Tom Rondeau) Bug fixes: * Numerous cmake related bug-fixes (Josh Blum, Johnathan Corgan, Tom Rondeau) Fixed parallel build failures in cmake (Tom Rondeau) Fixed segfaults due to old, no longer nedded SWIG workaround (Tom Rondeau) Fixed memory leak issue in arbitrary resampler blocks (Tom ROndeau) Fixed use of default noise seed in channel model (Alick Zhao) Fixed scaling bug in QAM constellations (Ben Reynwar) Fixed installation of grc examples (Johnathan Corgan) Fixed finding Qwt6 installed on OSX using MacPorts (Ben Reynwar) Fixed implicit assumption in skiphead (Josh Blum) Fixed include tag include usage throughout core (Josh Blum) Fixed incorrect private usage in gr_endian_swap (Josh Blum) Fixed segfault in gr-filter due to memory free bug (Josh Blum) Fixed UHD pmt tuple ref namespace issue (Josh Blum) Fixed gr_tag_debug to handle lacking srcid (Martin Braun) Fixed gr-analog for 'sincos(f)' on MacOSX (Michael Dickens) Fixed gr-analog build issues on Windows (Nicholas Corgan) Fixed qtgui time sink to take the bandwidth parameter to set x-axis correctly (Tom Rondeau) Fixed float-in, complex-out fft block to use the right io sig (Tom Rondeau) Fixed Clang imcompatibility by removing '.version' lines in ASM code in core (Tom Rondeau) * Contributors this release: Alick Zhao Ben Hilburn Ben Reynwar Brett L. Trotter Johnathan Corgan Josh Blum Julien Olivain Martin Braun Michael Dickens Nicholas Corgan Tim O'Shea Tim Newman Tom Rondeau -- A. Maitland Bottoms Wed, 26 Dec 2012 18:56:06 -0500 gnuradio (3.6.2-1) experimental; urgency=low * New upstream release * Build system changes Added support for setting SYSCONFDIR * Top-level component changes A new top-level component, gr-filter, has been created. This component implements all the filter-related functionality that is in gnuradio-core, and uses the new style 3.7 API. The filter blocks in gnuradio-core are now deprecated; but will remain in gnuradio-core until the 3.7 release. Developers are encouraged to begin using the new blocks in preparation. * New signal processing blocks gr_and_const_bb: adds bb type to gr_and_const* block gr_annotator_raw: allows tagging stream with pmt key, value pair from outside GNU Radio gr_endian_swap: change item endianness through block gr_message_burst_source: turn received messages into a stream and tag them gr_tag_debug: debug display of all tags going through block` digital_gfsk_demod, digital_gfsk_mod: Gaussian Frequency Shift Keying modulator and demodulator * New feature additions Support has now been added for ARM processors that do not implement NEON. gr-uhd has added rx tagging for changes in sample rate and center frequency. Added support for serializing pmt tuples Added BER/SNR simulation example Removed gruel dependency on inet.h * Bug fixes core: fix minor bug in gri_wavefile endian swapping core: only check for *.conf in preferences directory digital: fixed incorrect variable name in qam_demod XML digital: fix FLL block to use fir_filter digital: remove unused parameter from DPSK demod GRC block digital: fix use of Gray code in digital mod/demod GRC files fcd: fix copy and paste error in documentation uhd: fix stopping flowgraph while streaming volk: don't initialize zero phase in rotator kernel volk: don't use ORC for volk_16u_byteswap_u kernel volk: add missing AVX support in volk_32f_x2_dot_prod_32f kernels volk: fix __m128 cast in volk_32fc_x2_dot_prod_32fc_a kernel volk: fix volk_32f_x2_dot_prod_32f_u_sse tail case volk: use loadu for unaligned volk_32f_x2_dot_prod_32f_u_sse* volk: fix for win64 MSVC not having MMX support volk: special werror unused cmd line arg for clang * Contributors Ben Reynwar Chí-Thanh Christopher Nguyễn Hendrik van Wyk Jaroslav Skarvada Johnathan Corgan Josh Blum Martin Braun Nicholas Corgan Nick Foster Tim O'Shea Tom Rondeau Wayne Roberts -- A. Maitland Bottoms Wed, 05 Sep 2012 23:56:07 -0400 gnuradio (3.6.1-1) unstable; urgency=low * New upstream release http://gnuradio.org/redmine/projects/gnuradio/wiki/ChangeLogV3_6_1 * With Sphinx Python documentation * new gr-fft component, more gr-digital component features * Supports click-to-tune operation via GRC FFT display -- A. Maitland Bottoms Mon, 11 Jun 2012 13:34:12 -0400 gnuradio (3.6.0-1) unstable; urgency=low * New upstream release - gr-wavelet component enabled - Python and grc examples in /usr/share/gnuradio/examples - Python applications have .py extension removed (Closes: #671825) * Debian package installs c++ examples in /usr/bin * More robust postinst (Closes: #672102) -- A. Maitland Bottoms Wed, 9 May 2012 23:51:05 -0400 gnuradio (3.5.3.2-1) unstable; urgency=low * New upstream release -- A. Maitland Bottoms Sun, 22 Apr 2012 11:19:14 -0400 gnuradio (3.5.3.1-1) unstable; urgency=low * New upstream release Fixed segfault in PMT library Fixed QA for constellation to always reset the seed for deterministic tests Updated volk AVX tests to workaround buggy Xen hypervisors * gnuradio-dev ships .pc files. (Closes: #669117) -- A. Maitland Bottoms Wed, 18 Apr 2012 12:21:17 -0400 gnuradio (3.5.3-3) unstable; urgency=low * kfreebsd patches -- A. Maitland Bottoms Sat, 14 Apr 2012 00:27:43 -0400 gnuradio (3.5.3-2) unstable; urgency=low * build depend on libusb-1.0-0-dev [linux-any], libusb2-dev [kfreebsd-any] (Closes: #668471) -- A. Maitland Bottoms Thu, 12 Apr 2012 00:58:50 -0400 gnuradio (3.5.3-1) unstable; urgency=low * New upstream release * with Support for FunCube Dongle (gr-fcd) (Closes: #660570) * gnuradio now depends upon python-lxml python-wxgtk2.8 to make gnuradio-companion work well. (Closes: #664607, #664608) -- A. Maitland Bottoms Mon, 09 Apr 2012 01:08:06 -0400 gnuradio (3.5.2.1-1) unstable; urgency=low * New upstream release. -- A. Maitland Bottoms Fri, 16 Mar 2012 20:30:18 -0400 gnuradio (3.5.1-1) unstable; urgency=low * new upstream version, re-packaged from scratch with modern tools closes: #642716, #645332, #394849, #616832, #590048, #642580, #647018, #557050, #559640, #631863 * CMake build -- A. Maitland Bottoms Sun, 26 Feb 2012 21:26:16 -0500 gnuradio (3.4.1-1) unstable; urgency=low * New upstream release * comedi: fix to use comedi 0.8 API * support for the Ettus UHD interface * deprecating libusrp and libusrp2 -- A. Maitland Bottoms Wed, 28 Sep 2011 02:13:45 -0000 gnuradio (3.3.0.dfsg-1) UNRELEASED; urgency=low * new upstream version * add Vcs entries to the control file * use maintainer-clean target, always run bootstrap before configure * switch from using python-central to dh_python2 * switch to doxygen-latex as a build dep, closes: #616252 -- Bdale Garbee Fri, 04 Mar 2011 08:33:04 -0700 gnuradio (3.2.2.dfsg-2) unstable; urgency=low * fix typos in short package descriptions, closes: #556572 * resolve gnuradio-companion conflict with grc by renaming our binary, closes: #557050 * accept patches that remove moc files and make libusrp packages depend on adduser, closes: #566564, #566565, #574209, #574231, #574209 * stop delivering custom prefs.py, closes: #559640 * lose the conflicts on python-wxgtk2.6, closes: #582486 -- Bdale Garbee Tue, 08 Jun 2010 20:05:02 -0600 gnuradio (3.2.2.dfsg-1) unstable; urgency=low * new upstream version, includes gcc4.3 support, closes: #474801, #524387 * upstream tarball modified to elide unnecessary Altera-licensed files * merge debian/ content restructuring from upstream svn * change build-dep from fftw3-dev to libfftw3-dev, closes: #458231 * fix problem with rebuilding, closes: #441739 * no longer need to move to contrib now that sdcc is fully back in main, we just need to build depend on sdcc 2.9.0 or later, closes: #457402 * rebuild reflects python-central file location change, closes: #490513 * change Jack build depend to libjack-dev, closes: #527413 -- Bdale Garbee Sun, 01 Nov 2009 15:13:54 -0700 gnuradio (3.0.4-2) unstable; urgency=high * rebuild with new version number and upload to finally (?) recover from over-zealous removal in response to bug 453154 * recommend udev instead of hotplug, closes: #448907 -- Bdale Garbee Sun, 23 Dec 2007 12:11:49 -0700 gnuradio (3.0.4-1) unstable; urgency=low * new upstream version * fix build failure with gcc-4.3 by adding a #include, closes: #420896 -- Bdale Garbee Tue, 14 Aug 2007 22:38:32 -0600 gnuradio (3.0.3-1) unstable; urgency=low * new upstream version * tweak gnuradio-doc package to eliminate spurious subdirectory level * add a usrp-doc binary package, recommended by the usrp package, and include xmlto in build dependencies so usrp_guide.html gets generated, closes: #407368 -- Bdale Garbee Sun, 11 Mar 2007 23:55:32 -0600 gnuradio (3.0.2-2) unstable; urgency=high * add run-time dependency on python-wxgtk2.6. leaving urgency high since this would be a silly bug to release etch with if we can avoid it. -- Bdale Garbee Mon, 4 Dec 2006 15:35:53 -0700 gnuradio (3.0.2-1) unstable; urgency=high * new upstream version, fixes FTBFS issues -- Bdale Garbee Sun, 12 Nov 2006 14:52:33 -0800 gnuradio (3.0-3) unstable; urgency=high * put python-all-dev back in the build-depends list, closes: #398246 * move gr-wxgui conflicts/depends to python-gnuradio, closes: #396302 * fix up sections in control to match overrides -- Bdale Garbee Sun, 12 Nov 2006 10:59:58 -0800 gnuradio (3.0-2) unstable; urgency=high * reworked package dependencies so that the 'gnuradio' binary package no longer depends on the pieces in contrib. instead, the 'usrp' binary package in contrib now depends on all the USRP-related pieces. A user who doesn't have a USRP board can just install 'gnuradio' and get all the relevant pieces, a USRP user needs to install both 'gnuradio' and 'usrp'. Closes: #394533 * improve consistency of references to 'GNU Radio' as upstream project name * make the gnuradio package dependencies on python-gnuradio and python-usrp be version specific on suggestion from Ramakrishnan Muthukrishnan -- Bdale Garbee Fri, 10 Nov 2006 00:39:38 -0800 gnuradio (3.0-1) unstable; urgency=low * new maintainer, new upstream version * Restructuring source and binary packages to follow upstream changes, more or less repackaging from scratch taking ideas from the previous packaging by Ramakrishnan Muthukrishnan and Steinar H. Gunderson. This single source package replaces all of: gnuradio-core gnuradio-examples gr-audio-alsa gr-audio-jack gr-audio-oss gr-usrp gr-wxgui usrp In addition, the 'gnuradio' binary package is a new meta-package that conveniently depends on everything gnuradio related to ease installation. -- Bdale Garbee Sun, 8 Oct 2006 13:28:21 -0600 debian/gr_read_file_metadata.10000664000000000000000000000124612072312700013511 0ustar .TH GR_READ_FILE_METADATA "1" "December 2012" "gr_read_file_metadata 3.6.3" "User Commands" .SH NAME gr_read_file_metatdata \- a Gnu Radio Utility .SH DESCRIPTION Read in a GNU Radio file with meta data, extracts the header and prints it. .PP Metadata file source and sink blocks (Tom Rondeau) .PP Two new blocks implement enhanced file source and sink blocks that incorporate metadata passed using the stream tags feature in GNU Radio. It is now possible to store things like frequency and sample rate into capture files, or whatever key/value pairs you tag onto data streams inside a flowgraph. .SH "SEE ALSO" http://www.trondeau.com/home/2012/12/15/metadata-file-format.html debian/gr_plot_fft_c.10000664000000000000000000000316111714131350012056 0ustar .TH GR_PLOT_FFT_C "1" "December 2011" "gr_plot_fft_c 3.5" "User Commands" .SH NAME gr_plot_fft_c \- plot complex binary data using GNU Radio .SH SYNOPSIS .B gr_plot_fft_c: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio complex binary file and displays the I&Q data versus time as well as the frequency domain (FFT) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. This value defaults to 1000. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/gr_filter_design.10000664000000000000000000000051411714134640012561 0ustar .TH GR_FILTER_DESIGN "1" "December 2011" "gr_filter_design 3.5" "User Commands" .SH NAME gr_filter_design \- GUI for creating filters for GNU Radio .SH SYNOPSIS .B gr_filter_design: [\fIoptions\fR] \fI(input_filename)\fR .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .SH "SEE ALSO" gnuradio-companion(1) debian/libgnuradio-channels3.7.2.1.install0000664000000000000000000000005212250407074015375 0ustar usr/lib/*/libgnuradio-channels.so.3.7.2.1 debian/uhd_fft.10000664000000000000000000000046011714261331010670 0ustar .TH UHD_FFT "1" "December 2011" "uhd_fft 3.5" "User Commands" .SH NAME uhd_fft \- Display spectrum from UHD receiver .SH DESCRIPTION Show received signal spectrum .PP Unable to access the X Display, is $DISPLAY set properly? .SH "SEE ALSO" uhd_rx_cfile(1) uhd_rx_nogui(1) uhd_siggen(1) uhd_siggen_gui(1) debian/libgnuradio-uhd3.7.2.1.install0000664000000000000000000000004512250406765014372 0ustar usr/lib/*/libgnuradio-uhd.so.3.7.2.1 debian/uhd_rx_cfile.10000664000000000000000000000231311714261315011705 0ustar .TH UHD_RX_CFILE "1" "December 2011" "uhd_rx_cfile 3.5" "User Commands" .SH NAME uhd_rx_cfile \- Save UHD received data .SH SYNOPSIS .B uhd_rx_cfile: [\fIoptions\fR] \fIoutput_filename\fR .SH DESCRIPTION Save I&Q data to a complex file for later use. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-a\fR ARGS, \fB\-\-args\fR=\fIARGS\fR UHD device address args , [default=] .TP \fB\-\-spec\fR=\fISPEC\fR Subdevice of UHD device where appropriate .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-\-samp\-rate\fR=\fISAMP_RATE\fR set sample rate (bandwidth) [default=1000000.0] .TP \fB\-f\fR FREQ, \fB\-\-freq\fR=\fIFREQ\fR set frequency to FREQ .TP \fB\-g\fR GAIN, \fB\-\-gain\fR=\fIGAIN\fR set gain in dB (default is midpoint) .TP \fB\-s\fR, \fB\-\-output\-shorts\fR output interleaved shorts instead of complex floats .TP \fB\-N\fR NSAMPLES, \fB\-\-nsamples\fR=\fINSAMPLES\fR number of samples to collect [default=+inf] .TP \fB\-v\fR, \fB\-\-verbose\fR verbose output .TP \fB\-\-lo\-offset\fR=\fILO_OFFSET\fR set daughterboard LO offset to OFFSET [default=hw default] .SH "SEE ALSO" uhd_fft(1) uhd_rx_nogui(1) uhd_siggen(1) uhd_siggen_gui(1) debian/libgnuradio-fcd3.7.2.1.postinst0000664000000000000000000000073611720210467014563 0ustar #! /bin/sh set -e #DEBHELPER# # same test as udev postinst... chrooted() { if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then # the devicenumber/inode pair of / is the same as that of /sbin/init's # root, so we're *not* in a chroot and hence return false. return 1 fi return 0 } if [ "$1" = "configure" ]; then if ! chrooted ; then # try to update udev now udevadm control --reload-rules || true ; fi fi exit 0 debian/gr_plot_iq.10000664000000000000000000000233211714131466011415 0ustar .TH GR_PLOT_IQ "1" "December 2011" "gr_plot_iq 3.5" "User Commands" .SH NAME gr_plot_iq \- plot complex binary I&Q data versus time using GNU Radio .SH SYNOPSIS .B gr_plot_iq.py: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio complex binary file and displays the I&Q data versus time. You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/copyright0000664000000000000000000002523512257057644011146 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: gnuradio Upstream-Contact: http://gnuradio.org/ Source: http://gnuradio.org/releases/gnuradio/gnuradio-3.7.2.1.tar.gz Comment: Packages of versions 3.4 and up by A. Maitland Bottoms , GNU Radio was re-packaged by Bdale Garbee to reflect upstream restructuring on Wed, 6 Sep 2006 16:02:03 -0600. Much was learned and portions were taken from the previous Debian packages built by Ramakrishnan Muthukrishnan and Steinar H. Gunderson. . GNU Radio was downloaded from http://gnuradio.org/ . Upstream Authors: Eric Blossom Matt Ettus Johnathan Corgan . See the AUTHORS file for a more complete list of contributors. The current upstream maintainer is Johnathan Corgan. Copyright: 2001-2012 Free Software Foundation, Inc. License: GPL-3+ Files: */CMakeLists.txt Copyright: 2010-2012 Free Software Foundation, Inc. License: GPL-3+ Comment: Most of the work for Cmake build is due to Josh Blum Files: */Makefile.am Copyright: 2001-2011 Free Software Foundation, Inc. License: GPL-3+ Files: gr-vocoder/lib/g7xx/* Copyright: 1992 Public Domain License: public-domain This source code is released by Sun Microsystems, Inc. to the public domain. Please give your acknowledgement in product literature if this code is used in your product implementation. . This source code is a product of Sun Microsystems, Inc. and is provided for unrestricted use. Users may copy or modify this source code without charge. . SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. . Sun source code is provided with no support and without any obligation on the part of Sun Microsystems, Inc. to assist in its use, correction, modification or enhancement. . SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE OR ANY PART THEREOF. . In no event will Sun Microsystems, Inc. be liable for any lost revenue or profits or other special, indirect and consequential damages, even if Sun has been advised of the possibility of such damages. . Sun Microsystems, Inc. 2550 Garcia Avenue Mountain View, California 94043 . Copyright year based on timestamps of files retrieved from http://web.archive.org/web/20060721140319/http://www.cwi.nl/ftp/audio/ccitt-adpcm.tar.gz Files: gnuradio-runtime/src/lib/general/malloc16.c Copyright: 2001 Phil Karn, KA9Q License: GPL-3+ Files: gr-fec/lib/reed-solomon/* Copyright: 2002, Phil Karn, KA9Q License: GPL-3+ Files: gr-fec/lib/viterbi/* Copyright: 1995 Phil Karn, KA9Q Copyright 2008 Free Software Foundation, Inc. License: GPL-3+ Files: gr-vocoder/lib/gsm/* Copyright: 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, Technische Universitaet Berlin Comment: MIT-like license License: TUB Files: gnuradio-runtime/include/gnuradio/thread/thread_group.h gnuradio-runtime/src/lib/thread_group.cc Copyright: (C) 2001-2003 William E. Kempf Copyright (C) 2007 Anthony Williams Copyright 2008 Free Software Foundation, Inc. License: GPL-3+ Comment: The original was distributed under the Boost Software License, Version 1.0, but this derivative work is now covered by the overall license assertion for GNU Radio. Files: gr-filter/lib/pm_remez.cc Copyright: (c) 1995,1998 Jake Janovetz (janovetz@uiuc.edu) Copyright (c) 2004 Free Software Foundation, Inc. License: GPL-3+ Comment: The original was distributed under LGPL version 2 or later, this derivative work is now covered by the overall license assertion for GNU Radio. Files: gr-wxgui/src/python/plot.py Copyright: (C) 2002, 2007 Gordon Williams License: GPL-3+ Comment: The original was licensed "Use as you wish", this derivative work is now covered by the overall license assertion for GNU Radio. Files: gr-wxgui/src/python/plotter/gltext.py Copyright: (C) 2007 Christian Brugger, Stefan Hacker License: GPL-3+ Comment: The original was distributed under GPL version 2 or later, this derivative work is now covered by the overall license assertion for GNU Radio. Files: gnuradio-runtime/python/gnuradio/gr_xmlrunner.py Copyright: 2006 Public Domain License: public-domain Written by Sebastian Rittau and placed in the Public Domain. With contributions by Paolo Borelli and others. Added to GNU Radio Oct. 3, 2010 . Copyright year based upon blog post of the author: http://www.rittau.org/blog/20060714-01 http://www.rittau.org/python/xmlrunner.py Files: gr-vocoder/lib/codec2/*kiss* Copyright: 2003-2010, Mark Borgerding License: KISS-BSD Files: gr-vocoder/lib/codec2/* Copyright: (C) 1990-2013 David Rowe License: LGPLv2.1+ Files: volk/cmake/msvc/* Copyright: (c) 2006-2008 Alexander Chemeris License: BSD-3 Files: debian/* Copyright: 2011-2013 A. Maitland Bottoms Copyright 2011-2013 Free Software Foundation, Inc. License: GPL-3+ Files: gr-fcd/* Copyright: 2012 Free Software Foundation, Inc. License: GPL-3+ Files: gr-fcd/lib/hid/* Copyright: 2009 Alan Ott, Signal 11 Software License: GPL-3 Files: gr-fcd/lib/fcd/* Copyright: 2010 Howard Long, G6LVB Copyright 2011 Alexandru Csete, OZ9AEC ; Mario Lorenz, DL5MLO License: GPL-3 License: TUB Any use of this software is permitted provided that this notice is not removed and that neither the authors nor the Technische Universitaet Berlin are deemed to have made any representations as to the suitability of this software for any purpose nor are held responsible for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. . As a matter of courtesy, the authors request to be informed about uses this software has found, about bugs in this software, and about any improvements that may be of general interest. . Berlin, 28.11.1994 Jutta Degener Carsten Bormann License: KISS-BSD Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIM ED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF U SE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: BSD-3 Copyright (c) 2006 Alexander Chemeris . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . 3. The name of the author may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: LGPLv2.1+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the complete text of the GNU Lesser General Public License (LGPL) version 2.1 can be found in the file '/usr/share/common-licenses/LGPL-2.1'. License: GPL-3+ 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 the Free Software Foundation; either version 3, or (at your option) any later version. . GNU Radio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the complete text of the GNU General Public License (GPL) version 3 can be found in the file '/usr/share/common-licenses/LGPL-3'. License: GPL-3 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 the Free Software Foundation; either version 3, or (at your option) any later version. . GNU Radio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the complete text of the GNU General Public License (GPL) version 3 can be found in the file '/usr/share/common-licenses/LGPL-3'. debian/gnuradio.docs0000664000000000000000000000006012256421530011646 0ustar debian/ChangeLogV3_7_2 debian/ChangeLogV3_7_2_1 debian/gr_plot_int.10000664000000000000000000000231611714131354011574 0ustar .TH GR_PLOT_INT "1" "December 2011" "gr_plot_int 3.5" "User Commands" .SH NAME gr_plot_int.py \- plot integer binary data using GNU Radio .SH SYNOPSIS .B gr_plot_int: [\fIoptions\fR] \fIinput_filenames\fR .SH DESCRIPTION Takes a GNU Radio integer binary file and displays the samples versus time. You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/gnuradio.README.Debian0000664000000000000000000000150211714260254013040 0ustar Upstream gnuradio ships the following in GR_RUNTIME_DIR (usually /usr/local/bin): gr_filter_design.py usrp_flex.py usrp_flex_band.py usrp_flex_all.py hrpt_decode.py hrpt_demod.py file_rx_hrpt.py usrp_rx_hrpt.py usrp_rx_hrpt_nogui.py gr_plot_char.py gr_plot_const.py gr_plot_float.py gr_plot_int.py gr_plot_short.py gr_plot_iq.py gr_plot_qt.py gr_plot_fft.py gr_plot_fft_c.py gr_plot_fft_f.py gr_plot_psd.py gr_plot_psd_c.py gr_plot_psd_f.py uhd_fft.py uhd_rx_cfile.py uhd_rx_nogui.py uhd_siggen_gui.py uhd_siggen.py In the Debian package, there appear in /usr/bin without the .py extension. It is Debian policy not to have language-specific suffixes on files in /usr/bin. However, the GNU Radio documentation has not been edited to reflect this change. -- A. Maitland Bottoms , Tue, 7 Feb 2012 12:34:12 -0500 debian/volk_profile.10000664000000000000000000000027711730774740011765 0ustar .TH UHD_FFT "1" "March 2012" "volk_profile 3.5" "User Commands" .SH NAME volk_profile \- Quality Assurance application for libvolk functions .SH DESCRIPTION Writes profile results to a file. debian/patches/0000775000000000000000000000000012262143002010607 5ustar debian/patches/0019-qtgui-enables-use-of-QWT-6.1.patch0000664000000000000000000004257312256421616017156 0ustar From d16393700d1f286fb2c67ea53ddebaad151f4803 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 17 Dec 2013 19:22:03 -0500 Subject: [PATCH 19/25] qtgui: enables use of QWT 6.1. --- cmake/Modules/FindQwt.cmake | 2 +- gr-qtgui/include/gnuradio/qtgui/DisplayPlot.h | 1 + .../include/gnuradio/qtgui/TimeDomainDisplayPlot.h | 1 + gr-qtgui/include/gnuradio/qtgui/utils.h | 5 ++++ gr-qtgui/lib/ConstellationDisplayPlot.cc | 7 ++++- gr-qtgui/lib/DisplayPlot.cc | 21 +++++++++++++- gr-qtgui/lib/FrequencyDisplayPlot.cc | 20 +++++++++++++- gr-qtgui/lib/HistogramDisplayPlot.cc | 23 ++++++++++++++++ gr-qtgui/lib/TimeDomainDisplayPlot.cc | 29 ++++++++++++++++++++ gr-qtgui/lib/TimeRasterDisplayPlot.cc | 13 ++++++++- gr-qtgui/lib/WaterfallDisplayPlot.cc | 12 +++++++- gr-qtgui/lib/qtgui_util.cc | 4 +++ gr-qtgui/lib/spectrumdisplayform.cc | 24 ++++++++++++++-- 13 files changed, 153 insertions(+), 9 deletions(-) diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake index d3dc7a5..a940558 100644 --- a/cmake/Modules/FindQwt.cmake +++ b/cmake/Modules/FindQwt.cmake @@ -39,7 +39,7 @@ if(QWT_INCLUDE_DIRS) QWT_STRING_VERSION REGEX "QWT_VERSION_STR") string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" QWT_VERSION ${QWT_STRING_VERSION}) string(COMPARE LESS ${QWT_VERSION} "5.2.0" QWT_WRONG_VERSION) - string(COMPARE GREATER ${QWT_VERSION} "6.0.2" QWT_WRONG_VERSION) + string(COMPARE GREATER ${QWT_VERSION} "6.1.2" QWT_WRONG_VERSION) message(STATUS "QWT Version: ${QWT_VERSION}") if(NOT QWT_WRONG_VERSION) diff --git a/gr-qtgui/include/gnuradio/qtgui/DisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/DisplayPlot.h index 3b31191..517f69f 100644 --- a/gr-qtgui/include/gnuradio/qtgui/DisplayPlot.h +++ b/gr-qtgui/include/gnuradio/qtgui/DisplayPlot.h @@ -269,6 +269,7 @@ signals: protected slots: virtual void legendEntryChecked(QwtPlotItem *plotItem, bool on); + virtual void legendEntryChecked(const QVariant &plotItem, bool on, int index); protected: int d_nplots; diff --git a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h index 4e0d0bd..8874a7e 100644 --- a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h +++ b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h @@ -59,6 +59,7 @@ public slots: void setSemilogy(bool en); void legendEntryChecked(QwtPlotItem *plotItem, bool on); + void legendEntryChecked(const QVariant &plotItem, bool on, int index); void enableTagMarker(int which, bool en); diff --git a/gr-qtgui/include/gnuradio/qtgui/utils.h b/gr-qtgui/include/gnuradio/qtgui/utils.h index c427128..7794feb 100644 --- a/gr-qtgui/include/gnuradio/qtgui/utils.h +++ b/gr-qtgui/include/gnuradio/qtgui/utils.h @@ -31,7 +31,12 @@ class QTGUI_API QwtDblClickPlotPicker: public QwtPlotPicker { public: +#if QWT_VERSION < 0x060100 QwtDblClickPlotPicker(QwtPlotCanvas *); +#else /* QWT_VERSION < 0x060100 */ + QwtDblClickPlotPicker(QWidget *); +#endif /* QWT_VERSION < 0x060100 */ + ~QwtDblClickPlotPicker(); virtual QwtPickerMachine * stateMachine(int) const; diff --git a/gr-qtgui/lib/ConstellationDisplayPlot.cc b/gr-qtgui/lib/ConstellationDisplayPlot.cc index af27fc4..47e6b0b 100644 --- a/gr-qtgui/lib/ConstellationDisplayPlot.cc +++ b/gr-qtgui/lib/ConstellationDisplayPlot.cc @@ -33,7 +33,12 @@ class ConstellationDisplayZoomer: public QwtPlotZoomer { public: - ConstellationDisplayZoomer(QwtPlotCanvas* canvas):QwtPlotZoomer(canvas) +#if QWT_VERSION < 0x060100 + ConstellationDisplayZoomer(QwtPlotCanvas* canvas) +#else /* QWT_VERSION < 0x060100 */ + ConstellationDisplayZoomer(QWidget* canvas) +#endif /* QWT_VERSION < 0x060100 */ + : QwtPlotZoomer(canvas) { setTrackerMode(QwtPicker::AlwaysOn); } diff --git a/gr-qtgui/lib/DisplayPlot.cc b/gr-qtgui/lib/DisplayPlot.cc index 5c29381..6f1f106 100644 --- a/gr-qtgui/lib/DisplayPlot.cc +++ b/gr-qtgui/lib/DisplayPlot.cc @@ -27,6 +27,7 @@ #include #include #include +#include #include DisplayPlot::DisplayPlot(int nplots, QWidget* parent) @@ -81,11 +82,19 @@ DisplayPlot::DisplayPlot(int nplots, QWidget* parent) sd->setMinimumExtent( fm.width("100.00") ); QwtLegend* legendDisplay = new QwtLegend(this); + +#if QWT_VERSION < 0x060100 legendDisplay->setItemMode(QwtLegend::CheckableItem); insertLegend(legendDisplay); - connect(this, SIGNAL(legendChecked(QwtPlotItem *, bool)), this, SLOT(legendEntryChecked(QwtPlotItem *, bool))); +#else /* QWT_VERSION < 0x060100 */ + legendDisplay->setDefaultItemMode(QwtLegendData::Checkable); + insertLegend(legendDisplay); + connect(legendDisplay, SIGNAL(checked(const QVariant&, bool, int)), + this, SLOT(legendEntryChecked(const QVariant&, bool, int))); +#endif /* QWT_VERSION < 0x060100 */ + } DisplayPlot::~DisplayPlot() @@ -403,6 +412,16 @@ void DisplayPlot::legendEntryChecked(QwtPlotItem* plotItem, bool on) replot(); } +void DisplayPlot::legendEntryChecked(const QVariant &plotItem, bool on, int index) +{ +#if QWT_VERSION < 0x060100 + std::runtime_error("DisplayPlot::legendEntryChecked with QVariant not enabled in this version of QWT.\n"); +#else + QwtPlotItem *p = infoToItem(plotItem); + legendEntryChecked(p, on); +#endif /* QWT_VERSION < 0x060100 */ +} + void DisplayPlot::onPickerPointSelected(const QwtDoublePoint & p) { diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.cc b/gr-qtgui/lib/FrequencyDisplayPlot.cc index 85fd14f..60cfcd2 100644 --- a/gr-qtgui/lib/FrequencyDisplayPlot.cc +++ b/gr-qtgui/lib/FrequencyDisplayPlot.cc @@ -28,17 +28,27 @@ #include #include #include -#include #include #include +#if QWT_VERSION < 0x060100 +#include +#else /* QWT_VERSION < 0x060100 */ +#include +#include +#endif /* QWT_VERSION < 0x060100 */ + /*********************************************************************** * Widget to provide mouse pointer coordinate text **********************************************************************/ class FreqDisplayZoomer: public QwtPlotZoomer, public FreqOffsetAndPrecisionClass { public: +#if QWT_VERSION < 0x060100 FreqDisplayZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision) +#else /* QWT_VERSION < 0x060100 */ + FreqDisplayZoomer(QWidget* canvas, const unsigned int freqPrecision) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotZoomer(canvas), FreqOffsetAndPrecisionClass(freqPrecision) { @@ -205,12 +215,20 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(int nplots, QWidget* parent) _resetXAxisPoints(); // Turn off min/max hold plots in legend +#if QWT_VERSION < 0x060100 QWidget *w; QwtLegend* legendDisplay = legend(); w = legendDisplay->find(d_min_fft_plot_curve); ((QwtLegendItem*)w)->setChecked(true); w = legendDisplay->find(d_max_fft_plot_curve); ((QwtLegendItem*)w)->setChecked(true); +#else /* QWT_VERSION < 0x060100 */ + QWidget *w; + w = ((QwtLegend*)legend())->legendWidget(itemToInfo(d_min_fft_plot_curve)); + ((QwtLegendLabel*)w)->setChecked(true); + w = ((QwtLegend*)legend())->legendWidget(itemToInfo(d_max_fft_plot_curve)); + ((QwtLegendLabel*)w)->setChecked(true); +#endif /* QWT_VERSION < 0x060100 */ replot(); } diff --git a/gr-qtgui/lib/HistogramDisplayPlot.cc b/gr-qtgui/lib/HistogramDisplayPlot.cc index 301cb13..ce9ed3c 100644 --- a/gr-qtgui/lib/HistogramDisplayPlot.cc +++ b/gr-qtgui/lib/HistogramDisplayPlot.cc @@ -67,7 +67,11 @@ protected: class HistogramDisplayZoomer: public QwtPlotZoomer, public TimePrecisionClass { public: +#if QWT_VERSION < 0x060100 HistogramDisplayZoomer(QwtPlotCanvas* canvas, const unsigned int timeprecision) +#else /* QWT_VERSION < 0x060100 */ + HistogramDisplayZoomer(QWidget* canvas, const unsigned int timeprecision) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotZoomer(canvas),TimePrecisionClass(timeprecision) { setTrackerMode(QwtPicker::AlwaysOn); @@ -273,7 +277,12 @@ HistogramDisplayPlot::_resetXAxisPoints(double left, double right) for(long loc = 0; loc < d_bins; loc++){ d_xdata[loc] = d_left + loc*d_width; } +#if QWT_VERSION < 0x060100 axisScaleDiv(QwtPlot::xBottom)->setInterval(d_left, d_right); +#else /* QWT_VERSION < 0x060100 */ + QwtScaleDiv scalediv(d_left, d_right); + setAxisScaleDiv(QwtPlot::xBottom, scalediv); +#endif /* QWT_VERSION < 0x060100 */ // Set up zoomer base for maximum unzoom x-axis // and reset to maximum unzoom level @@ -333,7 +342,11 @@ HistogramDisplayPlot::setSemilogx(bool en) setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine); } else { +#if QWT_VERSION < 0x060100 setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine); +#else /* QWT_VERSION < 0x060100 */ + setAxisScaleEngine(QwtPlot::xBottom, new QwtLogScaleEngine); +#endif /* QWT_VERSION < 0x060100 */ } } @@ -342,13 +355,23 @@ HistogramDisplayPlot::setSemilogy(bool en) { if(d_semilogy != en) { d_semilogy = en; + +#if QWT_VERSION < 0x060100 double max = axisScaleDiv(QwtPlot::yLeft)->upperBound(); +#else /* QWT_VERSION < 0x060100 */ + double max = axisScaleDiv(QwtPlot::yLeft).upperBound(); +#endif /* QWT_VERSION < 0x060100 */ + if(!d_semilogy) { setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine); setYaxis(-pow(10.0, max/10.0), pow(10.0, max/10.0)); } else { +#if QWT_VERSION < 0x060100 setAxisScaleEngine(QwtPlot::yLeft, new QwtLog10ScaleEngine); +#else /* QWT_VERSION < 0x060100 */ + setAxisScaleEngine(QwtPlot::yLeft, new QwtLogScaleEngine); +#endif /* QWT_VERSION < 0x060100 */ setYaxis(1e-10, 10.0*log10(100*max)); } } diff --git a/gr-qtgui/lib/TimeDomainDisplayPlot.cc b/gr-qtgui/lib/TimeDomainDisplayPlot.cc index 8d65630..8be3f90 100644 --- a/gr-qtgui/lib/TimeDomainDisplayPlot.cc +++ b/gr-qtgui/lib/TimeDomainDisplayPlot.cc @@ -61,7 +61,11 @@ protected: class TimeDomainDisplayZoomer: public QwtPlotZoomer, public TimePrecisionClass { public: +#if QWT_VERSION < 0x060100 TimeDomainDisplayZoomer(QwtPlotCanvas* canvas, const unsigned int timePrecision) +#else /* QWT_VERSION < 0x060100 */ + TimeDomainDisplayZoomer(QWidget* canvas, const unsigned int timePrecision) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotZoomer(canvas),TimePrecisionClass(timePrecision) { setTrackerMode(QwtPicker::AlwaysOn); @@ -394,6 +398,17 @@ TimeDomainDisplayPlot::legendEntryChecked(QwtPlotItem* plotItem, bool on) } void +TimeDomainDisplayPlot::legendEntryChecked(const QVariant &plotItem, bool on, int index) +{ +#if QWT_VERSION < 0x060100 + std::runtime_error("TimeDomainDisplayPlot::legendEntryChecked with QVariant not enabled in this version of QWT.\n"); +#else + QwtPlotItem *p = infoToItem(plotItem); + legendEntryChecked(p, on); +#endif /* QWT_VERSION < 0x060100 */ +} + +void TimeDomainDisplayPlot::_resetXAxisPoints() { double delt = 1.0/d_sample_rate; @@ -490,7 +505,11 @@ TimeDomainDisplayPlot::setSemilogx(bool en) setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine); } else { +#if QWT_VERSION < 0x060100 setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine); +#else /* QWT_VERSION < 0x060100 */ + setAxisScaleEngine(QwtPlot::xBottom, new QwtLogScaleEngine); +#endif /*QWT_VERSION < 0x060100 */ } _resetXAxisPoints(); } @@ -500,13 +519,23 @@ TimeDomainDisplayPlot::setSemilogy(bool en) { if(d_semilogy != en) { d_semilogy = en; + +#if QWT_VERSION < 0x060100 double max = axisScaleDiv(QwtPlot::yLeft)->upperBound(); +#else /* QWT_VERSION < 0x060100 */ + double max = axisScaleDiv(QwtPlot::yLeft).upperBound(); +#endif /* QWT_VERSION < 0x060100 */ + if(!d_semilogy) { setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine); setYaxis(-pow(10.0, max/10.0), pow(10.0, max/10.0)); } else { +#if QWT_VERSION < 0x060100 setAxisScaleEngine(QwtPlot::yLeft, new QwtLog10ScaleEngine); +#else /* QWT_VERSION < 0x060100 */ + setAxisScaleEngine(QwtPlot::yLeft, new QwtLogScaleEngine); +#endif /*QWT_VERSION < 0x060100 */ setYaxis(1e-10, 10.0*log10(max)); } } diff --git a/gr-qtgui/lib/TimeRasterDisplayPlot.cc b/gr-qtgui/lib/TimeRasterDisplayPlot.cc index b26f7f0..afe326b 100644 --- a/gr-qtgui/lib/TimeRasterDisplayPlot.cc +++ b/gr-qtgui/lib/TimeRasterDisplayPlot.cc @@ -29,11 +29,17 @@ #include #include #include -#include #include #include #include +#if QWT_VERSION < 0x060100 +#include +#else /* QWT_VERSION < 0x060100 */ +#include +#include +#endif /* QWT_VERSION < 0x060100 */ + #include namespace pt = boost::posix_time; @@ -125,8 +131,13 @@ class TimeRasterZoomer: public QwtPlotZoomer, public TimePrecisionClass, public TimeScaleData { public: +#if QWT_VERSION < 0x060100 TimeRasterZoomer(QwtPlotCanvas* canvas, double rows, double cols, const unsigned int timePrecision) +#else /* QWT_VERSION < 0x060100 */ + TimeRasterZoomer(QWidget* canvas, double rows, double cols, + const unsigned int timePrecision) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotZoomer(canvas), TimePrecisionClass(timePrecision), TimeScaleData(), d_rows(static_cast(rows)), d_cols(static_cast(cols)) { diff --git a/gr-qtgui/lib/WaterfallDisplayPlot.cc b/gr-qtgui/lib/WaterfallDisplayPlot.cc index 47d6624..92fcb38 100644 --- a/gr-qtgui/lib/WaterfallDisplayPlot.cc +++ b/gr-qtgui/lib/WaterfallDisplayPlot.cc @@ -29,11 +29,17 @@ #include #include #include -#include #include #include #include +#if QWT_VERSION < 0x060100 +#include +#else /* QWT_VERSION < 0x060100 */ +#include +#include +#endif /* QWT_VERSION < 0x060100 */ + #include namespace pt = boost::posix_time; @@ -79,7 +85,11 @@ class WaterfallZoomer: public QwtPlotZoomer, public TimeScaleData, public FreqOffsetAndPrecisionClass { public: +#if QWT_VERSION < 0x060100 WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision) +#else /* QWT_VERSION < 0x060100 */ + WaterfallZoomer(QWidget* canvas, const unsigned int freqPrecision) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotZoomer(canvas), TimeScaleData(), FreqOffsetAndPrecisionClass(freqPrecision) { diff --git a/gr-qtgui/lib/qtgui_util.cc b/gr-qtgui/lib/qtgui_util.cc index 539f7ba..bb06f58 100644 --- a/gr-qtgui/lib/qtgui_util.cc +++ b/gr-qtgui/lib/qtgui_util.cc @@ -61,7 +61,11 @@ QwtPickerDblClickPointMachine::transition(const QwtEventPattern &eventPattern, return cmdList; } +#if QWT_VERSION < 0x060100 QwtDblClickPlotPicker::QwtDblClickPlotPicker(QwtPlotCanvas* canvas) +#else /* QWT_VERSION < 0x060100 */ +QwtDblClickPlotPicker::QwtDblClickPlotPicker(QWidget* canvas) +#endif /* QWT_VERSION < 0x060100 */ : QwtPlotPicker(canvas) { #if QWT_VERSION < 0x060000 diff --git a/gr-qtgui/lib/spectrumdisplayform.cc b/gr-qtgui/lib/spectrumdisplayform.cc index 0d16b95..aeda7d0 100644 --- a/gr-qtgui/lib/spectrumdisplayform.cc +++ b/gr-qtgui/lib/spectrumdisplayform.cc @@ -50,9 +50,15 @@ SpectrumDisplayForm::SpectrumDisplayForm(QWidget* parent) minHoldCheckBox_toggled( false ); maxHoldCheckBox_toggled( false ); +#if QWT_VERSION < 0x060100 WaterfallMaximumIntensitySlider->setRange(-200, 0); WaterfallMinimumIntensitySlider->setRange(-200, 0); WaterfallMinimumIntensitySlider->setValue(-200); +#else /* QWT_VERSION < 0x060100 */ + WaterfallMaximumIntensitySlider->setScale(-200, 0); + WaterfallMinimumIntensitySlider->setScale(-200, 0); + WaterfallMinimumIntensitySlider->setValue(-200); +#endif /* QWT_VERSION < 0x060100 */ _peakFrequency = 0; _peakAmplitude = -HUGE_VAL; @@ -606,14 +612,26 @@ void SpectrumDisplayForm::waterfallAutoScaleBtnCB() { double minimumIntensity = _noiseFloorAmplitude - 5; - if(minimumIntensity < WaterfallMinimumIntensitySlider->minValue()){ + double maximumIntensity = _peakAmplitude + 10; + +#if QWT_VERSION < 0x060100 + if(minimumIntensity < WaterfallMinimumIntensitySlider->minValue()) { minimumIntensity = WaterfallMinimumIntensitySlider->minValue(); } WaterfallMinimumIntensitySlider->setValue(minimumIntensity); - double maximumIntensity = _peakAmplitude + 10; - if(maximumIntensity > WaterfallMaximumIntensitySlider->maxValue()){ + if(maximumIntensity > WaterfallMaximumIntensitySlider->maxValue()) { maximumIntensity = WaterfallMaximumIntensitySlider->maxValue(); } +#else /* QWT_VERSION < 0x060100 */ + if(minimumIntensity < WaterfallMinimumIntensitySlider->lowerBound()) { + minimumIntensity = WaterfallMinimumIntensitySlider->lowerBound(); + } + WaterfallMinimumIntensitySlider->setValue(minimumIntensity); + if(maximumIntensity > WaterfallMaximumIntensitySlider->upperBound()) { + maximumIntensity = WaterfallMaximumIntensitySlider->upperBound(); + } +#endif /* QWT_VERSION < 0x060100 */ + WaterfallMaximumIntensitySlider->setValue(maximumIntensity); waterfallMaximumIntensityChangedCB(maximumIntensity); } -- 1.7.10.4 debian/patches/0017-volk-fixed-issue-with-size_t-comparison-of-std-strin.patch0000664000000000000000000000171712256421616024401 0ustar From 756b9bbc82f9f19d1fd3f9d1ce186a9edcf04607 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 17 Dec 2013 14:01:41 -0500 Subject: [PATCH 17/25] volk: fixed issue with size_t comparison of std::string function (compare against std::npos, not -1). --- volk/lib/qa_utils.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/volk/lib/qa_utils.cc b/volk/lib/qa_utils.cc index 8e9c4c2..17164a4 100644 --- a/volk/lib/qa_utils.cc +++ b/volk/lib/qa_utils.cc @@ -93,7 +93,8 @@ volk_type_t volk_type_from_string(std::string name) { //get the data size size_t last_size_pos = name.find_last_of("0123456789"); - if(last_size_pos < 0) throw std::string("no size spec in type ").append(name); + if(last_size_pos == std::string::npos) + throw std::string("no size spec in type ").append(name); //will throw if malformed int size = boost::lexical_cast(name.substr(0, last_size_pos+1)); -- 1.7.10.4 debian/patches/0005-runtime-Moved-QA-code-that-uses-blocks-to-the-gr-blo.patch0000664000000000000000000004255712256421615023751 0ustar From 4d4afe787b5a4b3cafca059decf3720eca348ed4 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 1 Dec 2013 11:48:11 -0500 Subject: [PATCH 05/25] runtime: Moved QA code that uses blocks to the gr-blocks component. --- .../gr/qa_hier_block2_message_connections.py | 204 -------------------- .../blocks/qa_hier_block2_message_connections.py | 204 ++++++++++++++++++++ 2 files changed, 204 insertions(+), 204 deletions(-) delete mode 100644 gnuradio-runtime/python/gnuradio/gr/qa_hier_block2_message_connections.py create mode 100644 gr-blocks/python/blocks/qa_hier_block2_message_connections.py diff --git a/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2_message_connections.py b/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2_message_connections.py deleted file mode 100644 index bc575b7..0000000 --- a/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2_message_connections.py +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2006,2007,2010 Free Software Foundation, Inc. -# -# 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 -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -import weakref - -from gnuradio import blocks, gr, gr_unittest -import pmt - - -class block_with_message_output(gr.basic_block): - - def __init__(self): - gr.basic_block.__init__(self, - "block_with_message_output", - in_sig=None, - out_sig=None) - self.message_port_register_out(pmt.intern("test")) - - -class block_with_message_input(gr.basic_block): - - def __init__(self): - gr.basic_block.__init__(self, - "block_with_message_input", - in_sig=None, - out_sig=None) - self.message_port_register_in(pmt.intern("test")) - - -class hier_block_with_message_output(gr.hier_block2): - - def __init__(self): - gr.hier_block2.__init__(self, - "hier_block_with_message_output", - gr.io_signature(0, 0, 0), # Input signature - gr.io_signature(0, 0, 0)) # Output signature - self.message_port_register_hier_in("test") - self.block = block_with_message_output() - self.msg_connect(self.block, "test", weakref.proxy(self), "test") - - -class hier_block_with_message_input(gr.hier_block2): - - def __init__(self): - gr.hier_block2.__init__(self, - "hier_block_with_message_output", - gr.io_signature(0, 0, 0), # Input signature - gr.io_signature(0, 0, 0)) # Output signature - self.message_port_register_hier_out("test") - self.block = block_with_message_input() - self.msg_connect(weakref.proxy(self), "test", self.block, "test") - - -class hier_block_with_message_inout(gr.hier_block2): - - def __init__(self): - gr.hier_block2.__init__(self, - "hier_block_with_message_inout", - gr.io_signature(0, 0, 0), # Input signature - gr.io_signature(0, 0, 0)) # Output signature - self.message_port_register_hier_out("test") - self.message_port_register_hier_in("test") - self.input = block_with_message_input() - self.msg_connect(weakref.proxy(self), "test", self.input, "test") - self.output = block_with_message_output() - self.msg_connect(self.output, "test", weakref.proxy(self), "test") - - -class test_hier_block2_message_connections(gr_unittest.TestCase): - - def setUp(self): - self.tb = gr.top_block() - - def tearDown(self): - self.tb = None - - def run_top_block(self): - self.tb.start() - self.tb.stop() - self.tb.wait() - - def assert_has_subscription(self, sender, send_port, receiver, - receive_port): - """assert that the given sender block has a subscription for the given - receiver block on the appropriate send and receive ports - - :param sender: a block sptr to the message sender - :param string send_port: the port messages are being sent on - :param receiver: a block sptr to the message receiver - :param string receive_port: the port messages are being received on - """ - subs = sender.message_subscribers(pmt.intern(send_port)) - self.assertTrue(pmt.list_has(subs, pmt.cons( - pmt.intern(receiver.to_basic_block().alias()), - pmt.intern(receive_port)))) - - def assert_has_num_subscriptions(self, block, port, number): - """assert that the given block has the given number of subscriptions - on the given port - - :param block: a block sptr - :param string port: the port name - :param number: the number of subscriptions expected - """ - subs = block.message_subscribers(pmt.intern(port)) - self.assertEqual(pmt.length(subs), number) - - def test_hier_out_to_normal_in(self): - message_debug = blocks.message_debug() - hier = hier_block_with_message_output() - - self.tb.msg_connect(hier, "test", message_debug, "print") - self.run_top_block() - self.assert_has_num_subscriptions(hier.block, "test", 1) - self.assert_has_num_subscriptions(hier, "test", 0) - self.assert_has_subscription( - hier.block, "test", message_debug, "print") - self.tb.msg_disconnect(hier, "test", message_debug, "print") - self.assert_has_num_subscriptions(hier.block, "test", 0) - - def test_normal_out_to_hier_in(self): - b = block_with_message_output() - hier = hier_block_with_message_input() - - self.tb.msg_connect(b, "test", hier, "test") - self.run_top_block() - self.assert_has_num_subscriptions(b, "test", 1) - self.assert_has_subscription(b, "test", hier.block, "test") - self.tb.msg_disconnect(b, "test", hier, "test") - self.assert_has_num_subscriptions(b, "test", 0) - - def test_hier_out_to_hier_in(self): - hier_out = hier_block_with_message_output() - hier_in = hier_block_with_message_input() - - self.tb.msg_connect(hier_out, "test", hier_in, "test") - self.run_top_block() - self.assert_has_num_subscriptions(hier_out, "test", 0) - self.assert_has_num_subscriptions(hier_out.block, "test", 1) - self.assert_has_subscription( - hier_out.block, "test", hier_in.block, "test") - self.tb.msg_disconnect(hier_out, "test", hier_in, "test") - self.assert_has_num_subscriptions(hier_out.block, "test", 0) - - def test_normal_in_to_hier_to_normal_out(self): - hier = hier_block_with_message_inout() - input = block_with_message_output() - output = block_with_message_input() - - self.tb.msg_connect(input, "test", hier, "test") - self.tb.msg_connect(hier, "test", output, "test") - self.run_top_block() - self.assert_has_num_subscriptions(input, "test", 1) - self.assert_has_subscription(input, "test", hier.input, "test") - self.assert_has_num_subscriptions(hier, "test", 0) - self.assert_has_num_subscriptions(hier.output, "test", 1) - self.assert_has_subscription(hier.output, "test", output, "test") - self.tb.msg_disconnect(input, "test", hier, "test") - self.tb.msg_disconnect(hier, "test", output, "test") - self.assert_has_num_subscriptions(input, "test", 0) - self.assert_has_num_subscriptions(hier.output, "test", 0) - - def test_multiple_connections(self): - hier = hier_block_with_message_output() - x = block_with_message_input() - y = block_with_message_input() - - self.tb.msg_connect(hier, "test", x, "test") - self.tb.msg_connect(hier, "test", y, "test") - self.run_top_block() - self.assert_has_num_subscriptions(hier, "test", 0) - self.assert_has_num_subscriptions(hier.block, "test", 2) - self.assert_has_subscription(hier.block, "test", x, "test") - self.assert_has_subscription(hier.block, "test", y, "test") - self.tb.msg_disconnect(hier, "test", y, "test") - self.assert_has_num_subscriptions(hier, "test", 0) - self.assert_has_num_subscriptions(hier.block, "test", 1) - self.assert_has_subscription(hier.block, "test", x, "test") - self.run_top_block() - self.tb.msg_disconnect(hier, "test", x, "test") - self.assert_has_num_subscriptions(hier.block, "test", 0) - -if __name__ == '__main__': - gr_unittest.run(test_hier_block2_message_connections, - "test_hier_block2_message_connections.xml") diff --git a/gr-blocks/python/blocks/qa_hier_block2_message_connections.py b/gr-blocks/python/blocks/qa_hier_block2_message_connections.py new file mode 100644 index 0000000..bc575b7 --- /dev/null +++ b/gr-blocks/python/blocks/qa_hier_block2_message_connections.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python +# +# Copyright 2006,2007,2010 Free Software Foundation, Inc. +# +# 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 +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +import weakref + +from gnuradio import blocks, gr, gr_unittest +import pmt + + +class block_with_message_output(gr.basic_block): + + def __init__(self): + gr.basic_block.__init__(self, + "block_with_message_output", + in_sig=None, + out_sig=None) + self.message_port_register_out(pmt.intern("test")) + + +class block_with_message_input(gr.basic_block): + + def __init__(self): + gr.basic_block.__init__(self, + "block_with_message_input", + in_sig=None, + out_sig=None) + self.message_port_register_in(pmt.intern("test")) + + +class hier_block_with_message_output(gr.hier_block2): + + def __init__(self): + gr.hier_block2.__init__(self, + "hier_block_with_message_output", + gr.io_signature(0, 0, 0), # Input signature + gr.io_signature(0, 0, 0)) # Output signature + self.message_port_register_hier_in("test") + self.block = block_with_message_output() + self.msg_connect(self.block, "test", weakref.proxy(self), "test") + + +class hier_block_with_message_input(gr.hier_block2): + + def __init__(self): + gr.hier_block2.__init__(self, + "hier_block_with_message_output", + gr.io_signature(0, 0, 0), # Input signature + gr.io_signature(0, 0, 0)) # Output signature + self.message_port_register_hier_out("test") + self.block = block_with_message_input() + self.msg_connect(weakref.proxy(self), "test", self.block, "test") + + +class hier_block_with_message_inout(gr.hier_block2): + + def __init__(self): + gr.hier_block2.__init__(self, + "hier_block_with_message_inout", + gr.io_signature(0, 0, 0), # Input signature + gr.io_signature(0, 0, 0)) # Output signature + self.message_port_register_hier_out("test") + self.message_port_register_hier_in("test") + self.input = block_with_message_input() + self.msg_connect(weakref.proxy(self), "test", self.input, "test") + self.output = block_with_message_output() + self.msg_connect(self.output, "test", weakref.proxy(self), "test") + + +class test_hier_block2_message_connections(gr_unittest.TestCase): + + def setUp(self): + self.tb = gr.top_block() + + def tearDown(self): + self.tb = None + + def run_top_block(self): + self.tb.start() + self.tb.stop() + self.tb.wait() + + def assert_has_subscription(self, sender, send_port, receiver, + receive_port): + """assert that the given sender block has a subscription for the given + receiver block on the appropriate send and receive ports + + :param sender: a block sptr to the message sender + :param string send_port: the port messages are being sent on + :param receiver: a block sptr to the message receiver + :param string receive_port: the port messages are being received on + """ + subs = sender.message_subscribers(pmt.intern(send_port)) + self.assertTrue(pmt.list_has(subs, pmt.cons( + pmt.intern(receiver.to_basic_block().alias()), + pmt.intern(receive_port)))) + + def assert_has_num_subscriptions(self, block, port, number): + """assert that the given block has the given number of subscriptions + on the given port + + :param block: a block sptr + :param string port: the port name + :param number: the number of subscriptions expected + """ + subs = block.message_subscribers(pmt.intern(port)) + self.assertEqual(pmt.length(subs), number) + + def test_hier_out_to_normal_in(self): + message_debug = blocks.message_debug() + hier = hier_block_with_message_output() + + self.tb.msg_connect(hier, "test", message_debug, "print") + self.run_top_block() + self.assert_has_num_subscriptions(hier.block, "test", 1) + self.assert_has_num_subscriptions(hier, "test", 0) + self.assert_has_subscription( + hier.block, "test", message_debug, "print") + self.tb.msg_disconnect(hier, "test", message_debug, "print") + self.assert_has_num_subscriptions(hier.block, "test", 0) + + def test_normal_out_to_hier_in(self): + b = block_with_message_output() + hier = hier_block_with_message_input() + + self.tb.msg_connect(b, "test", hier, "test") + self.run_top_block() + self.assert_has_num_subscriptions(b, "test", 1) + self.assert_has_subscription(b, "test", hier.block, "test") + self.tb.msg_disconnect(b, "test", hier, "test") + self.assert_has_num_subscriptions(b, "test", 0) + + def test_hier_out_to_hier_in(self): + hier_out = hier_block_with_message_output() + hier_in = hier_block_with_message_input() + + self.tb.msg_connect(hier_out, "test", hier_in, "test") + self.run_top_block() + self.assert_has_num_subscriptions(hier_out, "test", 0) + self.assert_has_num_subscriptions(hier_out.block, "test", 1) + self.assert_has_subscription( + hier_out.block, "test", hier_in.block, "test") + self.tb.msg_disconnect(hier_out, "test", hier_in, "test") + self.assert_has_num_subscriptions(hier_out.block, "test", 0) + + def test_normal_in_to_hier_to_normal_out(self): + hier = hier_block_with_message_inout() + input = block_with_message_output() + output = block_with_message_input() + + self.tb.msg_connect(input, "test", hier, "test") + self.tb.msg_connect(hier, "test", output, "test") + self.run_top_block() + self.assert_has_num_subscriptions(input, "test", 1) + self.assert_has_subscription(input, "test", hier.input, "test") + self.assert_has_num_subscriptions(hier, "test", 0) + self.assert_has_num_subscriptions(hier.output, "test", 1) + self.assert_has_subscription(hier.output, "test", output, "test") + self.tb.msg_disconnect(input, "test", hier, "test") + self.tb.msg_disconnect(hier, "test", output, "test") + self.assert_has_num_subscriptions(input, "test", 0) + self.assert_has_num_subscriptions(hier.output, "test", 0) + + def test_multiple_connections(self): + hier = hier_block_with_message_output() + x = block_with_message_input() + y = block_with_message_input() + + self.tb.msg_connect(hier, "test", x, "test") + self.tb.msg_connect(hier, "test", y, "test") + self.run_top_block() + self.assert_has_num_subscriptions(hier, "test", 0) + self.assert_has_num_subscriptions(hier.block, "test", 2) + self.assert_has_subscription(hier.block, "test", x, "test") + self.assert_has_subscription(hier.block, "test", y, "test") + self.tb.msg_disconnect(hier, "test", y, "test") + self.assert_has_num_subscriptions(hier, "test", 0) + self.assert_has_num_subscriptions(hier.block, "test", 1) + self.assert_has_subscription(hier.block, "test", x, "test") + self.run_top_block() + self.tb.msg_disconnect(hier, "test", x, "test") + self.assert_has_num_subscriptions(hier.block, "test", 0) + +if __name__ == '__main__': + gr_unittest.run(test_hier_block2_message_connections, + "test_hier_block2_message_connections.xml") -- 1.7.10.4 debian/patches/debian-soname0000664000000000000000000000074511723062427013256 0ustar --- a/cmake/Modules/GrMiscUtils.cmake +++ b/cmake/Modules/GrMiscUtils.cmake @@ -144,9 +144,10 @@ ) #extras mode enabled automatically on linux - if(NOT DEFINED LIBRARY_EXTRAS) - set(LIBRARY_EXTRAS ${LINUX}) - endif() + #but not on Debian (to simplify library package names) + #if(NOT DEFINED LIBRARY_EXTRAS) + # set(LIBRARY_EXTRAS ${LINUX}) + #endif() #special extras mode to enable alternative naming conventions if(LIBRARY_EXTRAS) debian/patches/bsd-no-thread-affinity0000664000000000000000000000053712165550451015011 0ustar --- a/gnuradio-runtime/lib/thread/thread.cc +++ b/gnuradio-runtime/lib/thread/thread.cc @@ -115,7 +115,7 @@ } /* namespace gr */ -#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) || defined(__FreeBSD_kernel__) namespace gr { namespace thread { debian/patches/0010-gr-modtool-fix-typo-in-howtoConfig.cmake.patch0000664000000000000000000000165512256421615022040 0ustar From 21f6c0bc952498bfbd24b99bf481eb5de8fc3752 Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Mon, 9 Dec 2013 16:01:06 -0500 Subject: [PATCH 10/25] gr-modtool: fix typo in howtoConfig.cmake --- gr-utils/python/modtool/gr-newmod/cmake/Modules/howtoConfig.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gr-utils/python/modtool/gr-newmod/cmake/Modules/howtoConfig.cmake b/gr-utils/python/modtool/gr-newmod/cmake/Modules/howtoConfig.cmake index 329a007..88fbcad 100644 --- a/gr-utils/python/modtool/gr-newmod/cmake/Modules/howtoConfig.cmake +++ b/gr-utils/python/modtool/gr-newmod/cmake/Modules/howtoConfig.cmake @@ -6,7 +6,7 @@ FIND_PATH( NAMES howto/api.h HINTS $ENV{HOWTO_DIR}/include ${PC_HOWTO_INCLUDEDIR} - PATHS ${CMAKE_INSTALL_PREEFIX}/include + PATHS ${CMAKE_INSTALL_PREFIX}/include /usr/local/include /usr/include ) -- 1.7.10.4 debian/patches/0012-volk-clang-linux-avx-fix.patch0000664000000000000000000000457312256421615017007 0ustar From 7f9e9e19edbcfe9dc856f659f733bdd1c20d8b2c Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Tue, 10 Dec 2013 15:35:39 -0500 Subject: [PATCH 12/25] volk: clang/linux/avx fix cmake: findIce fix (search $CMAKE_INSTALL_PREFIX first for source installed 3.5 needed for clang) --- cmake/Modules/FindICE.cmake | 6 ++++++ volk/lib/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmake/Modules/FindICE.cmake b/cmake/Modules/FindICE.cmake index c1d18df..85144b3 100644 --- a/cmake/Modules/FindICE.cmake +++ b/cmake/Modules/FindICE.cmake @@ -39,6 +39,7 @@ FIND_PATH( ICE_INCLUDE_DIR NAMES IceUtil/IceUtil.h Ice/Ice.h NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/include HINTS ${ICE_PATH}/include ) @@ -53,26 +54,31 @@ endif(APPLE) FIND_LIBRARY( ICE_ICE ${ICE_LIB_PREFIX}Ice NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64 HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICESTORM ${ICE_LIB_PREFIX}IceStorm NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64 HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICEGRID ${ICE_LIB_PREFIX}IceGrid NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64 HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICEUTIL ${ICE_LIB_PREFIX}IceUtil NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64 HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_GLACIER2 Glacier2 NO_DEFAULT_PATH + HINTS ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64 HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) diff --git a/volk/lib/CMakeLists.txt b/volk/lib/CMakeLists.txt index eda3a10..4ac67bc 100644 --- a/volk/lib/CMakeLists.txt +++ b/volk/lib/CMakeLists.txt @@ -154,7 +154,7 @@ endif() # eliminate AVX if cvtpi32_ps intrinsic fails on Apple ######################################################################## -if(${HAVE_XGETBV} AND APPLE) +if(${HAVE_XGETBV}) # check to see if the compiler/linker works with cvtpi32_ps instrinsic file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_cvtpi32_ps.c "#include \nint main (void) {__m128 __a; __m64 __b; __m128 foo = _mm_cvtpi32_ps(__a, __b); return (0); }") execute_process(COMMAND ${CMAKE_C_COMPILER} -mavx -o -- 1.7.10.4 debian/patches/gr-vocoder-use-system-libraries0000664000000000000000000001073712257045711016713 0ustar --- a/gr-vocoder/lib/CMakeLists.txt +++ b/gr-vocoder/lib/CMakeLists.txt @@ -18,6 +18,89 @@ # Boston, MA 02110-1301, USA. ######################################################################## +# Check for system libsndfile.... +######################################################################## +if(NOT GR_USE_SYSTEM_LIBSNDFILE) + find_path(LIBSNDFILE_INCLUDE_DIR NAMES sndfile.h + PATHS + ${LIBSNDFILE_PKG_INCLUDE_DIRS} + /usr/include + ) + + find_library(LIBSNDFILE_LIBRARIES NAMES sndfile + PATHS + ${LIBSNDFILE_PKG_LIBRARY_DIRS} + /usr/lib + ) + +if(LIBSNDFILE_INCLUDE_DIR AND LIBSNDFILE_LIBRARIES) + set(GR_USE_SYSTEM_LIBSNDFILE TRUE CACHE INTERNAL "system libsndfile found") + message(STATUS "Found libsndfile: ${LIBSNDFILE_INCLUDE_DIR}, ${LIBSNDFILE_LIBRARIES}") +else(LIBSNDFILE_INCLUDE_DIR AND LIBSNDFILE_LIBRARIES) + set(GR_USE_SYSTEM_LIBSNDFILE FALSE CACHE INTERNAL "system libsndfile found") + message(STATUS "system libsndfile not found.") +endif(LIBSNDFILE_INCLUDE_DIR AND LIBSNDFILE_LIBRARIES) + +mark_as_advanced(LIBSNDFILE_INCLUDE_DIR LIBSNDFILE_LIBRARIES) +endif(NOT GR_USE_SYSTEM_LIBSNDFILE) + +######################################################################## +# Check for system libgsm.... +######################################################################## +if(NOT GR_USE_SYSTEM_LIBGSM) + find_path(LIBGSM_INCLUDE_DIR NAMES gsm.h + PATHS + ${LIBGSM_PKG_INCLUDE_DIRS} + /usr/include/gsm + /usr/include + ) + + find_library(LIBGSM_LIBRARIES NAMES gsm + PATHS + ${LIBGSM_PKG_LIBRARY_DIRS} + /usr/lib + ) + +if(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES) + set(GR_USE_SYSTEM_LIBGSM TRUE CACHE INTERNAL "system libgsm found") + message(STATUS "Found libgsm: ${LIBGSM_INCLUDE_DIR}, ${LIBGSM_LIBRARIES}") +else(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES) + set(GR_USE_SYSTEM_LIBGSM FALSE CACHE INTERNAL "system libgsm found") + message(STATUS "system libgsm not found.") +endif(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES) + +mark_as_advanced(LIBGSM_INCLUDE_DIR LIBGSM_LIBRARIES) +endif(NOT GR_USE_SYSTEM_LIBGSM) + +######################################################################## +# Check for system libcodec2.... +######################################################################## +if(NOT GR_USE_SYSTEM_LIBCODEC2) + find_path(LIBCODEC2_INCLUDE_DIR NAMES codec2.h + PATHS + ${LIBCODEC2_PKG_INCLUDE_DIRS} + /usr/include/codec2 + /usr/include + ) + + find_library(LIBCODEC2_LIBRARIES NAMES codec2 + PATHS + ${LIBCODEC2_PKG_LIBRARY_DIRS} + /usr/lib + ) + +if(LIBCODEC2_INCLUDE_DIR AND LIBCODEC2_LIBRARIES) + set(GR_USE_SYSTEM_LIBCODEC2 TRUE CACHE INTERNAL "system libcodec2 found") + message(STATUS "Found libcodec2: ${LIBCODEC2_INCLUDE_DIR}, ${LIBCODEC2_LIBRARIES}") +else(LIBCODEC2_INCLUDE_DIR AND LIBCODEC2_LIBRARIES) + set(GR_USE_SYSTEM_LIBCODEC2 FALSE CACHE INTERNAL "system libcodec2 found") + message(STATUS "system libcodec2 not found.") +endif(LIBCODEC2_INCLUDE_DIR AND LIBCODEC2_LIBRARIES) + +mark_as_advanced(LIBCODEC2_INCLUDE_DIR LIBCODEC2_LIBRARIES) +endif(NOT GR_USE_SYSTEM_LIBCODEC2) + +######################################################################## # Setup the include and linker paths ######################################################################## include_directories( @@ -77,15 +160,31 @@ ######################################################################## # Include subdirs rather to populate to the sources lists. ######################################################################## -GR_INCLUDE_SUBDIRECTORY(codec2) -GR_INCLUDE_SUBDIRECTORY(g7xx) -GR_INCLUDE_SUBDIRECTORY(gsm) +if(NOT GR_USE_SYSTEM_LIBCODEC2) + GR_INCLUDE_SUBDIRECTORY(codec2) +endif(NOT GR_USE_SYSTEM_LIBCODEC2) +# TODO - let sndfile replace use of code in g7xx directory +#if(NOT GR_USE_SYSTEM_LIBSNDFILE) + GR_INCLUDE_SUBDIRECTORY(g7xx) +#endif(NOT GR_USE_SYSTEM_LIBSNDFILE) +if(NOT GR_USE_SYSTEM_LIBGSM) + GR_INCLUDE_SUBDIRECTORY(gsm) +endif(NOT GR_USE_SYSTEM_LIBGSM) list(APPEND vocoder_libs gnuradio-runtime ${Boost_LIBRARIES} ${LOG4CPP_LIBRARIES} ) +if(GR_USE_SYSTEM_LIBCODEC2) + list(APPEND vocoder_libs ${LIBCODEC2_LIBRARIES}) +endif(GR_USE_SYSTEM_LIBCODEC2) +if(GR_USE_SYSTEM_LIBSNDFILE) + list(APPEND vocoder_libs ${LIBSNDFILE_LIBRARIES}) +endif(GR_USE_SYSTEM_LIBSNDFILE) +if(GR_USE_SYSTEM_LIBGSM) + list(APPEND vocoder_libs ${LIBGSM_LIBRARIES}) +endif(GR_USE_SYSTEM_LIBGSM) add_library(gnuradio-vocoder SHARED ${gr_vocoder_sources}) target_link_libraries(gnuradio-vocoder ${vocoder_libs}) debian/patches/0003-volk-using-union-for-float-to-int-conversion-in-volk.patch0000664000000000000000000000452712256421614024316 0ustar From 372081eb552242d947d6a93b7991c6077059a798 Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Sun, 1 Dec 2013 10:34:42 -0500 Subject: [PATCH 03/25] volk: using union for float to int conversion in volk_32f_invsqrt_32f. Removes warning about type-punned pointer. Also, produces noticeable speed increase using GCC, though slightly slower with clang. --- volk/kernels/volk/volk_32f_invsqrt_32f.h | 26 ++++++++++++++------------ volk/lib/testqa.cc | 1 + 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/volk/kernels/volk/volk_32f_invsqrt_32f.h b/volk/kernels/volk/volk_32f_invsqrt_32f.h index 17dfe3b..994eccf 100644 --- a/volk/kernels/volk/volk_32f_invsqrt_32f.h +++ b/volk/kernels/volk/volk_32f_invsqrt_32f.h @@ -4,22 +4,24 @@ #include #include #include +#include static inline float Q_rsqrt( float number ) { - long i; - float x2, y; - const float threehalfs = 1.5F; - - x2 = number * 0.5F; - y = number; - i = * ( long * ) &y; // evil floating point bit level hacking - i = 0x5f3759df - ( i >> 1 ); // what the fuck? - y = * ( float * ) &i; - y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration -// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed + float x2; + const float threehalfs = 1.5F; + union f32_to_i32 { + int32_t i; + float f; + } u; + + x2 = number * 0.5F; + u.f = number; + u.i = 0x5f3759df - ( u.i >> 1 ); // what the fuck? + u.f = u.f * ( threehalfs - ( x2 * u.f * u.f ) ); // 1st iteration + //u.f = u.f * ( threehalfs - ( x2 * u.f * u.f ) ); // 2nd iteration, this can be removed - return y; + return u.f; } #ifdef LV_HAVE_SSE diff --git a/volk/lib/testqa.cc b/volk/lib/testqa.cc index f5b0c07..d698c90 100644 --- a/volk/lib/testqa.cc +++ b/volk/lib/testqa.cc @@ -88,3 +88,4 @@ VOLK_RUN_TESTS(volk_32f_x2_multiply_32f, 1e-4, 0, 20462, 1); VOLK_RUN_TESTS(volk_32fc_s32fc_multiply_32fc, 1e-4, 0, 20462, 1); VOLK_RUN_TESTS(volk_32f_s32f_multiply_32f, 1e-4, 0, 20462, 1); VOLK_RUN_TESTS(volk_32fc_s32fc_rotatorpuppet_32fc, 1e-2, (lv_32fc_t)lv_cmake(0.953939201, 0.3), 20462, 1); +VOLK_RUN_TESTS(volk_32f_invsqrt_32f, 1e-2, 0, 20462, 1); -- 1.7.10.4 debian/patches/0021-volk-fixed-volk-build-to-be-independent-again-from-G.patch0000664000000000000000000002150112256421616024043 0ustar From 37fcb46ff02459d6d00368745e579c1d4b1f5f65 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Thu, 19 Dec 2013 11:59:30 -0500 Subject: [PATCH 21/25] volk: fixed volk build to be independent (again) from GR. Should rename GrPython.cmake to VolkPython.cmake. --- volk/CMakeLists.txt | 8 ++++-- volk/cmake/GrPython.cmake | 46 +++++++++++++++---------------- volk/python/volk_modtool/CMakeLists.txt | 8 +++--- volk/volk.pc.in | 2 +- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/volk/CMakeLists.txt b/volk/CMakeLists.txt index c362191..40572f3 100644 --- a/volk/CMakeLists.txt +++ b/volk/CMakeLists.txt @@ -51,8 +51,8 @@ SET(CROSSCOMPILE_MULTILIB ${CROSSCOMPILE_MULTILIB} CACHE STRING "Define \"true\" # Dependencies setup ######################################################################## include(GrPython) #sets PYTHON_EXECUTABLE and PYTHON_DASH_B -GR_PYTHON_CHECK_MODULE("python >= 2.5" sys "sys.version.split()[0] >= '2.5'" PYTHON_MIN_VER_FOUND) -GR_PYTHON_CHECK_MODULE("Cheetah >= 2.0.0" Cheetah "Cheetah.Version >= '2.0.0'" CHEETAH_FOUND) +VOLK_PYTHON_CHECK_MODULE("python >= 2.5" sys "sys.version.split()[0] >= '2.5'" PYTHON_MIN_VER_FOUND) +VOLK_PYTHON_CHECK_MODULE("Cheetah >= 2.0.0" Cheetah "Cheetah.Version >= '2.0.0'" CHEETAH_FOUND) if(NOT PYTHON_MIN_VER_FOUND) message(FATAL_ERROR "Python 2.5 or greater required to build VOLK") @@ -104,6 +104,10 @@ install( ######################################################################## # Install all headers in the include directories ######################################################################## +set(VOLK_RUNTIME_DIR bin) +set(VOLK_LIBRARY_DIR lib${LIB_SUFFIX}) +set(VOLK_INCLUDE_DIR include) + install( DIRECTORY ${CMAKE_SOURCE_DIR}/kernels/volk DESTINATION include COMPONENT "volk_devel" diff --git a/volk/cmake/GrPython.cmake b/volk/cmake/GrPython.cmake index 2d81001..907aedf 100644 --- a/volk/cmake/GrPython.cmake +++ b/volk/cmake/GrPython.cmake @@ -1,4 +1,4 @@ -# Copyright 2010-2011 Free Software Foundation, Inc. +# Copyright 2010-2011,2013 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -17,10 +17,10 @@ # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -if(DEFINED __INCLUDED_GR_PYTHON_CMAKE) +if(DEFINED __INCLUDED_VOLK_PYTHON_CMAKE) return() endif() -set(__INCLUDED_GR_PYTHON_CMAKE TRUE) +set(__INCLUDED_VOLK_PYTHON_CMAKE TRUE) ######################################################################## # Setup the python interpreter: @@ -70,7 +70,7 @@ endif(PYTHON_EXECUTABLE) # - cmd an additional command to run # - have the result variable to set ######################################################################## -macro(GR_PYTHON_CHECK_MODULE desc mod cmd have) +macro(VOLK_PYTHON_CHECK_MODULE desc mod cmd have) message(STATUS "") message(STATUS "Python checking for ${desc}") execute_process( @@ -92,40 +92,40 @@ except: exit(-1) message(STATUS "Python checking for ${desc} - not found") set(${have} FALSE) endif(${have} EQUAL 0) -endmacro(GR_PYTHON_CHECK_MODULE) +endmacro(VOLK_PYTHON_CHECK_MODULE) ######################################################################## -# Sets the python installation directory GR_PYTHON_DIR +# Sets the python installation directory VOLK_PYTHON_DIR ######################################################################## execute_process(COMMAND ${PYTHON_EXECUTABLE} -c " from distutils import sysconfig print sysconfig.get_python_lib(plat_specific=True, prefix='') -" OUTPUT_VARIABLE GR_PYTHON_DIR OUTPUT_STRIP_TRAILING_WHITESPACE +" OUTPUT_VARIABLE VOLK_PYTHON_DIR OUTPUT_STRIP_TRAILING_WHITESPACE ) -file(TO_CMAKE_PATH ${GR_PYTHON_DIR} GR_PYTHON_DIR) +file(TO_CMAKE_PATH ${VOLK_PYTHON_DIR} VOLK_PYTHON_DIR) ######################################################################## # Create an always-built target with a unique name -# Usage: GR_UNIQUE_TARGET( ) +# Usage: VOLK_UNIQUE_TARGET( ) ######################################################################## -function(GR_UNIQUE_TARGET desc) +function(VOLK_UNIQUE_TARGET desc) file(RELATIVE_PATH reldir ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib unique = hashlib.md5('${reldir}${ARGN}').hexdigest()[:5] print(re.sub('\\W', '_', '${desc} ${reldir} ' + unique))" OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE) add_custom_target(${_target} ALL DEPENDS ${ARGN}) -endfunction(GR_UNIQUE_TARGET) +endfunction(VOLK_UNIQUE_TARGET) ######################################################################## # Install python sources (also builds and installs byte-compiled python) ######################################################################## -function(GR_PYTHON_INSTALL) +function(VOLK_PYTHON_INSTALL) include(CMakeParseArgumentsCopy) - CMAKE_PARSE_ARGUMENTS(GR_PYTHON_INSTALL "" "DESTINATION;COMPONENT" "FILES;PROGRAMS" ${ARGN}) + CMAKE_PARSE_ARGUMENTS(VOLK_PYTHON_INSTALL "" "DESTINATION;COMPONENT" "FILES;PROGRAMS" ${ARGN}) #################################################################### - if(GR_PYTHON_INSTALL_FILES) + if(VOLK_PYTHON_INSTALL_FILES) #################################################################### install(${ARGN}) #installs regular python files @@ -133,7 +133,7 @@ function(GR_PYTHON_INSTALL) unset(pysrcfiles) unset(pycfiles) unset(pyofiles) - foreach(pyfile ${GR_PYTHON_INSTALL_FILES}) + foreach(pyfile ${VOLK_PYTHON_INSTALL_FILES}) get_filename_component(pyfile ${pyfile} ABSOLUTE) list(APPEND pysrcfiles ${pyfile}) @@ -173,13 +173,13 @@ function(GR_PYTHON_INSTALL) #create install rule and add generated files to target list set(python_install_gen_targets ${pycfiles} ${pyofiles}) install(FILES ${python_install_gen_targets} - DESTINATION ${GR_PYTHON_INSTALL_DESTINATION} - COMPONENT ${GR_PYTHON_INSTALL_COMPONENT} + DESTINATION ${VOLK_PYTHON_INSTALL_DESTINATION} + COMPONENT ${VOLK_PYTHON_INSTALL_COMPONENT} ) #################################################################### - elseif(GR_PYTHON_INSTALL_PROGRAMS) + elseif(VOLK_PYTHON_INSTALL_PROGRAMS) #################################################################### file(TO_NATIVE_PATH ${PYTHON_EXECUTABLE} pyexe_native) @@ -187,7 +187,7 @@ function(GR_PYTHON_INSTALL) set(pyexe_native /usr/bin/env python) endif() - foreach(pyfile ${GR_PYTHON_INSTALL_PROGRAMS}) + foreach(pyfile ${VOLK_PYTHON_INSTALL_PROGRAMS}) get_filename_component(pyfile_name ${pyfile} NAME) get_filename_component(pyfile ${pyfile} ABSOLUTE) string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" pyexefile "${pyfile}.exe") @@ -210,16 +210,16 @@ function(GR_PYTHON_INSTALL) endif() install(PROGRAMS ${pyexefile} RENAME ${pyfile_name} - DESTINATION ${GR_PYTHON_INSTALL_DESTINATION} - COMPONENT ${GR_PYTHON_INSTALL_COMPONENT} + DESTINATION ${VOLK_PYTHON_INSTALL_DESTINATION} + COMPONENT ${VOLK_PYTHON_INSTALL_COMPONENT} ) endforeach(pyfile) endif() - GR_UNIQUE_TARGET("pygen" ${python_install_gen_targets}) + VOLK_UNIQUE_TARGET("pygen" ${python_install_gen_targets}) -endfunction(GR_PYTHON_INSTALL) +endfunction(VOLK_PYTHON_INSTALL) ######################################################################## # Write the python helper script that generates byte code files diff --git a/volk/python/volk_modtool/CMakeLists.txt b/volk/python/volk_modtool/CMakeLists.txt index 6fb87f2..cf0ddce 100644 --- a/volk/python/volk_modtool/CMakeLists.txt +++ b/volk/python/volk_modtool/CMakeLists.txt @@ -22,18 +22,18 @@ ######################################################################## include(GrPython) -GR_PYTHON_INSTALL( +VOLK_PYTHON_INSTALL( FILES __init__.py cfg.py volk_modtool_generate.py - DESTINATION ${GR_PYTHON_DIR}/volk_modtool + DESTINATION ${VOLK_PYTHON_DIR}/volk_modtool COMPONENT "volk" ) -GR_PYTHON_INSTALL( +VOLK_PYTHON_INSTALL( PROGRAMS volk_modtool - DESTINATION ${GR_RUNTIME_DIR} + DESTINATION ${VOLK_RUNTIME_DIR} COMPONENT "volk" ) diff --git a/volk/volk.pc.in b/volk/volk.pc.in index 58e9767..8bb818c 100644 --- a/volk/volk.pc.in +++ b/volk/volk.pc.in @@ -9,6 +9,6 @@ Name: volk Description: VOLK: Vector Optimized Library of Kernels Requires: Version: @VERSION@ -Libs: -lvolk +Libs: -L${libdir} -lvolk Cflags: -I${includedir} ${LV_CXXFLAGS} -- 1.7.10.4 debian/patches/series0000664000000000000000000000311512262142757012044 0ustar 0001-Fix-a-typo-that-prevents-the-Max-block-from-working-.patch 0002-volk-removing-duplicate-entry-for-volk_8i_convert_16.patch 0003-volk-using-union-for-float-to-int-conversion-in-volk.patch 0004-math-fixes-fast_atan2-float-0-check.patch 0005-runtime-Moved-QA-code-that-uses-blocks-to-the-gr-blo.patch 0006-digital-fixed-for-d-b-q-psk-to-actually-use-differen.patch 0007-cmake-search-the-install-prefix-for-cppunit-incase-i.patch 0008-utils-fix-typo-in-gr_plot_const.patch 0009-runtime-Minor-cosmetic-typo-and-whitespace-correctio.patch 0010-gr-modtool-fix-typo-in-howtoConfig.cmake.patch 0011-digital-typo-fixed-to-sps-samples-symbol.patch 0012-volk-clang-linux-avx-fix.patch 0013-qtgui-fixed-issue-preventing-gr-qtgui-build-if-Pytho.patch 0014-blocks-bug-fix-in-tagged_stream_to_pdu-which-was-cau.patch 0015-qtgui-more-fixes-needed-to-turn-on-off-python-proper.patch 0016-volk-cleaned-up-32fc_x2_dot_prod_32fc-code.-Improved.patch 0017-volk-fixed-issue-with-size_t-comparison-of-std-strin.patch 0018-filter-fixed-issue-with-resampler-using-buffer-size-.patch 0019-qtgui-enables-use-of-QWT-6.1.patch 0020-cmake-allow-the-GR_REQUIRED_COMPONENTS-to-contain-VO.patch 0021-volk-fixed-volk-build-to-be-independent-again-from-G.patch 0022-pmt-adds-ability-to-handle-unicode-input-with-pmt_to.patch 0023-block-fix-msg_passing-hier-example.patch 0024-gr-fft-filter-Fix-uninitialized-pointers.patch 0025-pfb-decimator-Fix-leak.patch debian-soname debian-bsd-comedi volk-profile-no-rpath usr-bin-examples gr-vocoder-use-system-libraries bsd-usb bsd-fcd bsd-shm bsd-alsa bsd-no-thread-affinity debian-ICE-default-location debian/patches/0011-digital-typo-fixed-to-sps-samples-symbol.patch0000664000000000000000000000274412256421615022125 0ustar From cc05b53add9324e1108484a146f85c1d316020df Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 10 Dec 2013 15:45:11 -0500 Subject: [PATCH 11/25] digital: typo fixed to "sps" (samples/symbol). --- gr-digital/python/digital/generic_mod_demod.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gr-digital/python/digital/generic_mod_demod.py b/gr-digital/python/digital/generic_mod_demod.py index 92329e3..9cec8d8 100644 --- a/gr-digital/python/digital/generic_mod_demod.py +++ b/gr-digital/python/digital/generic_mod_demod.py @@ -125,7 +125,7 @@ class generic_mod(gr.hier_block2): self.pre_diff_code = pre_diff_code and self._constellation.apply_pre_diff_code() if self._samples_per_symbol < 2: - raise TypeError, ("sbp must be >= 2, is %f" % self._samples_per_symbol) + raise TypeError, ("sps must be >= 2, is %f" % self._samples_per_symbol) arity = pow(2,self.bits_per_symbol()) @@ -263,7 +263,7 @@ class generic_demod(gr.hier_block2): self._differential = differential if self._samples_per_symbol < 2: - raise TypeError, ("sbp must be >= 2, is %d" % self._samples_per_symbol) + raise TypeError, ("sps must be >= 2, is %d" % self._samples_per_symbol) # Only apply a predifferential coding if the constellation also supports it. self.pre_diff_code = pre_diff_code and self._constellation.apply_pre_diff_code() -- 1.7.10.4 debian/patches/0025-pfb-decimator-Fix-leak.patch0000664000000000000000000000134112256421616016402 0ustar From 928b17cb022815e4360bedf8c11fc8fe6572a854 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Mon, 16 Dec 2013 16:20:36 -0500 Subject: [PATCH 25/25] pfb-decimator : Fix leak. Address CID 1046270. Signed-off-by: Philip Balister --- gr-filter/lib/pfb_decimator_ccf_impl.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/gr-filter/lib/pfb_decimator_ccf_impl.cc b/gr-filter/lib/pfb_decimator_ccf_impl.cc index a9e5138..b025060 100644 --- a/gr-filter/lib/pfb_decimator_ccf_impl.cc +++ b/gr-filter/lib/pfb_decimator_ccf_impl.cc @@ -58,6 +58,7 @@ namespace gr { pfb_decimator_ccf_impl::~pfb_decimator_ccf_impl() { + delete d_rotator; } void -- 1.7.10.4 debian/patches/0006-digital-fixed-for-d-b-q-psk-to-actually-use-differen.patch0000664000000000000000000000421412256421615024025 0ustar From 0c4b56073ca93ef18cba0181ff7c1c60643782ec Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Thu, 5 Dec 2013 16:38:03 -0500 Subject: [PATCH 06/25] digital: fixed for d{b,q}psk to actually use differential modulations. --- gr-digital/python/digital/bpsk.py | 4 ++-- gr-digital/python/digital/qpsk.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gr-digital/python/digital/bpsk.py b/gr-digital/python/digital/bpsk.py index 57cf253..92f3254 100644 --- a/gr-digital/python/digital/bpsk.py +++ b/gr-digital/python/digital/bpsk.py @@ -117,7 +117,7 @@ class dbpsk_mod(bpsk_mod): def __init__(self, mod_code=None, *args, **kwargs): - super(dbpsk_mod, self).__init__(*args, **kwargs) + super(dbpsk_mod, self).__init__(differential=True, *args, **kwargs) # ///////////////////////////////////////////////////////////////////////////// # DBPSK demodulator @@ -139,7 +139,7 @@ class dbpsk_demod(bpsk_demod): def __init__(self, mod_code=None, *args, **kwargs): - super(dbpsk_demod, self).__init__(*args, **kwargs) + super(dbpsk_demod, self).__init__(differential=True, *args, **kwargs) # # Add these to the mod/demod registry diff --git a/gr-digital/python/digital/qpsk.py b/gr-digital/python/digital/qpsk.py index 859d981..1ed3357 100644 --- a/gr-digital/python/digital/qpsk.py +++ b/gr-digital/python/digital/qpsk.py @@ -149,7 +149,7 @@ class dqpsk_mod(qpsk_mod): __doc__ += shared_mod_args def __init__(self, mod_code=_def_mod_code, *args, **kwargs): - super(dqpsk_mod, self).__init__(mod_code, + super(dqpsk_mod, self).__init__(mod_code, True, *args, **kwargs) # ///////////////////////////////////////////////////////////////////////////// @@ -171,7 +171,7 @@ class dqpsk_demod(qpsk_demod): __doc__ += shared_demod_args def __init__(self, mod_code=_def_mod_code, *args, **kwargs): - super(dqpsk_demod, self).__init__(mod_code, + super(dqpsk_demod, self).__init__(mod_code, True, *args, **kwargs) # -- 1.7.10.4 debian/patches/0018-filter-fixed-issue-with-resampler-using-buffer-size-.patch0000664000000000000000000000675412256421616024337 0ustar From b3b8a1f4965f8283f2c3d22ae45b569b2fe6d713 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Wed, 18 Dec 2013 11:24:07 -0500 Subject: [PATCH 18/25] filter: fixed issue with resampler using buffer size information (always a mistake). The intent was to ask the scheduler for the maximum amount of data. Now, it plays it safe by asking for just enough the next time. Performance tests show it works well. --- gr-filter/lib/pfb_arb_resampler_ccf_impl.cc | 2 +- gr-filter/python/filter/qa_pfb_arb_resampler.py | 41 +++++++++++++++++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc b/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc index 23950f3..86782fa 100644 --- a/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc +++ b/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc @@ -67,7 +67,7 @@ namespace gr { unsigned ninputs = ninput_items_required.size(); if(noutput_items / relative_rate() < 1) { for(unsigned i = 0; i < ninputs; i++) - ninput_items_required[i] = max_output_buffer(i)-1; + ninput_items_required[i] = relative_rate() + history() - 1; } else { for(unsigned i = 0; i < ninputs; i++) diff --git a/gr-filter/python/filter/qa_pfb_arb_resampler.py b/gr-filter/python/filter/qa_pfb_arb_resampler.py index 674d508..bdc54b3 100755 --- a/gr-filter/python/filter/qa_pfb_arb_resampler.py +++ b/gr-filter/python/filter/qa_pfb_arb_resampler.py @@ -95,7 +95,7 @@ class test_pfb_arb_resampler(gr_unittest.TestCase): snk = blocks.vector_sink_c() self.tb.connect(signal, pfb, snk) - self.tb.run() + self.tb.run() Ntest = 50 L = len(snk.data()) @@ -103,7 +103,44 @@ class test_pfb_arb_resampler(gr_unittest.TestCase): # Get group delay and estimate of phase offset from the filter itself. delay = pfb.group_delay() phase = pfb.phase_offset(freq, fs) - + + # Create a timeline offset by the filter's group delay + t = map(lambda x: float(x)/(fs*rrate), xrange(delay, L+delay)) + + # Data of the sinusoid at frequency freq with the delay and phase offset. + expected_data = map(lambda x: math.cos(2.*math.pi*freq*x+phase) + \ + 1j*math.sin(2.*math.pi*freq*x+phase), t) + + dst_data = snk.data() + + self.assertComplexTuplesAlmostEqual(expected_data[-Ntest:], dst_data[-Ntest:], 2) + + def test_ccf_001(self): + N = 50000 # number of samples to use + fs = 5000.0 # baseband sampling rate + rrate = 0.75 # resampling rate + + nfilts = 32 + taps = filter.firdes.low_pass_2(nfilts, nfilts*fs, fs/4, fs/10, + attenuation_dB=80, + window=filter.firdes.WIN_BLACKMAN_hARRIS) + + freq = 211.123 + data = sig_source_c(fs, freq, 1, N) + signal = blocks.vector_source_c(data) + pfb = filter.pfb_arb_resampler_ccf(rrate, taps, nfilts) + snk = blocks.vector_sink_c() + + self.tb.connect(signal, pfb, snk) + self.tb.run() + + Ntest = 50 + L = len(snk.data()) + + # Get group delay and estimate of phase offset from the filter itself. + delay = pfb.group_delay() + phase = pfb.phase_offset(freq, fs) + # Create a timeline offset by the filter's group delay t = map(lambda x: float(x)/(fs*rrate), xrange(delay, L+delay)) -- 1.7.10.4 debian/patches/volk-profile-no-rpath0000664000000000000000000000051211730773744014714 0ustar --- a/volk/CMakeLists.txt +++ b/volk/CMakeLists.txt @@ -29,6 +29,7 @@ enable_testing() set(VERSION 0.1) set(LIBVER 0.0.0) +set(CMAKE_SKIP_BUILD_RPATH TRUE) set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) #allows this to be a sub-project set(CMAKE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) #allows this to be a sub-project debian/patches/bsd-fcd0000664000000000000000000000150412240043264012041 0ustar --- a/gr-fcd/lib/hid/hid-libusb.c +++ b/gr-fcd/lib/hid/hid-libusb.c @@ -250,7 +250,7 @@ } #endif /* INVASIVE_GET_USAGE */ -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) /* The FreeBSD version of libusb doesn't have this funciton. In mainline libusb, it's inlined in libusb.h. This function will bear a striking resemblence to that one, because there's about one way to code it. @@ -757,7 +757,11 @@ libusb_cancel_transfer(dev->transfer); while (!dev->cancelled) +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + libusb_handle_events(usb_context); +#else libusb_handle_events_completed(usb_context, &dev->cancelled); +#endif /* Now that the read thread is stopping, Wake any threads which are waiting on data (in hid_read_timeout()). Do this under a mutex to debian/patches/debian-ICE-default-location0000664000000000000000000000207412222650107015612 0ustar --- a/cmake/Modules/FindICE-3.5.cmake +++ b/cmake/Modules/FindICE-3.5.cmake @@ -37,7 +37,6 @@ FIND_PATH( ICE_INCLUDE_DIR NAMES IceUtil/IceUtil.h Ice/Ice.h - NO_DEFAULT_PATH HINTS ${ICE_PATH}/include ) @@ -51,34 +50,22 @@ FIND_LIBRARY( ICE_ICE ${ICE_LIB_PREFIX}Ice - NO_DEFAULT_PATH - HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICESTORM ${ICE_LIB_PREFIX}IceStorm - NO_DEFAULT_PATH - HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICEGRID ${ICE_LIB_PREFIX}IceGrid - NO_DEFAULT_PATH - HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_ICEUTIL ${ICE_LIB_PREFIX}IceUtil - NO_DEFAULT_PATH - HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_GLACIER2 Glacier2 - NO_DEFAULT_PATH - HINTS ${ICE_PATH}/lib ${ICE_PATH}/lib64 ) FIND_LIBRARY( ICE_PTHREAD NAMES pthread pthread-2.13 - HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/ - HINTS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} /lib/i386-linux-gnu /lib/x86_64-linux-gnu /usr/lib /lib /lib64 ENV LD_LIBRARY_PATH ) debian/patches/bsd-shm0000664000000000000000000000045612154246117012107 0ustar --- a/gnuradio-runtime/lib/CMakeLists.txt +++ b/gnuradio-runtime/lib/CMakeLists.txt @@ -144,7 +144,7 @@ ENDIF(HAVE_WINDOWS_H) #need to link with librt on ubuntu 11.10 for shm_* -if(LINUX) +if((LINUX) OR (CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")) list(APPEND gnuradio_runtime_libs rt) endif() debian/patches/0023-block-fix-msg_passing-hier-example.patch0000664000000000000000000000437712256421616021006 0ustar From a10e3ae6d7912e564e32b6d491282ac596c76a10 Mon Sep 17 00:00:00 2001 From: Sebastian Koslowski Date: Fri, 20 Dec 2013 15:24:28 +0100 Subject: [PATCH 23/25] block: fix msg_passing/hier/ example --- .../examples/msg_passing/hier/test_msg_hier_topblock.grc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gr-blocks/examples/msg_passing/hier/test_msg_hier_topblock.grc b/gr-blocks/examples/msg_passing/hier/test_msg_hier_topblock.grc index 896e42b..9cff22d 100644 --- a/gr-blocks/examples/msg_passing/hier/test_msg_hier_topblock.grc +++ b/gr-blocks/examples/msg_passing/hier/test_msg_hier_topblock.grc @@ -134,10 +134,10 @@ - TEST_MSG_HIER + test_msg_hier id - TEST_MSG_HIER_0 + test_msg_hier_0 _enabled @@ -153,31 +153,31 @@ - TEST_MSG_HIER_0 + test_msg_hier_0 blocks_message_debug_0 0 0 blocks_message_strobe_0 - TEST_MSG_HIER_0 + test_msg_hier_0 0 0 blocks_message_strobe_0_0 - TEST_MSG_HIER_0 + test_msg_hier_0 0 1 - TEST_MSG_HIER_0 + test_msg_hier_0 blocks_message_debug_0 0 1 - TEST_MSG_HIER_0 + test_msg_hier_0 blocks_message_debug_0 1 0 -- 1.7.10.4 debian/patches/0007-cmake-search-the-install-prefix-for-cppunit-incase-i.patch0000664000000000000000000000202412256421615024220 0ustar From a72796f56b9c6fd8f410c531ba050e9db2c46493 Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Thu, 5 Dec 2013 20:24:38 -0500 Subject: [PATCH 07/25] cmake: search the install prefix for cppunit incase it is installed there --- cmake/Modules/FindCppUnit.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/Modules/FindCppUnit.cmake b/cmake/Modules/FindCppUnit.cmake index 9af308f..f93ade3 100644 --- a/cmake/Modules/FindCppUnit.cmake +++ b/cmake/Modules/FindCppUnit.cmake @@ -15,6 +15,7 @@ PKG_CHECK_MODULES(PC_CPPUNIT "cppunit") FIND_PATH(CPPUNIT_INCLUDE_DIRS NAMES cppunit/TestCase.h HINTS ${PC_CPPUNIT_INCLUDE_DIR} + ${CMAKE_INSTALL_PREFIX}/include PATHS /usr/local/include /usr/include @@ -23,6 +24,8 @@ FIND_PATH(CPPUNIT_INCLUDE_DIRS FIND_LIBRARY(CPPUNIT_LIBRARIES NAMES cppunit HINTS ${PC_CPPUNIT_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 PATHS ${CPPUNIT_INCLUDE_DIRS}/../lib /usr/local/lib -- 1.7.10.4 debian/patches/0008-utils-fix-typo-in-gr_plot_const.patch0000664000000000000000000000231112256421615020421 0ustar From d27301fc967e14903202b12b45477ef0ed9b5998 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Fri, 6 Dec 2013 08:19:29 -0800 Subject: [PATCH 08/25] utils: fix typo in gr_plot_const --- gr-utils/python/utils/gr_plot_const | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gr-utils/python/utils/gr_plot_const b/gr-utils/python/utils/gr_plot_const index 749ad03..e2580dd 100755 --- a/gr-utils/python/utils/gr_plot_const +++ b/gr-utils/python/utils/gr_plot_const @@ -114,7 +114,7 @@ class draw_constellation: self.sp_const = self.fig.add_subplot(2,2,1, position=[0.575, 0.2, 0.4, 0.6]) self.sp_const.set_title(("Constellation"), fontsize=self.title_font_size, fontweight="bold") self.sp_const.set_xlabel("Inphase", fontsize=self.label_font_size, fontweight="bold") - self.sp_const.set_ylabel("Qaudrature", fontsize=self.label_font_size, fontweight="bold") + self.sp_const.set_ylabel("Quadrature", fontsize=self.label_font_size, fontweight="bold") self.plot_const = self.sp_const.plot(self.reals, self.imags, 'bo') # Add plots to mark current location of point between time and constellation plots -- 1.7.10.4 debian/patches/debian-bsd-comedi0000664000000000000000000000042112153450004013757 0ustar --- a/gr-comedi/CMakeLists.txt +++ b/gr-comedi/CMakeLists.txt @@ -30,7 +30,6 @@ include(GrComponent) GR_REGISTER_COMPONENT("gr-comedi" ENABLE_GR_COMEDI COMEDI_FOUND - LINUX #comedi uses linux specific device noces Boost_FOUND ENABLE_GNURADIO_RUNTIME ) debian/patches/0002-volk-removing-duplicate-entry-for-volk_8i_convert_16.patch0000664000000000000000000000214712256421614024337 0ustar From db6ef36340ddac8a0b5ec7eb67f293747c7e790c Mon Sep 17 00:00:00 2001 From: Doug Geiger Date: Sun, 1 Dec 2013 10:33:00 -0500 Subject: [PATCH 02/25] volk: removing duplicate entry for volk_8i_convert_16i. --- volk/apps/volk_profile.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/volk/apps/volk_profile.cc b/volk/apps/volk_profile.cc index aee72ef..3de6f23 100644 --- a/volk/apps/volk_profile.cc +++ b/volk/apps/volk_profile.cc @@ -102,7 +102,6 @@ int main(int argc, char *argv[]) { VOLK_PROFILE(volk_8ic_x2_multiply_conjugate_16ic, 0, 0, 204602, 400, &results); VOLK_PROFILE(volk_8ic_x2_s32f_multiply_conjugate_32fc, 1e-4, 100, 204602, 400, &results); VOLK_PROFILE(volk_8i_convert_16i, 0, 0, 204602, 20000, &results); - VOLK_PROFILE(volk_8i_convert_16i, 0, 0, 204602, 2000, &results); VOLK_PROFILE(volk_8i_s32f_convert_32f, 1e-4, 100, 204602, 2000, &results); //VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, lv_32fc_t(1.0, 0.5), 204602, 1000, &results); VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, 0, 204602, 1000, &results); -- 1.7.10.4 debian/patches/0001-Fix-a-typo-that-prevents-the-Max-block-from-working-.patch0000664000000000000000000000132712256421614024050 0ustar From 1f286ca086446eb8fa55c6cb90ebb55de35325cc Mon Sep 17 00:00:00 2001 From: Clayton Smith Date: Sun, 1 Dec 2013 10:03:48 -0500 Subject: [PATCH 01/25] Fix a typo that prevents the Max block from working in GNU Radio Companion when its IO Type is set to Short. --- gr-blocks/grc/blocks_max_xx.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gr-blocks/grc/blocks_max_xx.xml b/gr-blocks/grc/blocks_max_xx.xml index afbcae9..587b471 100644 --- a/gr-blocks/grc/blocks_max_xx.xml +++ b/gr-blocks/grc/blocks_max_xx.xml @@ -27,7 +27,7 @@ -- 1.7.10.4 debian/patches/0022-pmt-adds-ability-to-handle-unicode-input-with-pmt_to.patch0000664000000000000000000000216212256421616024276 0ustar From 5a0fa88289982428557150af5b2a98f076247197 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut <246tnt@gmail.com> Date: Thu, 19 Dec 2013 19:29:01 -0500 Subject: [PATCH 22/25] pmt: adds ability to handle unicode input with pmt_to_python. --- gnuradio-runtime/python/pmt/pmt_to_python.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gnuradio-runtime/python/pmt/pmt_to_python.py b/gnuradio-runtime/python/pmt/pmt_to_python.py index e551f4e..e4797f9 100644 --- a/gnuradio-runtime/python/pmt/pmt_to_python.py +++ b/gnuradio-runtime/python/pmt/pmt_to_python.py @@ -73,6 +73,7 @@ THE_TABLE = ( #python type, check pmt type, to python, from python (None, pmt.is_null, lambda x: None, lambda x: pmt.PMT_NIL), (bool, pmt.is_bool, pmt.to_bool, pmt.from_bool), (str, pmt.is_symbol, pmt.symbol_to_string, pmt.string_to_symbol), + (unicode, lambda x: False, None, lambda x: pmt.string_to_symbol(x.encode('utf-8'))), (int, pmt.is_integer, pmt.to_long, pmt.from_long), (long, pmt.is_uint64, lambda x: long(pmt.to_uint64(x)), pmt.from_uint64), (float, pmt.is_real, pmt.to_double, pmt.from_double), -- 1.7.10.4 debian/patches/0013-qtgui-fixed-issue-preventing-gr-qtgui-build-if-Pytho.patch0000664000000000000000000006102712256421615024315 0ustar From b22c1c0e8e4150a6cb33b1af75582d12d0aaed7a Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Thu, 12 Dec 2013 10:50:56 -0500 Subject: [PATCH 13/25] qtgui: fixed issue preventing gr-qtgui build if Python-dev is not installed (ENABLE_PYTHON=False). --- gr-qtgui/include/gnuradio/qtgui/const_sink_c.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/sink_c.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/sink_f.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/time_raster_sink_b.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/time_raster_sink_f.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/time_sink_c.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/time_sink_f.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h | 6 ++++++ gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h | 6 ++++++ gr-qtgui/lib/CMakeLists.txt | 7 ++++++- gr-qtgui/lib/const_sink_c_impl.cc | 2 ++ gr-qtgui/lib/const_sink_c_impl.h | 3 +++ gr-qtgui/lib/freq_sink_c_impl.cc | 2 ++ gr-qtgui/lib/freq_sink_c_impl.h | 3 +++ gr-qtgui/lib/freq_sink_f_impl.cc | 2 ++ gr-qtgui/lib/freq_sink_f_impl.h | 3 +++ gr-qtgui/lib/histogram_sink_f_impl.cc | 2 ++ gr-qtgui/lib/histogram_sink_f_impl.h | 3 +++ gr-qtgui/lib/sink_c_impl.cc | 2 ++ gr-qtgui/lib/sink_c_impl.h | 3 +++ gr-qtgui/lib/sink_f_impl.cc | 2 ++ gr-qtgui/lib/sink_f_impl.h | 3 +++ gr-qtgui/lib/time_raster_sink_b_impl.cc | 2 ++ gr-qtgui/lib/time_raster_sink_b_impl.h | 3 +++ gr-qtgui/lib/time_raster_sink_c_impl.cc | 2 ++ gr-qtgui/lib/time_raster_sink_c_impl.h | 3 +++ gr-qtgui/lib/time_raster_sink_f_impl.cc | 2 ++ gr-qtgui/lib/time_raster_sink_f_impl.h | 3 +++ gr-qtgui/lib/time_sink_c_impl.cc | 2 ++ gr-qtgui/lib/time_sink_c_impl.h | 3 +++ gr-qtgui/lib/time_sink_f_impl.cc | 2 ++ gr-qtgui/lib/time_sink_f_impl.h | 3 +++ gr-qtgui/lib/waterfall_sink_c_impl.cc | 2 ++ gr-qtgui/lib/waterfall_sink_c_impl.h | 3 +++ gr-qtgui/lib/waterfall_sink_f_impl.cc | 2 ++ gr-qtgui/lib/waterfall_sink_f_impl.h | 3 +++ 39 files changed, 143 insertions(+), 1 deletion(-) diff --git a/gr-qtgui/include/gnuradio/qtgui/const_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/const_sink_c.h index d430b6f..6b305f6 100644 --- a/gr-qtgui/include/gnuradio/qtgui/const_sink_c.h +++ b/gr-qtgui/include/gnuradio/qtgui/const_sink_c.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_CONST_SINK_C_H #define INCLUDED_QTGUI_CONST_SINK_C_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -61,7 +64,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_y_axis(double min, double max) = 0; virtual void set_x_axis(double min, double max) = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h index 667ee95..d0a4a3d 100644 --- a/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h +++ b/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_FREQ_SINK_C_H #define INCLUDED_QTGUI_FREQ_SINK_C_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -68,7 +71,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_fft_size(const int fftsize) = 0; virtual int fft_size() const = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h index 77e9159..25a4c80 100644 --- a/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_FREQ_SINK_F_H #define INCLUDED_QTGUI_FREQ_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -68,7 +71,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_fft_size(const int fftsize) = 0; virtual int fft_size() const = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h index 193c786..07ad124 100644 --- a/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_HISTOGRAM_SINK_F_H #define INCLUDED_QTGUI_HISTOGRAM_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -82,7 +85,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif public: virtual std::string title() = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/sink_c.h b/gr-qtgui/include/gnuradio/qtgui/sink_c.h index 9b30e74..d1c35eb 100644 --- a/gr-qtgui/include/gnuradio/qtgui/sink_c.h +++ b/gr-qtgui/include/gnuradio/qtgui/sink_c.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_SINK_C_H #define INCLUDED_QTGUI_SINK_C_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -74,7 +77,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_fft_size(const int fftsize) = 0; virtual int fft_size() const = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/sink_f.h b/gr-qtgui/include/gnuradio/qtgui/sink_f.h index 99e4994..7d56a7a 100644 --- a/gr-qtgui/include/gnuradio/qtgui/sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_SINK_F_H #define INCLUDED_QTGUI_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -74,7 +77,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_fft_size(const int fftsize) = 0; virtual int fft_size() const = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_b.h b/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_b.h index 22130e5..5304dd4 100644 --- a/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_b.h +++ b/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_b.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_TIME_RASTER_SINK_B_H #define INCLUDED_QTGUI_TIME_RASTER_SINK_B_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -73,7 +76,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_update_time(double t) = 0; virtual void set_title(const std::string &title) = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_f.h index 5a82587..2c13265 100644 --- a/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/time_raster_sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_TIME_RASTER_SINK_F_H #define INCLUDED_QTGUI_TIME_RASTER_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -70,7 +73,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_update_time(double t) = 0; virtual void set_title(const std::string &title) = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h index d5b50ad..f02226c 100644 --- a/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h +++ b/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_TIME_SINK_C_H #define INCLUDED_QTGUI_TIME_SINK_C_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -66,7 +69,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_y_axis(double min, double max) = 0; virtual void set_update_time(double t) = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h index 575e6c8..64e347b 100644 --- a/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_TIME_SINK_F_H #define INCLUDED_QTGUI_TIME_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -64,7 +67,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void set_y_axis(double min, double max) = 0; virtual void set_update_time(double t) = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h index 74b94bb..e1e27a4 100644 --- a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h +++ b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_WATERFALL_SINK_C_H #define INCLUDED_QTGUI_WATERFALL_SINK_C_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -75,7 +78,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void clear_data() = 0; diff --git a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h index 8b6fce2..006f592 100644 --- a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h +++ b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h @@ -23,7 +23,10 @@ #ifndef INCLUDED_QTGUI_WATERFALL_SINK_F_H #define INCLUDED_QTGUI_WATERFALL_SINK_F_H +#ifdef ENABLE_PYTHON #include +#endif + #include #include #include @@ -74,7 +77,10 @@ namespace gr { QWidget *parent=NULL); virtual void exec_() = 0; + +#ifdef ENABLE_PYTHON virtual PyObject* pyqwidget() = 0; +#endif virtual void clear_data() = 0; diff --git a/gr-qtgui/lib/CMakeLists.txt b/gr-qtgui/lib/CMakeLists.txt index 257f03a..93c3493 100644 --- a/gr-qtgui/lib/CMakeLists.txt +++ b/gr-qtgui/lib/CMakeLists.txt @@ -143,11 +143,16 @@ list(APPEND qtgui_libs volk ${QWT_LIBRARIES} ${QT_LIBRARIES} - ${PYTHON_LIBRARIES} ${FFTW3F_LIBRARIES} ${LOG4CPP_LIBRARIES} ) +if(ENABLE_PYTHON) + list(APPEND qtgui_libs + ${PYTHON_LIBRARIES} + ) +endif(ENABLE_PYTHON) + add_definitions(-DQWT_DLL) #setup QWT library linkage add_library(gnuradio-qtgui SHARED ${qtgui_srcs}) target_link_libraries(gnuradio-qtgui ${qtgui_libs}) diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc index 05c7c5d..c4651fc 100644 --- a/gr-qtgui/lib/const_sink_c_impl.cc +++ b/gr-qtgui/lib/const_sink_c_impl.cc @@ -129,6 +129,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* const_sink_c_impl::pyqwidget() { @@ -136,6 +137,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void const_sink_c_impl::set_y_axis(double min, double max) diff --git a/gr-qtgui/lib/const_sink_c_impl.h b/gr-qtgui/lib/const_sink_c_impl.h index a74eac6..e2faa72 100644 --- a/gr-qtgui/lib/const_sink_c_impl.h +++ b/gr-qtgui/lib/const_sink_c_impl.h @@ -67,7 +67,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_y_axis(double min, double max); void set_x_axis(double min, double max); diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc index 473aa6d..c210278 100644 --- a/gr-qtgui/lib/freq_sink_c_impl.cc +++ b/gr-qtgui/lib/freq_sink_c_impl.cc @@ -153,6 +153,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* freq_sink_c_impl::pyqwidget() { @@ -160,6 +161,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void freq_sink_c_impl::set_fft_size(const int fftsize) diff --git a/gr-qtgui/lib/freq_sink_c_impl.h b/gr-qtgui/lib/freq_sink_c_impl.h index cadab9c..8079c81 100644 --- a/gr-qtgui/lib/freq_sink_c_impl.h +++ b/gr-qtgui/lib/freq_sink_c_impl.h @@ -84,7 +84,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_fft_size(const int fftsize); int fft_size() const; diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc index 5e2f38b..e3baeb0 100644 --- a/gr-qtgui/lib/freq_sink_f_impl.cc +++ b/gr-qtgui/lib/freq_sink_f_impl.cc @@ -153,6 +153,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* freq_sink_f_impl::pyqwidget() { @@ -160,6 +161,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void freq_sink_f_impl::set_fft_size(const int fftsize) diff --git a/gr-qtgui/lib/freq_sink_f_impl.h b/gr-qtgui/lib/freq_sink_f_impl.h index bd9ff65..c7e9fe8 100644 --- a/gr-qtgui/lib/freq_sink_f_impl.h +++ b/gr-qtgui/lib/freq_sink_f_impl.h @@ -84,7 +84,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_fft_size(const int fftsize); int fft_size() const; diff --git a/gr-qtgui/lib/histogram_sink_f_impl.cc b/gr-qtgui/lib/histogram_sink_f_impl.cc index 7519e18..843571a 100644 --- a/gr-qtgui/lib/histogram_sink_f_impl.cc +++ b/gr-qtgui/lib/histogram_sink_f_impl.cc @@ -132,6 +132,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* histogram_sink_f_impl::pyqwidget() { @@ -139,6 +140,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void histogram_sink_f_impl::set_y_axis(double min, double max) diff --git a/gr-qtgui/lib/histogram_sink_f_impl.h b/gr-qtgui/lib/histogram_sink_f_impl.h index fb1b5c6..e255889 100644 --- a/gr-qtgui/lib/histogram_sink_f_impl.h +++ b/gr-qtgui/lib/histogram_sink_f_impl.h @@ -69,7 +69,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_y_axis(double min, double max); void set_x_axis(double min, double max); diff --git a/gr-qtgui/lib/sink_c_impl.cc b/gr-qtgui/lib/sink_c_impl.cc index a5fd74a..55ccb4a 100644 --- a/gr-qtgui/lib/sink_c_impl.cc +++ b/gr-qtgui/lib/sink_c_impl.cc @@ -160,6 +160,7 @@ namespace gr { return d_main_gui->qwidget(); } +#ifdef ENABLE_PYTHON PyObject* sink_c_impl::pyqwidget() { @@ -167,6 +168,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void sink_c_impl::set_fft_size(const int fftsize) diff --git a/gr-qtgui/lib/sink_c_impl.h b/gr-qtgui/lib/sink_c_impl.h index 4bf9ec6..56c90f3 100644 --- a/gr-qtgui/lib/sink_c_impl.h +++ b/gr-qtgui/lib/sink_c_impl.h @@ -82,7 +82,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_fft_size(const int fftsize); int fft_size() const; diff --git a/gr-qtgui/lib/sink_f_impl.cc b/gr-qtgui/lib/sink_f_impl.cc index b85ebdb..ce26d6b 100644 --- a/gr-qtgui/lib/sink_f_impl.cc +++ b/gr-qtgui/lib/sink_f_impl.cc @@ -152,6 +152,7 @@ namespace gr { return d_main_gui->qwidget(); } +#ifdef ENABLE_PYTHON PyObject* sink_f_impl::pyqwidget() { @@ -159,6 +160,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void sink_f_impl::set_fft_size(const int fftsize) diff --git a/gr-qtgui/lib/sink_f_impl.h b/gr-qtgui/lib/sink_f_impl.h index 86593be..801a200 100644 --- a/gr-qtgui/lib/sink_f_impl.h +++ b/gr-qtgui/lib/sink_f_impl.h @@ -80,7 +80,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_fft_size(const int fftsize); int fft_size() const; diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.cc b/gr-qtgui/lib/time_raster_sink_b_impl.cc index 98ccc6b..dcf21a6 100644 --- a/gr-qtgui/lib/time_raster_sink_b_impl.cc +++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc @@ -149,6 +149,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* time_raster_sink_b_impl::pyqwidget() { @@ -156,6 +157,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void time_raster_sink_b_impl::set_update_time(double t) diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.h b/gr-qtgui/lib/time_raster_sink_b_impl.h index 0b02d53..6800568 100644 --- a/gr-qtgui/lib/time_raster_sink_b_impl.h +++ b/gr-qtgui/lib/time_raster_sink_b_impl.h @@ -75,7 +75,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_update_time(double t); void set_title(const std::string &title); diff --git a/gr-qtgui/lib/time_raster_sink_c_impl.cc b/gr-qtgui/lib/time_raster_sink_c_impl.cc index 93eba63..9bfa98a 100644 --- a/gr-qtgui/lib/time_raster_sink_c_impl.cc +++ b/gr-qtgui/lib/time_raster_sink_c_impl.cc @@ -114,6 +114,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* time_raster_sink_c_impl::pyqwidget() { @@ -121,6 +122,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void time_raster_sink_c_impl::set_update_time(double t) diff --git a/gr-qtgui/lib/time_raster_sink_c_impl.h b/gr-qtgui/lib/time_raster_sink_c_impl.h index 8263046..b9efea2 100644 --- a/gr-qtgui/lib/time_raster_sink_c_impl.h +++ b/gr-qtgui/lib/time_raster_sink_c_impl.h @@ -64,7 +64,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_update_time(double t); void set_title(const std::string &title); diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.cc b/gr-qtgui/lib/time_raster_sink_f_impl.cc index b2a9345..014c981 100644 --- a/gr-qtgui/lib/time_raster_sink_f_impl.cc +++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc @@ -147,6 +147,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* time_raster_sink_f_impl::pyqwidget() { @@ -154,6 +155,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void time_raster_sink_f_impl::set_update_time(double t) diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.h b/gr-qtgui/lib/time_raster_sink_f_impl.h index 3609bf3..f7caf75 100644 --- a/gr-qtgui/lib/time_raster_sink_f_impl.h +++ b/gr-qtgui/lib/time_raster_sink_f_impl.h @@ -74,7 +74,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_update_time(double t); void set_title(const std::string &title); diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc index e237bce..7eb1dd5 100644 --- a/gr-qtgui/lib/time_sink_c_impl.cc +++ b/gr-qtgui/lib/time_sink_c_impl.cc @@ -134,6 +134,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* time_sink_c_impl::pyqwidget() { @@ -141,6 +142,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void time_sink_c_impl::set_y_axis(double min, double max) diff --git a/gr-qtgui/lib/time_sink_c_impl.h b/gr-qtgui/lib/time_sink_c_impl.h index 67c4f32..03dcbe2 100644 --- a/gr-qtgui/lib/time_sink_c_impl.h +++ b/gr-qtgui/lib/time_sink_c_impl.h @@ -85,7 +85,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_y_axis(double min, double max); void set_update_time(double t); diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc index 96d62fd..0c8e765 100644 --- a/gr-qtgui/lib/time_sink_f_impl.cc +++ b/gr-qtgui/lib/time_sink_f_impl.cc @@ -136,6 +136,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* time_sink_f_impl::pyqwidget() { @@ -143,6 +144,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void time_sink_f_impl::set_y_axis(double min, double max) diff --git a/gr-qtgui/lib/time_sink_f_impl.h b/gr-qtgui/lib/time_sink_f_impl.h index 8e6a3a5..bbad48d 100644 --- a/gr-qtgui/lib/time_sink_f_impl.h +++ b/gr-qtgui/lib/time_sink_f_impl.h @@ -85,7 +85,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void set_y_axis(double min, double max); void set_update_time(double t); diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc index 0a7779d..ee74f96 100644 --- a/gr-qtgui/lib/waterfall_sink_c_impl.cc +++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc @@ -152,6 +152,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* waterfall_sink_c_impl::pyqwidget() { @@ -159,6 +160,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void waterfall_sink_c_impl::clear_data() diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.h b/gr-qtgui/lib/waterfall_sink_c_impl.h index bf729f3..95781c5 100644 --- a/gr-qtgui/lib/waterfall_sink_c_impl.h +++ b/gr-qtgui/lib/waterfall_sink_c_impl.h @@ -82,7 +82,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void clear_data(); diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc index b629973..3be4f14 100644 --- a/gr-qtgui/lib/waterfall_sink_f_impl.cc +++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc @@ -151,6 +151,7 @@ namespace gr { return d_main_gui; } +#ifdef ENABLE_PYTHON PyObject* waterfall_sink_f_impl::pyqwidget() { @@ -158,6 +159,7 @@ namespace gr { PyObject *retarg = Py_BuildValue("N", w); return retarg; } +#endif void waterfall_sink_f_impl::clear_data() diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.h b/gr-qtgui/lib/waterfall_sink_f_impl.h index 54a0cec..97c6aa2 100644 --- a/gr-qtgui/lib/waterfall_sink_f_impl.h +++ b/gr-qtgui/lib/waterfall_sink_f_impl.h @@ -82,7 +82,10 @@ namespace gr { void exec_(); QWidget* qwidget(); + +#ifdef ENABLE_PYTHON PyObject* pyqwidget(); +#endif void clear_data(); -- 1.7.10.4 debian/patches/bsd-alsa0000664000000000000000000000270412153452074012236 0ustar --- a/gr-audio/lib/CMakeLists.txt +++ b/gr-audio/lib/CMakeLists.txt @@ -45,7 +45,7 @@ ######################################################################## find_package(ALSA) -if(ALSA_FOUND) +if((ALSA_FOUND) AND NOT (CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")) include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/alsa) include_directories(${ALSA_INCLUDE_DIRS}) --- a/gr-audio/lib/alsa/alsa_source.cc +++ b/gr-audio/lib/alsa/alsa_source.cc @@ -473,7 +473,7 @@ } continue; // try again } - +#ifdef ESTRPIPE else if(r == -ESTRPIPE) { // h/w is suspended (whatever that means) // This is apparently related to power management d_nsuspends++; @@ -483,7 +483,7 @@ } continue; // try again } - +#endif else if(r < 0) { output_error_msg("snd_pcm_readi failed", r); return false; --- a/gr-audio/lib/alsa/alsa_sink.cc +++ b/gr-audio/lib/alsa/alsa_sink.cc @@ -507,7 +507,7 @@ } continue; // try again } - +#ifdef ESTRPIPE else if(r == -ESTRPIPE) { // h/w is suspended (whatever that means) // This is apparently related to power management d_nsuspends++; @@ -517,7 +517,7 @@ } continue; // try again } - +#endif else if (r < 0) { output_error_msg("snd_pcm_writei failed", r); return false; debian/patches/0014-blocks-bug-fix-in-tagged_stream_to_pdu-which-was-cau.patch0000664000000000000000000000470512256421615024270 0ustar From 061fb8a95a4c8a073d6a87d14290848bef03090f Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Fri, 13 Dec 2013 11:36:50 -0500 Subject: [PATCH 14/25] blocks: bug fix in tagged_stream_to_pdu which was causing memory corruption and missing/zeroed trailing ends to pdu data vectors --- gr-blocks/lib/tagged_stream_to_pdu_impl.cc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gr-blocks/lib/tagged_stream_to_pdu_impl.cc b/gr-blocks/lib/tagged_stream_to_pdu_impl.cc index e2ca5cc..da89403 100644 --- a/gr-blocks/lib/tagged_stream_to_pdu_impl.cc +++ b/gr-blocks/lib/tagged_stream_to_pdu_impl.cc @@ -88,27 +88,27 @@ namespace gr { // copy any tags in this range into our meta object get_tags_in_range(d_tags, 0, abs_N, abs_N+ncopy); for (d_tags_itr = d_tags.begin(); d_tags_itr != d_tags.end(); d_tags_itr++) - if(!pmt::eq((*d_tags_itr).key, d_tag )) - d_pdu_meta = dict_add(d_pdu_meta, (*d_tags_itr).key, (*d_tags_itr).value); + if(!pmt::eq((*d_tags_itr).key, d_tag )) + d_pdu_meta = dict_add(d_pdu_meta, (*d_tags_itr).key, (*d_tags_itr).value); // copy samples for this vector into either a pmt or our save buffer if (ncopy == d_pdu_remain) { // we will send this pdu - if (d_save.size() == 0) { - d_pdu_vector = pdu::make_pdu_vector(d_type, in, ncopy); - send_message(); - } - else { - size_t oldsize = d_save.size(); - d_save.resize((oldsize + ncopy)*d_itemsize, 0); - memcpy(&d_save[oldsize*d_itemsize], in, ncopy*d_itemsize); - d_pdu_vector = pdu::make_pdu_vector(d_type, &d_save[0], d_pdu_length); - send_message(); - d_save.clear(); + if (d_save.size() == 0) { + d_pdu_vector = pdu::make_pdu_vector(d_type, in, ncopy); + send_message(); + } + else { + size_t oldsize = d_save.size()/d_itemsize; + d_save.resize((oldsize + ncopy)*d_itemsize, 0); + memcpy(&d_save[oldsize*d_itemsize], in, ncopy*d_itemsize); + d_pdu_vector = pdu::make_pdu_vector(d_type, &d_save[0], d_pdu_length); + send_message(); + d_save.clear(); } } else { + size_t oldsize = d_save.size()/d_itemsize; d_inpdu = true; - size_t oldsize = d_save.size(); d_save.resize((oldsize+ncopy)*d_itemsize); memcpy(&d_save[oldsize*d_itemsize], in, ncopy*d_itemsize); d_pdu_remain -= ncopy; -- 1.7.10.4 debian/patches/0024-gr-fft-filter-Fix-uninitialized-pointers.patch0000664000000000000000000000240612256421616022135 0ustar From 2211b4c9c27d6ec566dc95b0361ed3e7b4b820e6 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Mon, 16 Dec 2013 15:40:24 -0500 Subject: [PATCH 24/25] gr-fft-filter : Fix uninitialized pointers. Address CID's 1043252 and 1043253. Inspection suggest the code should work, but set the pointers to NULL to force errors on strange code paths. Signed-off-by: Philip Balister --- gr-filter/lib/fft_filter.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gr-filter/lib/fft_filter.cc b/gr-filter/lib/fft_filter.cc index b4cea0e..8293757 100644 --- a/gr-filter/lib/fft_filter.cc +++ b/gr-filter/lib/fft_filter.cc @@ -39,7 +39,7 @@ namespace gr { const std::vector &taps, int nthreads) : d_fftsize(-1), d_decimation(decimation), d_fwdfft(0), - d_invfft(0), d_nthreads(nthreads) + d_invfft(0), d_nthreads(nthreads), d_xformed_taps(NULL) { set_taps(taps); } @@ -192,7 +192,7 @@ namespace gr { const std::vector &taps, int nthreads) : d_fftsize(-1), d_decimation(decimation), d_fwdfft(0), - d_invfft(0), d_nthreads(nthreads) + d_invfft(0), d_nthreads(nthreads), d_xformed_taps(NULL) { set_taps(taps); } -- 1.7.10.4 debian/patches/0009-runtime-Minor-cosmetic-typo-and-whitespace-correctio.patch0000664000000000000000000000412312256421615024455 0ustar From 9a72fbbbc55f27bd01dfcfac2fa90b950c5c076d Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Sat, 7 Dec 2013 13:57:43 +0100 Subject: [PATCH 09/25] runtime: Minor cosmetic typo and whitespace corrections. Signed-off-by: Moritz Fischer --- gnuradio-runtime/include/gnuradio/buffer.h | 2 +- gnuradio-runtime/lib/buffer.cc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gnuradio-runtime/include/gnuradio/buffer.h b/gnuradio-runtime/include/gnuradio/buffer.h index 4e95783..e2d5760 100644 --- a/gnuradio-runtime/include/gnuradio/buffer.h +++ b/gnuradio-runtime/include/gnuradio/buffer.h @@ -31,7 +31,7 @@ #include namespace gr { - + class vmcircbuf; /*! diff --git a/gnuradio-runtime/lib/buffer.cc b/gnuradio-runtime/lib/buffer.cc index afa3efa..162324e 100644 --- a/gnuradio-runtime/lib/buffer.cc +++ b/gnuradio-runtime/lib/buffer.cc @@ -40,7 +40,7 @@ namespace gr { /* ---------------------------------------------------------------------------- Notes on storage management - + Pretty much all the fundamental classes are now using the shared_ptr stuff for automatic reference counting. To ensure that no mistakes are made, we make the constructors for classes private, @@ -68,7 +68,7 @@ namespace gr { /* * Compute the minimum number of buffer items that work (i.e., * address space wrap-around works). To work is to satisfy this - * contraint for integer buffer_size and k: + * constraint for integer buffer_size and k: * * type_size * nitems == k * page_size */ @@ -79,7 +79,7 @@ namespace gr { } - buffer::buffer(int nitems, size_t sizeof_item, block_sptr link) + buffer::buffer(int nitems, size_t sizeof_item, block_sptr link) : d_base(0), d_bufsize(0), d_max_reader_delay(0), d_vmcircbuf(0), d_sizeof_item(sizeof_item), d_link(link), d_write_index(0), d_abs_write_offset(0), d_done(false), @@ -356,7 +356,7 @@ namespace gr { v.back().marked_deleted.clear(); } } - + itr++; } } -- 1.7.10.4 debian/patches/usr-bin-examples0000664000000000000000000000135312153450022013731 0ustar --- a/gr-fcd/examples/c++/CMakeLists.txt +++ b/gr-fcd/examples/c++/CMakeLists.txt @@ -32,6 +32,6 @@ INSTALL(TARGETS fcd_nfm_rx - DESTINATION ${GR_PKG_FCD_EXAMPLES_DIR} + DESTINATION ${GR_RUNTIME_DIR} COMPONENT "fcd_examples" ) --- a/gr-audio/examples/c++/CMakeLists.txt +++ b/gr-audio/examples/c++/CMakeLists.txt @@ -30,6 +30,6 @@ INSTALL(TARGETS dial_tone - DESTINATION ${GR_PKG_AUDIO_EXAMPLES_DIR} + DESTINATION ${GR_RUNTIME_DIR} COMPONENT "audio_examples" ) --- a/gr-uhd/examples/c++/CMakeLists.txt +++ b/gr-uhd/examples/c++/CMakeLists.txt @@ -39,6 +39,6 @@ INSTALL(TARGETS tags_demo - DESTINATION ${GR_PKG_UHD_EXAMPLES_DIR} + DESTINATION ${GR_RUNTIME_DIR} COMPONENT "uhd_examples" ) debian/patches/0015-qtgui-more-fixes-needed-to-turn-on-off-python-proper.patch0000664000000000000000000000217012256421616024273 0ustar From 39688a01cd0b91a366465bf7e9beeb7bfeb74087 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 15 Dec 2013 15:17:27 -0500 Subject: [PATCH 15/25] qtgui: more fixes needed to turn on/off python properly for sip calls. --- gr-qtgui/lib/CMakeLists.txt | 2 ++ gr-qtgui/swig/CMakeLists.txt | 3 +++ 2 files changed, 5 insertions(+) diff --git a/gr-qtgui/lib/CMakeLists.txt b/gr-qtgui/lib/CMakeLists.txt index 93c3493..afaadb9 100644 --- a/gr-qtgui/lib/CMakeLists.txt +++ b/gr-qtgui/lib/CMakeLists.txt @@ -147,7 +147,9 @@ list(APPEND qtgui_libs ${LOG4CPP_LIBRARIES} ) +include(GrPython) if(ENABLE_PYTHON) + add_definitions(-DENABLE_PYTHON) list(APPEND qtgui_libs ${PYTHON_LIBRARIES} ) diff --git a/gr-qtgui/swig/CMakeLists.txt b/gr-qtgui/swig/CMakeLists.txt index 1c9a182..5207318 100644 --- a/gr-qtgui/swig/CMakeLists.txt +++ b/gr-qtgui/swig/CMakeLists.txt @@ -23,6 +23,9 @@ include(GrPython) include(GrSwig) +add_definitions(-DENABLE_PYTHON) +list(APPEND GR_SWIG_FLAGS "-DENABLE_PYTHON") + set(GR_SWIG_INCLUDE_DIRS ${GR_QTGUI_INCLUDE_DIRS} ${GR_FFT_INCLUDE_DIRS} -- 1.7.10.4 debian/patches/0016-volk-cleaned-up-32fc_x2_dot_prod_32fc-code.-Improved.patch0000664000000000000000000003733612256421616023657 0ustar From 6fe3c4d66648472c108a204e7f3f69f0bc49ecdc Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 17 Dec 2013 14:01:13 -0500 Subject: [PATCH 16/25] volk: cleaned up 32fc_x2_dot_prod_32fc code. Improved results; fixed on OS X. - Added unaligned versions of kernels. - Fixed issues with tail handling - Use _mm_setzero_ps instead of subtracting to zero out values --- volk/kernels/volk/volk_32fc_x2_dot_prod_32fc.h | 313 +++++++++++++++++++----- volk/lib/testqa.cc | 2 +- 2 files changed, 258 insertions(+), 57 deletions(-) diff --git a/volk/kernels/volk/volk_32fc_x2_dot_prod_32fc.h b/volk/kernels/volk/volk_32fc_x2_dot_prod_32fc.h index 066bed4..657fa31 100644 --- a/volk/kernels/volk/volk_32fc_x2_dot_prod_32fc.h +++ b/volk/kernels/volk/volk_32fc_x2_dot_prod_32fc.h @@ -16,45 +16,168 @@ static inline void volk_32fc_x2_dot_prod_32fc_generic(lv_32fc_t* result, const l float * in = (float*) input; float * tp = (float*) taps; unsigned int n_2_ccomplex_blocks = num_points/2; - unsigned int isodd = num_points &1; - - + unsigned int isodd = num_points & 1; float sum0[2] = {0,0}; float sum1[2] = {0,0}; unsigned int i = 0; - for(i = 0; i < n_2_ccomplex_blocks; ++i) { - - sum0[0] += in[0] * tp[0] - in[1] * tp[1]; sum0[1] += in[0] * tp[1] + in[1] * tp[0]; sum1[0] += in[2] * tp[2] - in[3] * tp[3]; sum1[1] += in[2] * tp[3] + in[3] * tp[2]; - in += 4; tp += 4; - } - res[0] = sum0[0] + sum1[0]; res[1] = sum0[1] + sum1[1]; + // Cleanup if we had an odd number of points + for(i = 0; i < isodd; ++i) { + *result += input[num_points - 1] * taps[num_points - 1]; + } +} +#endif /*LV_HAVE_GENERIC*/ - for(i = 0; i < isodd; ++i) { - *result += input[num_points - 1] * taps[num_points - 1]; +#if LV_HAVE_SSE && LV_HAVE_64 + +static inline void volk_32fc_x2_dot_prod_32fc_u_sse_64(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { + + const unsigned int num_bytes = num_points*8; + unsigned int isodd = num_points & 1; + asm + ( + "# ccomplex_dotprod_generic (float* result, const float *input,\n\t" + "# const float *taps, unsigned num_bytes)\n\t" + "# float sum0 = 0;\n\t" + "# float sum1 = 0;\n\t" + "# float sum2 = 0;\n\t" + "# float sum3 = 0;\n\t" + "# do {\n\t" + "# sum0 += input[0] * taps[0] - input[1] * taps[1];\n\t" + "# sum1 += input[0] * taps[1] + input[1] * taps[0];\n\t" + "# sum2 += input[2] * taps[2] - input[3] * taps[3];\n\t" + "# sum3 += input[2] * taps[3] + input[3] * taps[2];\n\t" + "# input += 4;\n\t" + "# taps += 4; \n\t" + "# } while (--n_2_ccomplex_blocks != 0);\n\t" + "# result[0] = sum0 + sum2;\n\t" + "# result[1] = sum1 + sum3;\n\t" + "# TODO: prefetch and better scheduling\n\t" + " xor %%r9, %%r9\n\t" + " xor %%r10, %%r10\n\t" + " movq %%rcx, %%rax\n\t" + " movq %%rcx, %%r8\n\t" + " movq %[rsi], %%r9\n\t" + " movq %[rdx], %%r10\n\t" + " xorps %%xmm6, %%xmm6 # zero accumulators\n\t" + " movups 0(%%r9), %%xmm0\n\t" + " xorps %%xmm7, %%xmm7 # zero accumulators\n\t" + " movups 0(%%r10), %%xmm2\n\t" + " shr $5, %%rax # rax = n_2_ccomplex_blocks / 2\n\t" + " shr $4, %%r8\n\t" + " jmp .%=L1_test\n\t" + " # 4 taps / loop\n\t" + " # something like ?? cycles / loop\n\t" + ".%=Loop1: \n\t" + "# complex prod: C += A * B, w/ temp Z & Y (or B), xmmPN=$0x8000000080000000\n\t" + "# movups (%%r9), %%xmmA\n\t" + "# movups (%%r10), %%xmmB\n\t" + "# movups %%xmmA, %%xmmZ\n\t" + "# shufps $0xb1, %%xmmZ, %%xmmZ # swap internals\n\t" + "# mulps %%xmmB, %%xmmA\n\t" + "# mulps %%xmmZ, %%xmmB\n\t" + "# # SSE replacement for: pfpnacc %%xmmB, %%xmmA\n\t" + "# xorps %%xmmPN, %%xmmA\n\t" + "# movups %%xmmA, %%xmmZ\n\t" + "# unpcklps %%xmmB, %%xmmA\n\t" + "# unpckhps %%xmmB, %%xmmZ\n\t" + "# movups %%xmmZ, %%xmmY\n\t" + "# shufps $0x44, %%xmmA, %%xmmZ # b01000100\n\t" + "# shufps $0xee, %%xmmY, %%xmmA # b11101110\n\t" + "# addps %%xmmZ, %%xmmA\n\t" + "# addps %%xmmA, %%xmmC\n\t" + "# A=xmm0, B=xmm2, Z=xmm4\n\t" + "# A'=xmm1, B'=xmm3, Z'=xmm5\n\t" + " movups 16(%%r9), %%xmm1\n\t" + " movups %%xmm0, %%xmm4\n\t" + " mulps %%xmm2, %%xmm0\n\t" + " shufps $0xb1, %%xmm4, %%xmm4 # swap internals\n\t" + " movups 16(%%r10), %%xmm3\n\t" + " movups %%xmm1, %%xmm5\n\t" + " addps %%xmm0, %%xmm6\n\t" + " mulps %%xmm3, %%xmm1\n\t" + " shufps $0xb1, %%xmm5, %%xmm5 # swap internals\n\t" + " addps %%xmm1, %%xmm6\n\t" + " mulps %%xmm4, %%xmm2\n\t" + " movups 32(%%r9), %%xmm0\n\t" + " addps %%xmm2, %%xmm7\n\t" + " mulps %%xmm5, %%xmm3\n\t" + " add $32, %%r9\n\t" + " movups 32(%%r10), %%xmm2\n\t" + " addps %%xmm3, %%xmm7\n\t" + " add $32, %%r10\n\t" + ".%=L1_test:\n\t" + " dec %%rax\n\t" + " jge .%=Loop1\n\t" + " # We've handled the bulk of multiplies up to here.\n\t" + " # Let's sse if original n_2_ccomplex_blocks was odd.\n\t" + " # If so, we've got 2 more taps to do.\n\t" + " and $1, %%r8\n\t" + " je .%=Leven\n\t" + " # The count was odd, do 2 more taps.\n\t" + " # Note that we've already got mm0/mm2 preloaded\n\t" + " # from the main loop.\n\t" + " movups %%xmm0, %%xmm4\n\t" + " mulps %%xmm2, %%xmm0\n\t" + " shufps $0xb1, %%xmm4, %%xmm4 # swap internals\n\t" + " addps %%xmm0, %%xmm6\n\t" + " mulps %%xmm4, %%xmm2\n\t" + " addps %%xmm2, %%xmm7\n\t" + ".%=Leven:\n\t" + " # neg inversor\n\t" + " xorps %%xmm1, %%xmm1\n\t" + " mov $0x80000000, %%r9\n\t" + " movd %%r9, %%xmm1\n\t" + " shufps $0x11, %%xmm1, %%xmm1 # b00010001 # 0 -0 0 -0\n\t" + " # pfpnacc\n\t" + " xorps %%xmm1, %%xmm6\n\t" + " movups %%xmm6, %%xmm2\n\t" + " unpcklps %%xmm7, %%xmm6\n\t" + " unpckhps %%xmm7, %%xmm2\n\t" + " movups %%xmm2, %%xmm3\n\t" + " shufps $0x44, %%xmm6, %%xmm2 # b01000100\n\t" + " shufps $0xee, %%xmm3, %%xmm6 # b11101110\n\t" + " addps %%xmm2, %%xmm6\n\t" + " # xmm6 = r1 i2 r3 i4\n\t" + " movhlps %%xmm6, %%xmm4 # xmm4 = r3 i4 ?? ??\n\t" + " addps %%xmm4, %%xmm6 # xmm6 = r1+r3 i2+i4 ?? ??\n\t" + " movlps %%xmm6, (%[rdi]) # store low 2x32 bits (complex) to memory\n\t" + : + :[rsi] "r" (input), [rdx] "r" (taps), "c" (num_bytes), [rdi] "r" (result) + :"rax", "r8", "r9", "r10" + ); + + + if(isodd) { + *result += input[num_points - 1] * taps[num_points - 1]; } + return; + } -#endif /*LV_HAVE_GENERIC*/ +#endif /* LV_HAVE_SSE && LV_HAVE_64 */ + + + #ifdef LV_HAVE_SSE3 @@ -62,12 +185,12 @@ static inline void volk_32fc_x2_dot_prod_32fc_generic(lv_32fc_t* result, const l static inline void volk_32fc_x2_dot_prod_32fc_u_sse3(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { - lv_32fc_t dotProduct; memset(&dotProduct, 0x0, 2*sizeof(float)); unsigned int number = 0; const unsigned int halfPoints = num_points/2; + unsigned int isodd = num_points & 1; __m128 x, y, yl, yh, z, tmp1, tmp2, dotProdVal; @@ -104,8 +227,8 @@ static inline void volk_32fc_x2_dot_prod_32fc_u_sse3(lv_32fc_t* result, const lv dotProduct += ( dotProductVector[0] + dotProductVector[1] ); - if(num_points % 1 != 0) { - dotProduct += (*a) * (*b); + if(isodd) { + dotProduct += input[num_points - 1] * taps[num_points - 1]; } *result = dotProduct; @@ -113,6 +236,89 @@ static inline void volk_32fc_x2_dot_prod_32fc_u_sse3(lv_32fc_t* result, const lv #endif /*LV_HAVE_SSE3*/ +#ifdef LV_HAVE_SSE4_1 + +#include + +static inline void volk_32fc_x2_dot_prod_32fc_u_sse4_1(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { + + unsigned int i = 0; + const unsigned int qtr_points = num_points/4; + const unsigned int isodd = num_points & 3; + + __m128 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, real0, real1, im0, im1; + float *p_input, *p_taps; + __m64 *p_result; + + p_result = (__m64*)result; + p_input = (float*)input; + p_taps = (float*)taps; + + static const __m128i neg = {0x000000000000000080000000}; + + real0 = _mm_setzero_ps(); + real1 = _mm_setzero_ps(); + im0 = _mm_setzero_ps(); + im1 = _mm_setzero_ps(); + + for(; i < qtr_points; ++i) { + xmm0 = _mm_loadu_ps(p_input); + xmm1 = _mm_loadu_ps(p_taps); + + p_input += 4; + p_taps += 4; + + xmm2 = _mm_loadu_ps(p_input); + xmm3 = _mm_loadu_ps(p_taps); + + p_input += 4; + p_taps += 4; + + xmm4 = _mm_unpackhi_ps(xmm0, xmm2); + xmm5 = _mm_unpackhi_ps(xmm1, xmm3); + xmm0 = _mm_unpacklo_ps(xmm0, xmm2); + xmm2 = _mm_unpacklo_ps(xmm1, xmm3); + + //imaginary vector from input + xmm1 = _mm_unpackhi_ps(xmm0, xmm4); + //real vector from input + xmm3 = _mm_unpacklo_ps(xmm0, xmm4); + //imaginary vector from taps + xmm0 = _mm_unpackhi_ps(xmm2, xmm5); + //real vector from taps + xmm2 = _mm_unpacklo_ps(xmm2, xmm5); + + xmm4 = _mm_dp_ps(xmm3, xmm2, 0xf1); + xmm5 = _mm_dp_ps(xmm1, xmm0, 0xf1); + + xmm6 = _mm_dp_ps(xmm3, xmm0, 0xf2); + xmm7 = _mm_dp_ps(xmm1, xmm2, 0xf2); + + real0 = _mm_add_ps(xmm4, real0); + real1 = _mm_add_ps(xmm5, real1); + im0 = _mm_add_ps(xmm6, im0); + im1 = _mm_add_ps(xmm7, im1); + } + + real1 = _mm_xor_ps(real1, bit128_p(&neg)->float_vec); + + im0 = _mm_add_ps(im0, im1); + real0 = _mm_add_ps(real0, real1); + + im0 = _mm_add_ps(im0, real0); + + _mm_storel_pi(p_result, im0); + + for(i = num_points-isodd; i < num_points; i++) { + *result += input[i] * taps[i]; + } +} + +#endif /*LV_HAVE_SSE4_1*/ + + + + #endif /*INCLUDED_volk_32fc_x2_dot_prod_32fc_u_H*/ #ifndef INCLUDED_volk_32fc_x2_dot_prod_32fc_a_H #define INCLUDED_volk_32fc_x2_dot_prod_32fc_a_H @@ -134,7 +340,7 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_generic(lv_32fc_t* result, const float * in = (float*) input; float * tp = (float*) taps; unsigned int n_2_ccomplex_blocks = num_bytes >> 4; - unsigned int isodd = (num_bytes >> 3) &1; + unsigned int isodd = num_points & 1; float sum0[2] = {0,0}; float sum1[2] = {0,0}; @@ -154,7 +360,7 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_generic(lv_32fc_t* result, const res[1] = sum0[1] + sum1[1]; for(i = 0; i < isodd; ++i) { - *result += input[(num_bytes >> 3) - 1] * taps[(num_bytes >> 3) - 1]; + *result += input[num_points - 1] * taps[num_points - 1]; } } @@ -167,6 +373,7 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_generic(lv_32fc_t* result, const static inline void volk_32fc_x2_dot_prod_32fc_a_sse_64(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { const unsigned int num_bytes = num_points*8; + unsigned int isodd = num_points & 1; asm ( @@ -282,8 +489,8 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse_64(lv_32fc_t* result, const ); - if(((num_bytes >> 3) & 1)) { - *result += (input[(num_bytes >> 3) - 1] * taps[(num_bytes >> 3) - 1]); + if(isodd) { + *result += input[num_points - 1] * taps[num_points - 1]; } return; @@ -295,10 +502,13 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse_64(lv_32fc_t* result, const #if LV_HAVE_SSE && LV_HAVE_32 static inline void volk_32fc_x2_dot_prod_32fc_a_sse_32(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { + volk_32fc_x2_dot_prod_32fc_a_generic(result, input, taps, num_points); #if 0 const unsigned int num_bytes = num_points*8; + unsigned int isodd = num_points & 1; + asm volatile ( " #pushl %%ebp\n\t" @@ -401,11 +611,8 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse_32(lv_32fc_t* result, const int getem = num_bytes % 16; - for(; getem > 0; getem -= 8) { - - - *result += (input[(num_bytes >> 3) - 1] * taps[(num_bytes >> 3) - 1]); - + if(isodd) { + *result += (input[num_points - 1] * taps[num_points - 1]); } return; @@ -421,6 +628,7 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse_32(lv_32fc_t* result, const static inline void volk_32fc_x2_dot_prod_32fc_a_sse3(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { const unsigned int num_bytes = num_points*8; + unsigned int isodd = num_points & 1; lv_32fc_t dotProduct; memset(&dotProduct, 0x0, 2*sizeof(float)); @@ -463,8 +671,8 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse3(lv_32fc_t* result, const lv dotProduct += ( dotProductVector[0] + dotProductVector[1] ); - if(((num_bytes >> 3) & 1) != 0) { - dotProduct += (*a) * (*b); + if(isodd) { + dotProduct += input[num_points - 1] * taps[num_points - 1]; } *result = dotProduct; @@ -478,31 +686,26 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse3(lv_32fc_t* result, const lv static inline void volk_32fc_x2_dot_prod_32fc_a_sse4_1(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points) { - const unsigned int num_bytes = num_points*8; - - __m128 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, real0, real1, im0, im1; - float *p_input, *p_taps; - __m64 *p_result; - - p_result = (__m64*)result; - p_input = (float*)input; - p_taps = (float*)taps; - - static const __m128i neg = {0x000000000000000080000000}; - - int i = 0; + unsigned int i = 0; + const unsigned int qtr_points = num_points/4; + const unsigned int isodd = num_points & 3; - int bound = (num_bytes >> 5); - int leftovers = (num_bytes & 24) >> 3; + __m128 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, real0, real1, im0, im1; + float *p_input, *p_taps; + __m64 *p_result; - real0 = _mm_sub_ps(real0, real0); - real1 = _mm_sub_ps(real1, real1); - im0 = _mm_sub_ps(im0, im0); - im1 = _mm_sub_ps(im1, im1); + static const __m128i neg = {0x000000000000000080000000}; - for(; i < bound; ++i) { + p_result = (__m64*)result; + p_input = (float*)input; + p_taps = (float*)taps; + real0 = _mm_setzero_ps(); + real1 = _mm_setzero_ps(); + im0 = _mm_setzero_ps(); + im1 = _mm_setzero_ps(); + for(; i < qtr_points; ++i) { xmm0 = _mm_load_ps(p_input); xmm1 = _mm_load_ps(p_taps); @@ -539,22 +742,20 @@ static inline void volk_32fc_x2_dot_prod_32fc_a_sse4_1(lv_32fc_t* result, const real1 = _mm_add_ps(xmm5, real1); im0 = _mm_add_ps(xmm6, im0); im1 = _mm_add_ps(xmm7, im1); + } - } - - real1 = _mm_xor_ps(real1, bit128_p(&neg)->float_vec); - - im0 = _mm_add_ps(im0, im1); - real0 = _mm_add_ps(real0, real1); + real1 = _mm_xor_ps(real1, bit128_p(&neg)->float_vec); - im0 = _mm_add_ps(im0, real0); + im0 = _mm_add_ps(im0, im1); + real0 = _mm_add_ps(real0, real1); - _mm_storel_pi(p_result, im0); + im0 = _mm_add_ps(im0, real0); - for(i = bound * 4; i < (bound * 4) + leftovers; ++i) { + _mm_storel_pi(p_result, im0); + for(i = num_points-isodd; i < num_points; i++) { *result += input[i] * taps[i]; - } + } } #endif /*LV_HAVE_SSE4_1*/ diff --git a/volk/lib/testqa.cc b/volk/lib/testqa.cc index d698c90..c8d54ff 100644 --- a/volk/lib/testqa.cc +++ b/volk/lib/testqa.cc @@ -33,7 +33,7 @@ VOLK_RUN_TESTS(volk_32fc_s32f_deinterleave_real_16i, 0, 32768, 20462, 1); VOLK_RUN_TESTS(volk_32fc_deinterleave_real_32f, 1e-4, 0, 20462, 1); VOLK_RUN_TESTS(volk_32fc_deinterleave_imag_32f, 1e-4, 0, 20462, 1); VOLK_RUN_TESTS(volk_32fc_deinterleave_real_64f, 1e-4, 0, 20462, 1); -VOLK_RUN_TESTS(volk_32fc_x2_dot_prod_32fc, 1e-4, 0, 2046002, 1); +VOLK_RUN_TESTS(volk_32fc_x2_dot_prod_32fc, 1e-4, 0, 204603, 1); VOLK_RUN_TESTS(volk_32fc_32f_dot_prod_32fc, 1e-4, 0, 204602, 1); VOLK_RUN_TESTS(volk_32fc_index_max_16u, 3, 0, 20462, 1); VOLK_RUN_TESTS(volk_32fc_s32f_magnitude_16i, 1, 32768, 20462, 1); -- 1.7.10.4 debian/patches/bsd-usb0000664000000000000000000000041611742173567012117 0ustar --- a/cmake/Modules/FindUSB.cmake +++ b/cmake/Modules/FindUSB.cmake @@ -8,7 +8,7 @@ /usr/local/include ) - find_library(LIBUSB_LIBRARIES NAMES usb-1.0 + find_library(LIBUSB_LIBRARIES NAMES usb-1.0 usb PATHS ${LIBUSB_PKG_LIBRARY_DIRS} /usr/lib debian/patches/0004-math-fixes-fast_atan2-float-0-check.patch0000664000000000000000000000273212256421614020630 0ustar From 55645df94f42be8991319ae78d760d3f8bbc48ed Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 1 Dec 2013 11:46:23 -0500 Subject: [PATCH 04/25] math: fixes fast_atan2 float==0 check. runtime: adds math functions to swig to make available as gr.function. --- gnuradio-runtime/lib/math/fast_atan2f.cc | 2 +- gnuradio-runtime/swig/runtime_swig.i | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gnuradio-runtime/lib/math/fast_atan2f.cc b/gnuradio-runtime/lib/math/fast_atan2f.cc index 3c4967d..2cafeec 100644 --- a/gnuradio-runtime/lib/math/fast_atan2f.cc +++ b/gnuradio-runtime/lib/math/fast_atan2f.cc @@ -132,7 +132,7 @@ namespace gr { y_abs = fabsf(y); x_abs = fabsf(x); /* don't divide by zero! */ - if((y_abs < 1.5E-5) && (x_abs < 1.5E-5)) + if(!((y_abs > 0.0f) || (x_abs > 0.0f))) return 0.0; //z = (y_abs < x_abs ? y_abs / x_abs : x_abs / y_abs); diff --git a/gnuradio-runtime/swig/runtime_swig.i b/gnuradio-runtime/swig/runtime_swig.i index 2727f64..d4b55f1 100644 --- a/gnuradio-runtime/swig/runtime_swig.i +++ b/gnuradio-runtime/swig/runtime_swig.i @@ -59,6 +59,7 @@ #include #include #include +#include %} %constant int sizeof_char = sizeof(char); @@ -92,3 +93,5 @@ %include "gr_logger.i" %include "gr_swig_block_magic.i" %include "gr_ctrlport.i" + +%include "gnuradio/math.h" -- 1.7.10.4 debian/patches/0020-cmake-allow-the-GR_REQUIRED_COMPONENTS-to-contain-VO.patch0000664000000000000000000000175512256421616023154 0ustar From 8d80f587ffa5c7e50293c21287f3ea0f366efc9c Mon Sep 17 00:00:00 2001 From: Tim O'Shea Date: Fri, 13 Dec 2013 13:58:02 -0500 Subject: [PATCH 20/25] cmake: allow the GR_REQUIRED_COMPONENTS to contain VOLK when using GnuradioConfig.cmake interface --- cmake/Modules/GnuradioConfig.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/Modules/GnuradioConfig.cmake b/cmake/Modules/GnuradioConfig.cmake index a81211f..e120aba 100644 --- a/cmake/Modules/GnuradioConfig.cmake +++ b/cmake/Modules/GnuradioConfig.cmake @@ -130,6 +130,7 @@ GR_MODULE(VOCODER gnuradio-vocoder gnuradio/vocoder/api.h gnuradio-vocoder) GR_MODULE(WAVELET gnuradio-wavelet gnuradio/wavelet/api.h gnuradio-wavelet) GR_MODULE(WXGUI gnuradio-wxgui gnuradio/wxgui/api.h gnuradio-wxgui) GR_MODULE(PMT gnuradio-runtime pmt/pmt.h gnuradio-pmt) +GR_MODULE(VOLK volk volk/volk.h volk) list(REMOVE_DUPLICATES GNURADIO_ALL_INCLUDE_DIRS) list(REMOVE_DUPLICATES GNURADIO_ALL_LIBRARIES) -- 1.7.10.4 debian/libgnuradio-video-sdl3.7.2.1.install0000664000000000000000000000005312250406757015500 0ustar usr/lib/*/libgnuradio-video-sdl.so.3.7.2.1 debian/control0000664000000000000000000002751512554223336010612 0ustar ################################################################################ # Single source deb for entire distribution # ################################################################################ Source: gnuradio Section: comm Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: A. Maitland Bottoms Uploaders: Bdale Garbee Build-Depends: debhelper (>= 9.0.0~), cmake, libuhd-dev, libasound2-dev, libjack-jackd2-dev, portaudio19-dev, libxi-dev, libfontconfig1-dev, libxrender-dev, libpulse-dev, libcomedi-dev [!hurd-i386], swig (>=1.3.31), python-dev, libfftw3-dev, libcppunit-dev (>=1.9.14), libboost-all-dev (>=1.35), libusb-1.0-0-dev [linux-any], libusb2-dev [kfreebsd-any], liborc-0.4-dev, liboil0.3-dev, libsdl1.2-dev, python-wxgtk2.8, guile-1.8-dev, libqt4-dev, python-numpy, python-opengl, libgsl0-dev (>=1.10), python-cheetah, python-lxml, python-sphinx, doxygen, xmlto, qt4-dev-tools, libqwt5-qt4-dev, pyqt4-dev-tools, python-qwt5-qt4, python-gtk2-dev, pkg-config (>=0.15.0), libsndfile1-dev, libgsm1-dev, libzeroc-ice35-dev|libzeroc-ice34-dev, ice35-translators|ice34-translators, python-zeroc-ice, liblog4cpp5-dev #, gcc-4.6, g++-4.6 Standards-Version: 3.9.4 Vcs-Git: git://anonscm.debian.org/users/bottoms/pkg-gnuradio.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=users/bottoms/pkg-gnuradio.git;a=summary X-Python-Version: =2.7 ################################################################################ # Multiple library packages ################################################################################ Package: gnuradio Architecture: any Depends: ${python:Depends}, python-opengl, python-lxml, python-wxgtk2.8, python-cheetah, adduser, ${shlibs:Depends}, ${misc:Depends}, libvolk0.0.0 (=${binary:Version}) Recommends: python-qt4, python-qwt5-qt4, python-scipy, python-matplotlib, uhd-host, python-tk, qthid-fcd-controller Description: GNU Radio Software Radio Toolkit GNU Radio provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic and commercial environments to support both wireless communications research and real-world radio systems. . GNU Radio applications are primarily written using the Python programming language, while the supplied performance-critical signal processing path is implemented in C++ using processor floating-point extensions, where available. Thus, the developer is able to implement real-time, high-throughput radio systems in a simple-to-use, rapid-application-development environment. . While not primarily a simulation tool, GNU Radio does support development of signal processing algorithms using pre-recorded or generated data, avoiding the need for actual RF hardware. . This package contains the gnuradio-companion, a graphical tool for creating signal flow graphs and generating flow-graph source code. Also included are a variety of tools and utility programs. Package: gnuradio-doc Section: doc Architecture: all Depends: ${misc:Depends} Description: GNU Software Defined Radio toolkit documentation Documentation for the GNU Radio software defined radio system in html and xml form. Package: gnuradio-dev Section: libdevel Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: gnuradio (= ${binary:Version}), ${misc:Depends} Description: GNU Software Defined Radio toolkit development Header files for the GNU Radio software defined radio system. Package: libgnuradio-analog3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio analog functions Library for handling analog signal processing functions. These functions are also in gnuradio-core. Part of the main gnuradio build. Package: libgnuradio-atsc3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio atsc functions Library for handling ATSC (Advanced Television Systems Committee) signals such as those used for digital television broadcast in North America. Part of the main gnuradio build. Package: libgnuradio-audio3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio audio functions This is the gr-audio library, used to connect to audio sources (mic-in) and sinks (speaker-out) ports on a computer. The underlying hardware driver is system and OS dependent and this module should automatically discover the correct one to use. Part of the main gnuradio build. Package: libgnuradio-comedi3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio comedi instrument control functions Allows gnuradio to use signals from data acquisition hardware supported by the Comedi library and drivers. Part of the main gnuradio build. Package: libgnuradio-blocks3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio blocks functions Some non-signal processing blocks. These functions are also in gnuradio-core. Part of the main gnuradio build. Package: libgnuradio-channels3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio channels functions Some channel oriented processing blocks. These functions are also in gnuradio-core. Part of the main gnuradio build. Package: libgnuradio-digital3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio digital communications functions All the functions for doing digital modulation and demodulation, including bpsk, qpsk, gmsk and ofdm signals. Part of the main gnuradio build. Package: libgnuradio-fec3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio forward error correction support Handle forward error correction processing in gnuradio. Part of the main gnuradio build. Package: libgnuradio-fcd3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio FunCube Dongle support The Funcube Dongle is a software defined radio receiver in a USB stick covering 64 MHz - 1.7 GHz. More info about the Funcube Dongle is available at http://www.funcubedongle.com/ . This library allows the device to be used as a source in GNU Radio. . Part of the main gnuradio build. Package: libgnuradio-filter3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio filter functions Library of filter blocks used in gnuradio. Package: libgnuradio-fft3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio fast Fourier transform functions Library for Fourier transform techniques used in gnuradio. Package: libgnuradio-noaa3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio noaa satellite signals functions Library for handling NOAA HRPT (National Oceanic and Atmospheric Administration High Rate Picture Transmission) signals. Part of the main gnuradio build. Package: libgnuradio-pager3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio pager radio functions Library for handling pager signals, including FLEX protocol data. Part of the main gnuradio build. Package: libgnuradio-pmt3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio pmt container library Polymorphic Types are opaque data types that are designed as generic containers of data that can be safely passed around between blocks and threads in GNU Radio. Part of the main gnuradio build. Package: libgnuradio-qtgui3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio Qt graphical user interface functions QT-based graphical sinks for gnuradio applications. Part of the main gnuradio build. Package: libgnuradio-runtime3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio core runtime Top level component library. Part of the main gnuradio build. Package: libgnuradio-trellis3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio trellis modulation functions Library for trellis coding modulation, including the Vitterbi Algorithm. Part of the main gnuradio build. Package: libgnuradio-uhd3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, libuhd003 (>= 3.4.1) Multi-Arch: same Description: gnuradio universal hardware driver functions The gnuradio interface to the UHD library to connect to and send and receive data between to the Ettus Research, LLC product line - including the USRP family of software radio periphal devices. Part of the main gnuradio build. Package: libgnuradio-video-sdl3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio video functions Library for handling SDL (Simple DirectMedia Layer) video data. Part of the main gnuradio build. Package: libgnuradio-vocoder3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio vocoder functions Library of vocoder blocks, including ulaw, alaw, gsm and codec2. Part of the main gnuradio build. Package: libgnuradio-wavelet3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio wavelet functions Library of Daubechies wavelet function blocks. Part of the main gnuradio build. Package: libgnuradio-wxgui3.7.2.1 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio wxgui functions Graphical user interface support. Part of the main gnuradio build. Package: libvolk0.0.0 Section: libs Architecture: any Pre-Depends: multiarch-support, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Description: gnuradio vector optimized functions Vector-Optimized Library of Kernels) and it is designed to help gnuradio work with the processor's SIMD instruction sets. These are very powerful vector operations that can give signal processing a huge boost in performance. Part of the main gnuradio build. debian/libgnuradio-noaa3.7.2.1.install0000664000000000000000000000004612250407023014515 0ustar usr/lib/*/libgnuradio-noaa.so.3.7.2.1 debian/gr_plot_fft.10000664000000000000000000000314411714263720011564 0ustar .TH GR_PLOT_FFT "1" "December 2011" "gr_plot_fft 3.5" "User Commands" .SH NAME gr_plot_fft \- Frequency domain GNU Radio plotting .SH SYNOPSIS .B gr_plot_fft: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio complex binary file and displays the I&Q data versus time as well as the frequency domain (FFT) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. This value defaults to 1000. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-d\fR DATA_TYPE, \fB\-\-data\-type\fR=\fIDATA_TYPE\fR Specify the data type (complex64, float32, (u)int32, (u)int16, (u)int8) [default=complex64] .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_fft_c(1) gr_plot_fft_f(1) debian/libgnuradio-trellis3.7.2.1.install0000664000000000000000000000005112250406772015263 0ustar usr/lib/*/libgnuradio-trellis.so.3.7.2.1 debian/ChangeLogV3_7_20000664000000000000000000003743712240232760011636 0ustar GNU Radio releases 3.7.1.1 and 3.7.2 are now available for download: http://gnuradio.org/releases/gnuradio/gnuradio-3.7.1.1.tar.gz http://gnuradio.org/releases/gnuradio/gnuradio-3.7.2.tar.gz MD5 Sums: 9e83fda298ceb4855b473c591dd5d397 gnuradio-3.7.1.1.tar.gz 9a9da8458fd0c1b452487524ed29f3fd gnuradio-3.7.2.tar.gz Release 3.7.2 is a significant new feature and bux fix release, while 3.7.1.1 contains only the bug fixes since 3.7.1. These releases are the result of contributions from 22 developers in the GNU Radio community: Alistair Bird Bastian Bloessl Ben Hilburn Douglas Geiger Jaroslav Škarvada Johnathan Corgan Louis Philippe Lessard Marcus Müller Mark Cottrell Martin Braun Mathieu Rene Michael Berman Michael Dickens Moritz Fischer Nathan West Nicholas Corgan Philip Balister Rick Spanbauer Sebastian Koslowski Sylvain Munaut <246tnt@gmail.com> Tim O'Shea Tom Rondeau GNU Radio Runtime/Framework updates Work continues on fleshing out the new asynchronous messaging capabilities in GNU Radio, with additional functionality available in Python flowgraphs, several blocks getting message ports to accept parameter changes (noted below), better support for messaging only blocks (mblocks) that have no streaming ports, and several bug fixes. Stream tag handling and propagation has been improved in cases where DSP blocks introduce a signal delay. Block authors/users are able to declare an effective delay value to the runtime, and stream tags will have their position adjusted by the runtime when tags are automatically propagated through the block. In addition, for blocks derived from gr::block directly and have no fixed input/output item ratio, the internal relative rate is dynamically adjusted according to actual usage and stream tags are propagated appropriately. The performance monitoring system has a new counter that tracks accumulated work function time, and the high_res_timer functions are now exported to Python. GNU Radio Companion Updates The GRC Working Group that formed at GRCON13 in October established a roadmap for GRC: http://gnuradio.org/redmine/projects/gnuradio/wiki/GRCroadmap Led by Sebastian Koslowski, several new features and some clean up and bug fixes have been merged for release in 3.7.2. Searching for blocks on the right side GRC menu has always been problematic. The search is now implemented with a search box above the category tree that is accessed via menu, Ctrl-F, or '/'. This box is persistent, and typing in it filters the category tree in-place, allowing one to note which category the block is in. This also fixes the long standing bug where GRC would crash if the search box was opened and the category tree was scrolled. Tim O'Shea added the ability to set max_output_buffer on a per-block basis inside GRC parameter blocks. Correlate and Sync block (Tom Rondeau) As a result of work begun at GRHACK13 in June, we have added a new block called gr::digital::correlate_and_sync. This block is designed to search for a preamble by correlation and uses the results of the correlation to get a time and phase offset estimate. These estimates are passed downstream as stream tags for use by follow-on synchronization blocks. The tags are: * time_est: the estimate of the timing offset in fractions of samples. * phase_est: the phase estimate in radians (from 0 to 2pi). * corr_est: the value that triggered the correlation. Could be used downstream to estimate the quality of the time/phase estimates. These tags are located on the sample index where the correlation peak occurred. The correlate_and_sync block is designed to aid in the processing of burst modems where the timing and phase acquisition loops can get out of sync when there is no transmission. Currently, the pfb_clock_sync_ccf looks for and, if found, uses the time_est tag to set its current value of the sample timing. By doing this, we prime the clock synchronizer to be very close to the correct sample time, which allows the loop to quickly converge and track through the rest of the packet. The Costas loop block (costas_loop_cc) looks for and, if found, uses the phase_est tag. The loop uses the phase estimation to set its internal phase value. The frequency estimation of the loop is left as is. This again gets the loop very close to the real phase offset and allows the loop to acquire and track the actual phase offset quickly. There are three GRC programs that were created to test and explore the use of this block. gr-digital/examples/demod/test_corr_and_sync.py is a full simulation that generates burst PSK packets with a known header and uses the correlate_and_sync block along with the pfb_clock_sync_ccf and costas_loop_cc block's to generate and use the correlation-based tags. Noise, timing offset, and frequency offset can all be adjusted to test the limits and behavior of the receiver. If the bottom disabled blocks are enabled, this example will also show the original bits of the packets against the received and recovered packets. Because the timing synchronization has a non-consistent consume/produce model, the delay between the transmitter and receiver is not constant, especially when a timing offset is applied. The initial delay value is correct for the very start of the simulation but will quickly walk away and must be manually tuned to keep the streams synchronized. The uhd_corr_and_sync_tx and _rx are designed for OTA testing. They allow us to set the center frequency and gains (both digital and analog) of both receiver and transmitter. QTGUI Time Sink Improvements (Tom Rondeau) Also derived from work begun at GRHACK13, time sinks from gr-qtgui now display stream tags as a "key: value" on the sample they are associated with. This behavior can be turned off using the drop-down context menu (middle mouse button) and can be selected for a given input stream. By default, all tags are shown on all input streams. Time sinks also include triggering features. The triggering parameters can be set in the Properties box of the sink or by using the drop-down context menu (middle mouse button). The triggering features include setting the mode to "free running," "auto trigger," "normal trigger," and "tag trigger." The auto and normal trigger modes are done based on the slope of the line (positive or negative) crossing a set threshold level. Tag triggering is done off a tag's key and will trigger if that key is seen. Triggering is done on the left-most side of the screen by default (delay = 0). A delay can be set from 0 to the end of the visible timeline. If set outside this range, it is automatically restricted to these bounds. The input channel to trigger off can also be set. Channel Model Additions (Tim O'Shea) Three new channel model blocks have been added: * gr::channels::cfo_model implements a bounded random-walk on center frequency offset * gr::channels::sro_model implements a bounded random-walk on sample rate offset * gr::channels::dynamic_channel_model is a hierarchical block that combines AWGN, sample rate offset, center frequency offset, Rayleigh and Rician fading, channel impulse response, and power delay profile modeling. OFDM Reference Code Updates Martin Braun continues to improve the new OFDM reference code released in 3.7.0, with new features such as scrambling and header error checking. This is an area of rapid development and feedback on usage is encouraged. Digital Filter and Windows Cleanup (Tom Rondeau) The code for implementing window functions has been overhauled, to remove duplicated code between gr::fft and gr::filter, and fix a few bugs. Coverity Scan Bug Fixes In July this year, Philip Balister set GNU Radio up to begin using the Coverity static analysis tool, and an announcement went out on the discussion list in October: https://lists.gnu.org/archive/html/discuss-gnuradio/2013-10/msg00014.html Since then, 25 identified bugs have been fixed and closed by several contributors. If you are looking for a way to get involved in GNU Radio, this is a great place to start. Other new blocks or block updates: * gr::blocks::stream_to_tagged_stream is a new block to add periodic length tags, allowing uses like feeding file sources into tagged stream blocks. (Martin Braun) * gr::blocks::file_sink now has the ability to append to a file, making it easier to use with IPC instead of files. (Bastian Bloessl) * gr::blocks::chunks_to_symbols can now receive symbol table updates via async messages (Tom Rondeau) * gr::blocks::tag_debug can now filter/display single keys (Tom Rondeau) * gr::blocks::repack_bits can now update input and output values via async messages (Tom Rondeau) * gr::digital::constellation_soft_decoder is a new block that produces soft decisions as floats instead of hard decisions (Tom Rondeau) * gr::digital::constellation_modulator is a new block that uses a constellation object for configuration (Tom Rondeau) * gr::digital::constellation_receiver now has ControlPort interfaces and can receive a new constellation configuration via async message (Tom Rondeau) * gr::digital::costas_loop can now be monitored remotely by ControlPort. It can also now receive an initial phase offset estimate via an upstream added stream tag. (Tom Rondeau) * gr::digital::pfb_clock_sync can now receive an initial timing offset estimate via an upstream added stream tag (Tom Rondeau) * gr::digital::additive_scrambler now supports stream tags (Martin Braun) VOLK Library Updates Improved support for detecting and using AVX instructions was added, and a number of toolchain related bugs were cleaned up. Tim O'Shea added a new inverse square root kernel and speedups for gr::analog::agc3. Bug Fixes There were too many bug fixes to list them individually; those interested may look at the git log changes between tags v3.7.1 and v3.7.1.1: $ git shortlog v3.7.1...v3.7.1.1 Bastian Bloessl (1): logger: fix memory leak Ben Hilburn (4): CID: 1090040. Fairly straight-forward UNINIT fix in pycallback_object. CID: 1090040. This bug can't, and doesn't need to be, fixed. Documented. CID: 1088855. Fixing resource leak issues in fcdOpen CID: 1090068. Fixes missing virtual destructor issue. Douglas Geiger (2): CID: Fixes 1046322 volk: fix typo in cmake symbol test Jaroslav Skarvada (2): cmake: Fixed FindGnuradio.cmake file for new 3.7 locations of headers. cmake: adding library suffix variable for setting the cmake install directory. Jaroslav Škarvada (1): uhd: add top-level exception reporting to uhd_fft Johnathan Corgan (6): Fix missing module imports in error case filter: fix rational resampler tap defaults in GRC modtool: fix GRC XML file creation when no args modtool: fix broken commit d09f1c3d Removed stray file from 3.6.x cmake: update revision to 3.7.1.1 Louis Philippe Lessard (1): fix: max_noutput_items is set globally but it should be local to a block. Marcus Müller (2): virtual destructor running python slider.py now works again Mark Cottrell (1): runtime: fix disconnecting a msg port on a hier_block2 Martin Braun (4): digital: Fixes CID 1043266 blocks: Fix CID 1088839, 1046407 and 1046395 digital: Fix CID 1043270, minor refactoring modtool: Fixes for in-tree adds, argument parsing (&-bug) Mathieu Rene (1): volk: Add compiler flags for clang in archs.xml Michael Dickens (1): cmake: Fix and cleanup for new Ice library names in OSX through macports. Micheal Dickens (1): volk: allow AVX to compile using any compiler accepting xgetbv Moritz Fischer (6): Fixing issue CID 1046354. Fixing CID 1043304. Lol wut?! ROFL Fixing CID 1043300. Trivial UNINIT fix. Fixing CID 1043296: Trivial UNINIT. filter: Fixes CID 1046198 vocoder: Fixes CID 1043299. Simple unitialized variable. Nathan West (3): blocks: address CID 1043279. Remove member d_count (of keep_m_in_n) that wasn't being used. blocks: address CID 1043280. An unused member (of endian_swap) had the same name as parameter. Removed member. runtime: add qa for fast_atan2f, removed a float equality test Nicholas Corgan (1): wxgui: CPack fix Philip Balister (6): gr-filter : Eliminate memory leak in pm_remez.cc gr-filter : Fix memory leaks in pm_remez.cc. gr-filter: Add missing break statement. gr-analog : Fix initialization bugs in cc anf ff power squelch blocks. gnuradio-runtime : Fix uninitialized variable. gr-fec : Fix uninitialized variable error. Rick Spanbauer (1): grc: fix instance of namespace change in error_rate.py Sebastian Koslowski (2): Allow variable vlen in GRC generated hier blocks grc: make backspace chars work in TextDisplay Sylvain Munaut (3): qtgui: fixes to allow QTGUI to build on Gentoo. wxgui: Allow Linux/X11 apps to be thread-safe wxgui: ensure flowgraph shutdown before app exit Tim O'Shea (5): gr-ctrlport-monitor: update knob properties cleanly if exports are added at runtime runtime: make sure all message only blocks always get a thread context (not just message recievers), otherwise no thread context is created and start() is never called volk: fix for cross-compiling with non-standard toolchains blocks: pdu_to_tagged stream, fix for meta to tag conversion with multiple keys runtime: expose message_subscribers() interface to python blocks Tom Rondeau (18): blocks: fixed simple documentation for blocks module (copy/paste error from gr-digital). docs: Adding documentation for how to use the thread priority API of GR blocks. runtime: fixed bug where average Performance Counters were not being exported into Python. runtime: exporting msg_edge_list now, too. docs: updated/expanded docs for qtgui and filter capabilities. qtgui: installing all examples. cmake: improve OOT projects find the installed GNU Radio. grc: fixes issue of needing [] around the core affinity field in GRC. filter: Fixing the Hilbert transform and QA. filter: fixed filter QA to calculate filter and delay instead of using previously generated samples. filter: fixed some QA code to compute the output instead of using previously generated samples. Merge branch 'maint' of git.gnuradio.org:gnuradio into maint filter: sets comments for windows to export into Doxygen manual. filter: fixing windows functions. filter: fixed frequency translating filter. volk: fixed volk rotator kernel to support aligned and unaligned. build: don't allow us to build against QWT 6.1 until we can update to support it. volk: fixed rotatorpuppet for avx. riatsila (1): bug fix in pdu_to_tagged_stream_impl.cc debian/libgnuradio-filter3.7.2.1.install0000664000000000000000000000005012250407030015055 0ustar usr/lib/*/libgnuradio-filter.so.3.7.2.1 debian/usrp_rx_hrpt.10000664000000000000000000000101611714071751012013 0ustar .TH USRP_RX_HRPT "1" "December 2011" "usrp_rx_hrpt 3.5" "User Commands" .SH NAME usrp_rx_hrpt \- NOAA High Rate Picture Transmission Receiver .SH SYNOPSIS .B usrp_rx_hrpt: [\fIoptions\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .SH "SEE ALSO" The full documentation for .B usrp_rx_hrpt is maintained as an HTML file. If the .B gnuradio-doc package is properly installed at your site .IP .B usr/share/doc/gnuradio-doc/html/noaa__api_8h.html .PP should give you access to the complete manual. debian/gnuradio.postinst0000775000000000000000000000352012210243244012602 0ustar #!/bin/bash set -e # Copyright 2008-2012 Free Software Foundation, Inc. # # 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 # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. ICON_SIZES="32 48 64 128 256" SRCDIR="/usr/share/gnuradio/grc/freedesktop" # Only do this when the xdg-utils package is installed... if [ -x /usr/bin/xdg-desktop-menu ] ; then echo "Begin freedesktop install..." for size in ${ICON_SIZES}; do \ echo "Install icon: ${size}x${size}" xdg-icon-resource install --noupdate --context mimetypes --theme gnome --size ${size} ${SRCDIR}/grc-icon-${size}.png application-gnuradio-grc || true; \ xdg-icon-resource install --noupdate --context mimetypes --size ${size} ${SRCDIR}/grc-icon-${size}.png application-gnuradio-grc || true; \ xdg-icon-resource install --noupdate --context apps --theme gnome --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc || true; \ xdg-icon-resource install --noupdate --context apps --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc || true; \ done xdg-icon-resource forceupdate || true echo "Install mime type" xdg-mime install ${SRCDIR}/gnuradio-grc.xml || true echo "Install menu items" xdg-desktop-menu install ${SRCDIR}/*.desktop || true echo "Done!" fi #DEBHELPER# debian/gr_plot_psd_c.10000664000000000000000000000423311714131602012066 0ustar .TH GR_PLOT_PSD_C "1" "December 2011" "gr_plot_psd_c 3.5" "User Commands" .SH NAME gr_plot_psd_c \- plot power spectral density using GNU Radio .SH SYNOPSIS .B gr_plot_psd_c: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio binary file (with specified data type using \fB\-\-data\-type\fR) and displays the I&Q data versus time as well as the power spectral density (PSD) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. Finally, the size of the FFT to use for the PSD and spectrogram plots can be set independently with \fB\-\-psd\-size\fR and \fB\-\-spec\-size\fR, respectively. The spectrogram plot does not display by default and is turned on with \fB\-S\fR or \fB\-\-enable\-spec\fR. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=8192] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .TP \fB\-\-psd\-size\fR=\fIPSD_SIZE\fR Set the size of the PSD FFT [default=1024] .TP \fB\-\-spec\-size\fR=\fISPEC_SIZE\fR Set the size of the spectrogram FFT [default=256] .TP \fB\-S\fR, \fB\-\-enable\-spec\fR Turn on plotting the spectrogram [default=False] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/libgnuradio-wavelet3.7.2.1.install0000664000000000000000000000005112250406741015250 0ustar usr/lib/*/libgnuradio-wavelet.so.3.7.2.1 debian/gnuradio.dirs0000664000000000000000000000016411720014227011660 0ustar etc usr/bin usr/lib usr/include usr/share/applications usr/share/gnuradio usr/share/mime/packages usr/share/pixmaps debian/gr_modtool.10000664000000000000000000000134012210246701011410 0ustar .TH GNURADIO "1" "August 2013" "gr_modtool 3.7" "User Commands" .SH NAME gr-modtool \- The swiss army knife of module editing .SH DESCRIPTION When developing a module, there's a lot of boring, monotonous work involved: boilerplate code, makefile editing etc. gr-modtool is a script which aims to help with all these things by automatically editing makefiles, using templates and doing as much work as possible for the developer, such that you can jump straight into the DSP coding. .P Note that gr-modtool makes a lot of assumptions on what the code looks like. The more your module is custom and has specific changes, the less useful gr-modtool becomes. .SH SEE ALSO http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules debian/uhd_siggen_gui.10000664000000000000000000000333211714240745012240 0ustar .TH UHD_SIGGEN_GUI "1" "December 2011" "uhd_siggen_gui 3.5" "User Commands" .SH NAME uhd_siggen_gui \- GNU Radio signal generator using UHD hardware .SH SYNOPSIS .B uhd_siggen_gui: [\fIoptions\fR] .SH DESCRIPTION GUI to allow UHD supported hardware to be a signal generator. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-a\fR ARGS, \fB\-\-args\fR=\fIARGS\fR UHD device address args , [default=] .TP \fB\-\-spec\fR=\fISPEC\fR Subdevice of UHD device where appropriate .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-s\fR SAMP_RATE, \fB\-\-samp\-rate\fR=\fISAMP_RATE\fR set sample rate (bandwidth) [default=1000000.0] .TP \fB\-g\fR GAIN, \fB\-\-gain\fR=\fIGAIN\fR set gain in dB (default is midpoint) .TP \fB\-f\fR FREQ, \fB\-\-tx\-freq\fR=\fIFREQ\fR Set carrier frequency to FREQ [default=mid\-point] .TP \fB\-x\fR WAVEFORM_FREQ, \fB\-\-waveform\-freq\fR=\fIWAVEFORM_FREQ\fR Set baseband waveform frequency to FREQ [default=0] .TP \fB\-y\fR WAVEFORM2_FREQ, \fB\-\-waveform2\-freq\fR=\fIWAVEFORM2_FREQ\fR Set 2nd waveform frequency to FREQ [default=none] .TP \fB\-\-sine\fR Generate a carrier modulated by a complex sine wave .TP \fB\-\-const\fR Generate a constant carrier .TP \fB\-\-offset\fR=\fIOFFSET\fR Set waveform phase offset to OFFSET [default=0] .TP \fB\-\-gaussian\fR Generate Gaussian random output .TP \fB\-\-uniform\fR Generate Uniform random output .TP \fB\-\-2tone\fR Generate Two Tone signal for IMD testing .TP \fB\-\-sweep\fR Generate a swept sine wave .TP \fB\-\-amplitude\fR=\fIAMPL\fR Set output amplitude to AMPL (0.0\-1.0) [default=0.15] .TP \fB\-v\fR, \fB\-\-verbose\fR Use verbose console output [default=False] .SH "SEE ALSO" uhd_siggen(1) debian/gbp.conf0000664000000000000000000000232311671413411010606 0ustar # Configuration file for git-buildpackage and friends [DEFAULT] # the default build command: #builder = debuild -i\.git/ -I.git # the default clean command: #cleaner = debuild clean # the default branch for upstream sources: upstream-branch = dfsg-orig # the default branch for the debian patch: debian-branch = master # the default tag formats used: #upstream-tag = upstream/%(version)s #debian-tag = debian/%(version)s # use pristine-tar: pristine-tar = True # Options only affecting git-buildpackage [git-buildpackage] #upstream-branch = dfsgclean # uncomment this to automatically GPG sign tags #sign-tags = True # keyid to GPG sign tags with #keyid = 0xdeadbeef # push to a remote repository after a successful tag: #posttag = git-push git.example.com # use this for more svn-buildpackage like behaviour: export-dir = ../build-area/gnuradio/ #tarball-dir = ../tarballs/ # Options only affecting git-import-orig [git-import-orig] #upstream-branch = newupstream #debian-branch = dfsgclean #filter = .svn # Options only affecting git-import-dsc [git-import-dsc] #upstream-branch = svn-upstream #filter = [ 'CVS', '.cvsignore' ] # Options only affecting git-dch [git-dch] #git-log = --no-merges #snapshot-number = snapshot + 1 debian/usrp_flex_band.10000664000000000000000000000174611714136173012261 0ustar .TH USRP_FLEX_BAND "1" "December 2011" "usrp_flex_band 3.5" "User Commands" .SH NAME usrp_flex_band \- Flex protocol demodulator .SH SYNOPSIS .B usrp_flex_band [\fIoptions\fR] .SH DESCRIPTION Demodulate FLEX protocol with GNU Radio .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-f\fR FREQ, \fB\-\-freq\fR=\fIFREQ\fR Set receive frequency to FREQ [default=none] .TP \fB\-a\fR ADDRESS, \fB\-\-address\fR=\fIADDRESS\fR Address of UHD device, [default=addr=192.168.10.2] .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-\-rx\-gain\fR=\fIRX_GAIN\fR set receive gain in dB (default is midpoint) .TP \fB\-c\fR Hz, \fB\-\-calibration\fR=\fIHz\fR set frequency offset to Hz .HP \fB\-v\fR, \fB\-\-verbose\fR .TP \fB\-l\fR, \fB\-\-log\fR log flowgraph to files (LOTS of data) .TP \fB\-F\fR FROM_FILE, \fB\-\-from\-file\fR=\fIFROM_FILE\fR read samples from file instead of USRP .SH "SEE ALSO" usrp_flex_all(1) usrp_flex(1) debian/libgnuradio-blocks3.7.2.1.install0000664000000000000000000000005012250407102015045 0ustar usr/lib/*/libgnuradio-blocks.so.3.7.2.1 debian/libgnuradio-digital3.7.2.1.install0000664000000000000000000000005112250407061015212 0ustar usr/lib/*/libgnuradio-digital.so.3.7.2.1 debian/gr_plot_fft_f.10000664000000000000000000000316111714131162012062 0ustar .TH GR_PLOT_FFT_F "1" "December 2011" "gr_plot_fft_f 3.5" "User Commands" .SH NAME gr_plot_fft_f \- plot complex binary data using GNU Radio .SH SYNOPSIS .B gr_plot_fft_f: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio complex binary file and displays the I&Q data versus time as well as the frequency domain (FFT) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. This value defaults to 1000. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/gnuradio.manpages0000664000000000000000000000154212210246742012517 0ustar debian/dial_tone.1 debian/gnuradio-companion.1 debian/gnuradio-config-info.1 debian/create-gnuradio-out-of-tree-project.1 debian/fcd_nfm_rx.1 debian/file_rx_hrpt.1 debian/grcc.1 debian/gr_filter_design.1 debian/gr_modtool.1 debian/gr_plot_char.1 debian/gr_plot_const.1 debian/gr_plot_fft.1 debian/gr_plot_fft_c.1 debian/gr_plot_fft_f.1 debian/gr_plot_float.1 debian/gr_plot_int.1 debian/gr_plot_iq.1 debian/gr_plot_psd.1 debian/gr_plot_psd_c.1 debian/gr_plot_psd_f.1 debian/gr_plot_qt.1 debian/gr_plot_short.1 debian/gr_read_file_metadata.1 debian/hrpt_decode.1 debian/hrpt_demod.1 debian/tags_demo.1 debian/uhd_fft.1 debian/uhd_rx_cfile.1 debian/uhd_rx_nogui.1 debian/uhd_siggen.1 debian/uhd_siggen_gui.1 debian/usrp_flex.1 debian/usrp_flex_all.1 debian/usrp_flex_band.1 debian/usrp_rx_hrpt.1 debian/usrp_rx_hrpt_nogui.1 debian/volk_profile.1 debian/volk_modtool.1 debian/file_rx_hrpt.10000664000000000000000000000076411714071070011744 0ustar .TH FILE_RX_HRPT "1" "December 2011" "file_rx_hrpt 3.5" "User Commands" .SH NAME file_rx_hrpt \- USRP HRPT Receiver .SH SYNOPSIS .B file_rx_hrpt: [\fIoptions\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .SH "SEE ALSO" The full documentation for .B file_rx_hrpt is maintained as an HTML file. If the .B gnuradio-doc package is properly installed at your site .IP .B usr/share/doc/gnuradio-doc/html/noaa__api_8h.html .PP should give you access to the complete manual. debian/dial_tone.10000664000000000000000000000073511752524651011225 0ustar .TH DIAL_TONE "1" "May 2012" "DIAL_TONE 3.6.0" "User Commands" .SH NAME dial_tone \- dial tone example .SH DESCRIPTION GnuRadio Dial Tone example .SH OPTIONS None .PP Play a Dial Tone on the sound card output device. .SH "SEE ALSO" .PP The c++ gnuradio example programs are in /usr/bin. There are also many Python and GnuRadio Companion examples in /usr/share/gnuradio/examples/... .PP tags_demo(1) fcd_nfm_rx(1) uhd_rx_cfile(1) uhd_rx_nogui(1) uhd_siggen(1) uhd_siggen_gui(1) debian/libgnuradio-pager3.7.2.1.install0000664000000000000000000000004712250407017014701 0ustar usr/lib/*/libgnuradio-pager.so.3.7.2.1 debian/watch0000664000000000000000000000040112113270771010215 0ustar version=3 opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)[\-\.]?\d*)$/$1~$2/ \ http://gnuradio.org/releases/gnuradio/gnuradio-(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz)) # Bart Martens Mon, 28 Jan 2013 21:44:34 +0000 debian/create-gnuradio-out-of-tree-project.10000664000000000000000000000126211714102602016126 0ustar .TH CREATE-GNURADIO-OUT-OF-TREE-PROJECT "1" "December 2011" "create-gnuradio-out-of-tree-project 3.5" "User Commands" .SH NAME create-gnuradio-out-of-tree-project \- Create a prototype 'out of tree' GNU Radio project .SH SYNOPSIS .B create-gnuradio-out-of-tree-project: [\fIoptions\fR] [\fInew_module_name\fR] .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-T\fR TARBALL, \fB\-\-tarball\fR=TARBALL path to gr-howto-build-a-block gzipped tarball [default=] .SH "SEE ALSO" The full documentation for .B create-gnuradio-out-of-tree-project is maintained as an HTML file. See http://gnuradio.org/redmine/projects/gnuradio/wiki/BlocksCodingGuide debian/uhd_rx_nogui.10000664000000000000000000000270111714261275011752 0ustar .TH UHD_RX_NOGUI "1" "December 2011" "uhd_rx_nogui 3.5" "User Commands" .SH NAME uhd_rx_nogui \- GNU Radio receiver .SH SYNOPSIS .B uhd_rx_nogui.py [\fIoptions\fR] .SH DESCRIPTION Command line GNU Radio receiver that takes signal from a UHD peripheral receiver and sends demodulated audio to the sound device. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-a\fR ARGS, \fB\-\-args\fR=\fIARGS\fR UHD device address args , [default=] .TP \fB\-\-spec\fR=\fISPEC\fR Subdevice of UHD device where appropriate .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate [default=none] .TP \fB\-f\fR Hz, \fB\-\-frequency\fR=\fIHz\fR set receive frequency to Hz [default=none] .TP \fB\-c\fR Hz, \fB\-\-calibration\fR=\fIHz\fR set frequency offset to Hz [default=0.0] .TP \fB\-g\fR dB, \fB\-\-gain\fR=\fIdB\fR set RF gain [default is midpoint] .TP \fB\-m\fR TYPE, \fB\-\-modulation\fR=\fITYPE\fR set modulation type (AM,FM) [default=none] .TP \fB\-o\fR RATE, \fB\-\-output\-rate\fR=\fIRATE\fR set audio output rate to RATE [default=32000] .TP \fB\-r\fR dB, \fB\-\-rf\-squelch\fR=\fIdB\fR set RF squelch to dB [default=\-50.0] .TP \fB\-p\fR FREQ, \fB\-\-ctcss\fR=\fIFREQ\fR set CTCSS squelch to FREQ [default=none] .TP \fB\-O\fR AUDIO_OUTPUT, \fB\-\-audio\-output\fR=\fIAUDIO_OUTPUT\fR pcm device name. E.g., hw:0,0 or surround51 or /dev/dsp .SH "SEE ALSO" uhd_fft(1) uhd_rx_cfile(1) uhd_siggen(1) uhd_siggen_gui(1) debian/libvolk0.0.0.install0000664000000000000000000000003312240233240012562 0ustar usr/lib/*/libvolk.so.0.0.0 debian/gnuradio.prerm0000775000000000000000000000337712210243131012051 0ustar #!/bin/bash set -e # Copyright 2008-2012 Free Software Foundation, Inc. # # 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 # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. ICON_SIZES="32 48 64 128 256" SRCDIR="/usr/share/gnuradio/grc/freedesktop" # Only do this when the xdg-utils package is installed... if [ -x /usr/bin/xdg-desktop-menu ] ; then echo "Begin freedesktop uninstall..." for size in ${ICON_SIZES}; do \ echo "Uninstall icon: ${size}x${size}" xdg-icon-resource uninstall --noupdate --context mimetypes --theme gnome --size ${size} application-gnuradio-grc || true; \ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} application-gnuradio-grc || true; \ xdg-icon-resource uninstall --noupdate --context apps --theme gnome --size ${size} gnuradio-grc || true; \ xdg-icon-resource uninstall --noupdate --context apps --size ${size} gnuradio-grc || true; \ done xdg-icon-resource forceupdate || true echo "Uninstall mime type" xdg-mime uninstall ${SRCDIR}/gnuradio-grc.xml || true echo "Uninstall menu items" xdg-desktop-menu uninstall `ls ${SRCDIR}/*.desktop | xargs -n1 basename` || true echo "Done!" fi #DEBHELPER# debian/libgnuradio-qtgui3.7.2.1.install0000664000000000000000000000004712250407004014730 0ustar usr/lib/*/libgnuradio-qtgui.so.3.7.2.1 debian/libgnuradio-wxgui3.7.2.1.install0000664000000000000000000000004712250406734014753 0ustar usr/lib/*/libgnuradio-wxgui.so.3.7.2.1 debian/gr_plot_const.10000664000000000000000000000242111714130502012117 0ustar .TH GR_PLOT_CONST "1" "December 2011" "gr_plot_const 3.5" "User Commands" .SH NAME gr_plot_const \- constellation plot of I&Q data using GNU Radio .SH SYNOPSIS .B gr_plot_const: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio complex binary file and displays the I&Q data versus time and the constellation plot (I vs. Q). You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_fft.py(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/libgnuradio-comedi3.7.2.1.install0000664000000000000000000000005012250407065015040 0ustar usr/lib/*/libgnuradio-comedi.so.3.7.2.1 debian/libgnuradio-fcd3.7.2.1.udev0000664000000000000000000000041512251214321013626 0ustar # Funcube Dongle ACTION=="add", BUS=="usb", SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="fb56", GROUP:="usrp", MODE:="0660", SYMLINK+="FCD" # Funcube Dongle SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb56",GROUP:="usrp", MODE:="0660", SYMLINK+="FCD" debian/gnuradio-doc.install0000664000000000000000000000025312161074244013134 0ustar usr/share/doc/gnuradio*/README* /usr/share/doc/gnuradio-doc usr/share/doc/gnuradio*/html usr/share/doc/gnuradio-doc usr/share/doc/gnuradio*/xml usr/share/doc/gnuradio-doc debian/libgnuradio-fcd3.7.2.1.install0000664000000000000000000000004512250407053014335 0ustar usr/lib/*/libgnuradio-fcd.so.3.7.2.1 debian/gr_plot_float.10000664000000000000000000000234111714131347012107 0ustar .TH GR_PLOT_FLOAT "1" "December 2011" "gr_plot_float 3.5" "User Commands" .SH NAME gr_plot_float \- plot floating point binary date using GNU Radio .SH SYNOPSIS .B gr_plot_float: [\fIoptions\fR] \fIinput_filenames\fR .SH DESCRIPTION Takes a GNU Radio floating point binary file and displays the samples versus time. You can set the block size to specify how many points to read in at a time and the start position in the file. By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=1000] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/fcd_nfm_rx.10000664000000000000000000000216011741117725011364 0ustar .TH FCD_NFM_RX "1" "April 2012" "FCD_NFM_RX 3.5.3" "User Commands" .SH NAME fcd_nfm_rx \- Narrow band FM receiver example .SH DESCRIPTION FunCube Dongle Narrowband FM receiver .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-\-device\fR Audio input device (default=hw:1) .TP \fB\-\-freq\fR RF frequency in kHz (defaualt=145500) .TP \fB\-\-gain\fR LNA gain in dB (default=20) .PP The FunCube Dongle device appears as a stereo sound card, supported by ALSA drivers. The device to specify is the ALSA device corresponding to the dongle, from which receiver IQ data is fetched. This application sends demodulated audio out to the default ALSA soundcard output. .PP The FunCube Dongle device needs to have recent updated firmware. See the qthid-fcd-controller package for tools to update the firmware: qthid and qthid-2.2 applications. .PP The Funcube Dongle is a software defined radio receiver in a USB stick covering 64 MHz - 1.7 GHz. More info about the Funcube Dongle is available at http://www.funcubedongle.com/ .SH "SEE ALSO" qthid(1) uhd_rx_cfile(1) uhd_rx_nogui(1) uhd_siggen(1) uhd_siggen_gui(1) debian/uhd_siggen.10000664000000000000000000000326111714241135011367 0ustar .TH UHD_SIGGEN "1" "December 2011" "uhd_siggen 3.5" "User Commands" .SH NAME uhd_siggen \- Signal Generator using UHD hardware .SH SYNOPSIS .B uhd_siggen: [\fIoptions\fR] .SH DESCRIPTION Command-line signal generator application. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-a\fR ARGS, \fB\-\-args\fR=\fIARGS\fR UHD device address args , [default=] .TP \fB\-\-spec\fR=\fISPEC\fR Subdevice of UHD device where appropriate .TP \fB\-A\fR ANTENNA, \fB\-\-antenna\fR=\fIANTENNA\fR select Rx Antenna where appropriate .TP \fB\-s\fR SAMP_RATE, \fB\-\-samp\-rate\fR=\fISAMP_RATE\fR set sample rate (bandwidth) [default=1000000.0] .TP \fB\-g\fR GAIN, \fB\-\-gain\fR=\fIGAIN\fR set gain in dB (default is midpoint) .TP \fB\-f\fR FREQ, \fB\-\-tx\-freq\fR=\fIFREQ\fR Set carrier frequency to FREQ [default=mid\-point] .TP \fB\-x\fR WAVEFORM_FREQ, \fB\-\-waveform\-freq\fR=\fIWAVEFORM_FREQ\fR Set baseband waveform frequency to FREQ [default=0] .TP \fB\-y\fR WAVEFORM2_FREQ, \fB\-\-waveform2\-freq\fR=\fIWAVEFORM2_FREQ\fR Set 2nd waveform frequency to FREQ [default=none] .TP \fB\-\-sine\fR Generate a carrier modulated by a complex sine wave .TP \fB\-\-const\fR Generate a constant carrier .TP \fB\-\-offset\fR=\fIOFFSET\fR Set waveform phase offset to OFFSET [default=0] .TP \fB\-\-gaussian\fR Generate Gaussian random output .TP \fB\-\-uniform\fR Generate Uniform random output .TP \fB\-\-2tone\fR Generate Two Tone signal for IMD testing .TP \fB\-\-sweep\fR Generate a swept sine wave .TP \fB\-\-amplitude\fR=\fIAMPL\fR Set output amplitude to AMPL (0.0\-1.0) [default=0.15] .TP \fB\-v\fR, \fB\-\-verbose\fR Use verbose console output [default=False] .SH "SEE ALSO" uhd_siggen_gui(1) debian/libgnuradio-analog3.7.2.1.install0000664000000000000000000000005012250407117015037 0ustar usr/lib/*/libgnuradio-analog.so.3.7.2.1 debian/gnuradio-dev.install0000664000000000000000000000014212222662115013140 0ustar usr/include usr/lib/*/*.so usr/lib/*/pkgconfig/*.pc usr/lib/*/cmake/gnuradio usr/lib/*/cmake/volk debian/gr_plot_qt.10000664000000000000000000000056411714132161011426 0ustar .TH GR_PLOT_QT "1" "December 2011" "gr_plot_qt 3.5" "User Commands" .SH NAME gr_plot_qt \- plot data using Qt graphics and GNU Radio .SH DESCRIPTION Fancy plot display. .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/source/0000775000000000000000000000000011671413411010467 5ustar debian/source/format0000664000000000000000000000001411671413411011675 0ustar 3.0 (quilt) debian/usrp_rx_hrpt_nogui.10000664000000000000000000000115111714072174013214 0ustar .TH USRP_RX_HRPT_NOGUI "1" "December 2011" "usrp_rx_hrpt_nogui 3.5" "User Commands" .SH NAME usrp_rx_hrpt_nogui \- NOAA High Rate Picture Transmission Receiver .SH SYNOPSIS .B usrp_rx_hrpt_nogui: [\fIoptions\fR] .SH DESCRIPTION This version is a command-line only program. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .SH "SEE ALSO" The full documentation for .B usrp_rx_hrpt_nogui is maintained as an HTML file. If the .B gnuradio-doc package is properly installed at your site .IP .B usr/share/doc/gnuradio-doc/html/noaa__api_8h.html .PP should give you access to the complete manual. debian/grcc.10000664000000000000000000000051512072203531010164 0ustar .TH GRCC "1" "December 2011" "grcc 3.6" "User Commands" .SH NAME grcc \- Gnu Radio Companion Compiler .SH DESCRIPTION Just compile a gnuradio companion flowgraph without invoking the gui. .PP Given an input GRC file and an output directory, create a runnable application in the output directory. .SH "SEE ALSO" gnuradio-companion(1) debian/gnuradio.menu0000664000000000000000000000040411720254474011672 0ustar ?package(gnuradio):needs="X11" \ section="Applications/Programming" \ title="grc" longtitle="gnuradio-companion" \ command="/usr/bin/gnuradio-companion" \ description="a graphical tool for creating signal flow graphs and generating flow-graph source code" debian/libgnuradio-fft3.7.2.1.install0000664000000000000000000000004512250407035014360 0ustar usr/lib/*/libgnuradio-fft.so.3.7.2.1 debian/libgnuradio-atsc3.7.2.1.install0000664000000000000000000000004612250407112014530 0ustar usr/lib/*/libgnuradio-atsc.so.3.7.2.1 debian/gnuradio-config-info.10000664000000000000000000000146011714105541013256 0ustar .TH GNURADIO-CONFIG-INFO "1" "February 2012" "gnuradio-config-info 3.5.0" "User Commands" .SH NAME gnuradio-config-info \- show details on installed GNU radio .SH DESCRIPTION .SS "Program options: gnuradio [options]:" .TP \fB\-h\fR [ \fB\-\-help\fR ] print help message .TP \fB\-\-prefix\fR print gnuradio installation prefix .TP \fB\-\-sysconfdir\fR print gnuradio system configuration directory .TP \fB\-\-prefsdir\fR print gnuradio preferences directory .TP \fB\-\-builddate\fR print gnuradio build date (RFC2822 format) .TP \fB\-v\fR [ \fB\-\-version\fR ] print gnuradio version .SH "SEE ALSO" The full documentation for .B GNU Radio is in HTML format. If the .B gnuradio-doc package is properly installed at your site .IP .B /usr/share/doc/gnuradio-doc/html/ .PP should give you access to the complete manual. debian/gr_plot_psd_f.10000664000000000000000000000423311714131712012073 0ustar .TH GR_PLOT_PSD_F "1" "December 2011" "gr_plot_psd_f 3.5" "User Commands" .SH NAME gr_plot_psd_f \- plot power spectral density using GNU Radio .SH SYNOPSIS .B gr_plot_psd_f: [\fIoptions\fR] \fIinput_filename\fR .SH DESCRIPTION Takes a GNU Radio binary file (with specified data type using \fB\-\-data\-type\fR) and displays the I&Q data versus time as well as the power spectral density (PSD) plot. The y\-axis values are plotted assuming volts as the amplitude of the I&Q streams and converted into dBm in the frequency domain (the 1/N power adjustment out of the FFT is performed internally). The script plots a certain block of data at a time, specified on the command line as \fB\-B\fR or \fB\-\-block\fR. The start position in the file can be set by specifying \fB\-s\fR or \fB\-\-start\fR and defaults to 0 (the start of the file). By default, the system assumes a sample rate of 1, so in time, each sample is plotted versus the sample number. To set a true time and frequency axis, set the sample rate (\fB\-R\fR or \fB\-\-sample\-rate\fR) to the sample rate used when capturing the samples. Finally, the size of the FFT to use for the PSD and spectrogram plots can be set independently with \fB\-\-psd\-size\fR and \fB\-\-spec\-size\fR, respectively. The spectrogram plot does not display by default and is turned on with \fB\-S\fR or \fB\-\-enable\-spec\fR. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-B\fR BLOCK, \fB\-\-block\fR=\fIBLOCK\fR Specify the block size [default=8192] .TP \fB\-s\fR START, \fB\-\-start\fR=\fISTART\fR Specify where to start in the file [default=0] .TP \fB\-R\fR SAMPLE_RATE, \fB\-\-sample\-rate\fR=\fISAMPLE_RATE\fR Set the sampler rate of the data [default=1.0] .TP \fB\-\-psd\-size\fR=\fIPSD_SIZE\fR Set the size of the PSD FFT [default=1024] .TP \fB\-\-spec\-size\fR=\fISPEC_SIZE\fR Set the size of the spectrogram FFT [default=256] .TP \fB\-S\fR, \fB\-\-enable\-spec\fR Turn on plotting the spectrogram [default=False] .SH "SEE ALSO" gr_plot_char(1) gr_plot_const(1) gr_plot_fft_c(1) gr_plot_fft_f(1) gr_plot_float(1) gr_plot_int(1) gr_plot_iq(1) gr_plot_psd_c(1) gr_plot_psd_f(1) gr_plot_qt(1) gr_plot_short(1) debian/volk_modtool.10000664000000000000000000001051512210245632011761 0ustar .TH GNURADIO "1" "August 2013" "volk_modtool 3.7" "User Commands" .SH NAME volk_modtool \- tailor VOLK modules .SH DESCRIPTION The volk_modtool tool is installed along with VOLK as a way of helping to construct, add to, and interogate the VOLK library or companion libraries. .P volk_modtool is installed into $prefix/bin. .P VOLK modtool enables creating standalone (out-of-tree) VOLK modules and provides a few tools for sharing VOLK kernels between VOLK modules. If you need to design or work with VOLK kernels away from the canonical VOLK library, this is the tool. If you need to tailor your own VOLK library for whatever reason, this is the tool. .P The canonical VOLK library installs a volk.h and a libvolk.so. Your own library will install volk_$name.h and libvolk_$name.so. Ya Gronk? Good. .P There isn't a substantial difference between the canonical VOLK module and any other VOLK module. They're all peers. Any module created via VOLK modtool will come complete with a default volk_modtool.cfg file associating the module with the base from which it came, its distinctive $name and its destination (or path). These values (created from user input if VOLK modtool runs without a user-supplied config file or a default config file) serve as default values for some VOLK modtool actions. It's more or less intended for the user to change directories to the top level of a created VOLK module and then run volk_modtool to take advantage of the values stored in the default volk_modtool.cfg file. .P Apart from creating new VOLK modules, VOLK modtool allows you to list the names of kernels in other modules, list the names of kernels in the current module, add kernels from another module into the current module, and remove kernels from the current module. When moving kernels between modules, VOLK modtool does its best to keep the qa and profiling code for those kernels intact. If the base has a test or a profiling call for some kernel, those calls will follow the kernel when VOLK modtool adds that kernel. If QA or profiling requires a puppet kernel, the puppet kernel will follow the original kernel when VOLK modtool adds that original kernel. VOLK modtool respects puppets. .P ====================================================================== .P .SH Installing a new VOLK Library: .P Run the command "volk_modtool -i". This will ask you three questions: .P name: // the name to give your VOLK library: volk_ destination: // directory new source tree is built under -- must exists. // It will create /volk_ base: // the directory containing the original VOLK source code .P This will build a new skeleton directory in the destination provided with the name volk_. It will contain the necessary structure to build: .P mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/opt/volk ../ make sudo make install .P Right now, the library is empty and contains no kernels. Kernels can be added from another VOLK library using the '-a' option. If not specified, the kernel will be extracted from the base VOLK directory. Using the '-b' allows us to specify another VOLK library to use for this purpose. .P volk_modtool -a -n 32fc_x2_conjugate_dot_prod_32fc .P This will put the code for the new kernel into /volk_/kernels/volk_/ .P Other kernels must be added by hand. See the following webpages for more information about creating VOLK kernels: http://gnuradio.org/doc/doxygen/volk_guide.html http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk .P ====================================================================== .P .SH OPTIONS .P Options for Adding and Removing Kernels: -a, --add_kernel Add kernel from existing VOLK module. Uses the base VOLK module unless -b is used. Use -n to specify the kernel name. Requires: -n. Optional: -b .P -A, --add_all_kernels Add all kernels from existing VOLK module. Uses the base VOLK module unless -b is used. Optional: -b .P -x, --remove_kernel Remove kernel from module. Required: -n. Optional: -b .P Options for Listing Kernels: -l, --list Lists all kernels available in the base VOLK module. .P -k, --kernels Lists all kernels in this VOLK module. .P -r, --remote-list Lists all kernels in another VOLK module that is specified using the -b option. debian/libgnuradio-runtime3.7.2.1.install0000664000000000000000000000005112250406777015275 0ustar usr/lib/*/libgnuradio-runtime.so.3.7.2.1