diff options
Diffstat (limited to 'grc')
38 files changed, 533 insertions, 1190 deletions
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt new file mode 100644 index 000000000..340b8794c --- /dev/null +++ b/grc/CMakeLists.txt @@ -0,0 +1,128 @@ +# Copyright 2011 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. + +######################################################################## +# Setup dependencies +######################################################################## +include(GrPython) + +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) +GR_PYTHON_CHECK_MODULE("lxml >= 1.3.6" lxml.etree "lxml.etree.LXML_VERSION >= (1, 3, 6, 0)" LXML_FOUND) +GR_PYTHON_CHECK_MODULE("pygtk >= 2.10.0" gtk "gtk.pygtk_version >= (2, 10, 0)" PYGTK_FOUND) +GR_PYTHON_CHECK_MODULE("numpy" numpy True NUMPY_FOUND) + +######################################################################## +# Register component +######################################################################## +include(GrComponent) +if(NOT CMAKE_CROSSCOMPILING) + set(grc_python_deps + CHEETAH_FOUND + LXML_FOUND + PYGTK_FOUND + NUMPY_FOUND + ) +endif(NOT CMAKE_CROSSCOMPILING) + +GR_REGISTER_COMPONENT("gnuradio-companion" ENABLE_GRC + ENABLE_GR_CORE + ENABLE_PYTHON + PYTHON_MIN_VER_FOUND + ${grc_python_deps} +) + +######################################################################## +# Begin conditional configuration +######################################################################## +if(ENABLE_GRC) + +######################################################################## +# Setup CPack components +######################################################################## +include(GrPackage) +CPACK_COMPONENT("grc" + DISPLAY_NAME "GNU Radio Companion" + DESCRIPTION "Graphical flow graph designer" + DEPENDS "core_python" +) + +######################################################################## +# Create and install the grc conf file +######################################################################## +file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${GR_PKG_DOC_DIR} docdir) +file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${GRC_BLOCKS_DIR} blocksdir) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/grc.conf.in + ${CMAKE_CURRENT_BINARY_DIR}/grc.conf +@ONLY) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/grc.conf + DESTINATION ${GR_PKG_CONF_DIR} + COMPONENT "grc" +) + +GR_PYTHON_INSTALL( + FILES __init__.py + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc + COMPONENT "grc" +) + +######################################################################## +# Appens NSIS commands to set environment variables +######################################################################## +if(WIN32) + +file(TO_NATIVE_PATH ${GR_PKG_DOC_DIR} GR_DOC_DIR) +string(REPLACE "\\" "\\\\" GR_DOC_DIR ${GR_DOC_DIR}) + +file(TO_NATIVE_PATH ${GRC_BLOCKS_DIR} GRC_BLOCKS_PATH) +string(REPLACE "\\" "\\\\" GRC_BLOCKS_PATH ${GRC_BLOCKS_PATH}) + +file(TO_NATIVE_PATH ${GR_PYTHON_DIR} GR_PYTHON_POSTFIX) +string(REPLACE "\\" "\\\\" GR_PYTHON_POSTFIX ${GR_PYTHON_POSTFIX}) + +CPACK_SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} + WriteRegStr HKLM ${HLKM_ENV} \\\"GR_DOC_DIR\\\" \\\"$INSTDIR\\\\${GR_DOC_DIR}\\\" + WriteRegStr HKLM ${HLKM_ENV} \\\"GRC_BLOCKS_PATH\\\" \\\"$INSTDIR\\\\${GRC_BLOCKS_PATH}\\\" + WriteRegStr HKLM \\\"SOFTWARE\\\\Python\\\\PythonCore\\\\2.7\\\\PythonPath\\\" \\\"gnuradio\\\" \\\"$INSTDIR\\\\${GR_PYTHON_POSTFIX}\\\" +") + +CPACK_SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS} + DeleteRegValue HKLM ${HLKM_ENV} \\\"GR_DOC_DIR\\\" + DeleteRegValue HKLM ${HLKM_ENV} \\\"GRC_BLOCKS_PATH\\\" + DeleteRegValue HKLM \\\"SOFTWARE\\\\Python\\\\PythonCore\\\\2.7\\\\PythonPath\\\" \\\"gnuradio\\\" +") + +endif(WIN32) + +######################################################################## +# Add subdirectories +######################################################################## +add_subdirectory(base) +add_subdirectory(blocks) +add_subdirectory(freedesktop) +add_subdirectory(grc_gnuradio) +add_subdirectory(gui) +add_subdirectory(python) +add_subdirectory(scripts) + +endif(ENABLE_GRC) diff --git a/grc/base/CMakeLists.txt b/grc/base/CMakeLists.txt new file mode 100644 index 000000000..c6d6a09eb --- /dev/null +++ b/grc/base/CMakeLists.txt @@ -0,0 +1,42 @@ +# Copyright 2011 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. + +######################################################################## +GR_PYTHON_INSTALL(FILES + odict.py + ParseXML.py + Block.py + Connection.py + Constants.py + Element.py + FlowGraph.py + Param.py + Platform.py + Port.py + __init__.py + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/base + COMPONENT "grc" +) + +install(FILES + block_tree.dtd + flow_graph.dtd + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/base + COMPONENT "grc" +) diff --git a/grc/blocks/CMakeLists.txt b/grc/blocks/CMakeLists.txt new file mode 100644 index 000000000..ad31b0975 --- /dev/null +++ b/grc/blocks/CMakeLists.txt @@ -0,0 +1,22 @@ +# Copyright 2011 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. + +######################################################################## +file(GLOB xml_files "*.xml") +install(FILES ${xml_files} DESTINATION ${GRC_BLOCKS_DIR} COMPONENT "grc") diff --git a/grc/blocks/Makefile.am b/grc/blocks/Makefile.am index 1ca4bb848..f326285e5 100644 --- a/grc/blocks/Makefile.am +++ b/grc/blocks/Makefile.am @@ -30,10 +30,6 @@ dist_ourdata_DATA = \ blks2_analysis_filterbank.xml \ blks2_cvsd_encode.xml \ blks2_cvsd_decode.xml \ - blks2_dxpsk_demod.xml \ - blks2_dxpsk_mod.xml \ - blks2_dxpsk2_demod.xml \ - blks2_dxpsk2_mod.xml \ blks2_error_rate.xml \ blks2_fm_deemph.xml \ blks2_fm_demod_cf.xml \ @@ -43,8 +39,6 @@ dist_ourdata_DATA = \ blks2_logpwrfft_x.xml \ blks2_nbfm_rx.xml \ blks2_nbfm_tx.xml \ - blks2_ofdm_demod.xml \ - blks2_ofdm_mod.xml \ blks2_packet_decoder.xml \ blks2_packet_encoder.xml \ blks2_pfb_arb_resampler.xml \ @@ -71,12 +65,9 @@ dist_ourdata_DATA = \ gr_and_xx.xml \ gr_and_const_xx.xml \ gr_argmax_xx.xml \ - gr_binary_slicer_fb.xml \ gr_channel_model.xml \ gr_char_to_float.xml \ gr_chunks_to_symbols.xml \ - gr_clock_recovery_mm_xx.xml \ - gr_cma_equalizer_cc.xml \ gr_complex_to_arg.xml \ gr_complex_to_float.xml \ gr_complex_to_imag.xml \ @@ -85,13 +76,11 @@ dist_ourdata_DATA = \ gr_complex_to_mag_squared.xml \ gr_complex_to_real.xml \ gr_conjugate_cc.xml \ - gr_constellation_decoder_cb.xml \ gr_copy.xml \ - gr_correlate_access_code_bb.xml \ - gr_costas_loop_cc.xml \ gr_cpfsk_bc.xml \ gr_ctcss_squelch_ff.xml \ gr_dc_blocker.xml \ + gr_cpmmod_bc.xml \ gr_decode_ccsds_27_fb.xml \ gr_deinterleave.xml \ gr_delay.xml \ @@ -109,7 +98,6 @@ dist_ourdata_DATA = \ gr_file_source.xml \ gr_filter_delay_fc.xml \ gr_fir_filter_xxx.xml \ - gr_fll_band_edge_cc.xml \ gr_float_to_char.xml \ gr_float_to_complex.xml \ gr_float_to_short.xml \ @@ -118,6 +106,7 @@ dist_ourdata_DATA = \ gr_freq_xlating_fir_filter_xxx.xml \ gr_frequency_modulator_fc.xml \ gr_glfsr_source_x.xml \ + gr_gmskmod_bc.xml \ gr_goertzel_fc.xml \ gr_head.xml \ gr_hilbert_fc.xml \ @@ -135,7 +124,6 @@ dist_ourdata_DATA = \ gr_message_sink.xml \ gr_message_source.xml \ gr_moving_average_xx.xml \ - gr_mpsk_receiver_cc.xml \ gr_mpsk_sync_cc.xml \ gr_multiply_const_vxx.xml \ gr_multiply_xx.xml \ diff --git a/grc/blocks/blks2_dxpsk2_demod.xml b/grc/blocks/blks2_dxpsk2_demod.xml deleted file mode 100644 index 7fe4be32b..000000000 --- a/grc/blocks/blks2_dxpsk2_demod.xml +++ /dev/null @@ -1,152 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##DPSK2 Demod - 2, 4 -################################################### - --> -<block> - <name>DPSK2 Demod</name> - <key>blks2_dxpsk2_demod</key> - <import>from gnuradio import blks2</import> - <make>blks2.$(type)2_demod( - samples_per_symbol=$samples_per_symbol, - excess_bw=$excess_bw, - freq_alpha=$freq_alpha, - phase_alpha=$phase_alpha, - timing_alpha=$timing_alpha, - timing_max_dev=$timing_max_dev, - gray_code=$gray_code, - verbose=$verbose, - log=$log, - sync_out=$sync_out, -)</make> - <callback>clock_recov.set_alpha($costas_alpha)</callback> - <callback>clock_recov.set_beta(0.25*$costas_alpha**2)</callback> - <callback>time_recov.set_alpha($timing_alpha)</callback> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>DBPSK</name> - <key>dbpsk</key> - </option> - <option> - <name>DQPSK</name> - <key>dqpsk</key> - </option> - </param> - <param> - <name>Samples/Symbol</name> - <key>samples_per_symbol</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>Excess BW</name> - <key>excess_bw</key> - <value>0.35</value> - <type>real</type> - </param> - <param> - <name>FLL Alpha</name> - <key>freq_alpha</key> - <value>0.010</value> - <type>real</type> - </param> - <param> - <name>Phase Alpha</name> - <key>phase_alpha</key> - <value>0.100</value> - <type>real</type> - </param> - <param> - <name>Timing Alpha</name> - <key>timing_alpha</key> - <value>0.100</value> - <type>real</type> - </param> - <param> - <name>Timing Max Dev</name> - <key>timing_max_dev</key> - <value>1.5</value> - <type>real</type> - </param> - <param> - <name>Omega Relative Limit</name> - <key>omega_relative_limit</key> - <value>0.005</value> - <type>real</type> - </param> - <param> - <name>Gray Code</name> - <key>gray_code</key> - <value>True</value> - <type>bool</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - <param> - <name>Verbose</name> - <key>verbose</key> - <value>False</value> - <type>bool</type> - <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Logging</name> - <key>log</key> - <value>False</value> - <type>bool</type> - <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Sync Out</name> - <key>sync_out</key> - <value>False</value> - <type>bool</type> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> - <source> - <name>sync</name> - <type>complex</type> - <optional>1</optional> - </source> -</block> diff --git a/grc/blocks/blks2_dxpsk2_mod.xml b/grc/blocks/blks2_dxpsk2_mod.xml deleted file mode 100644 index bf292be17..000000000 --- a/grc/blocks/blks2_dxpsk2_mod.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##DPSK2 Mod - 2, 4 -################################################### - --> -<block> - <name>DPSK2 Mod</name> - <key>blks2_dxpsk2_mod</key> - <import>from gnuradio import blks2</import> - <make>blks2.$(type)2_mod( - samples_per_symbol=$samples_per_symbol, - excess_bw=$excess_bw, - gray_code=$gray_code, - verbose=$verbose, - log=$log, -)</make> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>DBPSK</name> - <key>dbpsk</key> - </option> - <option> - <name>DQPSK</name> - <key>dqpsk</key> - </option> - </param> - <param> - <name>Samples/Symbol</name> - <key>samples_per_symbol</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>Excess BW</name> - <key>excess_bw</key> - <value>0.35</value> - <type>real</type> - </param> - <param> - <name>Gray Code</name> - <key>gray_code</key> - <value>True</value> - <type>bool</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - <param> - <name>Verbose</name> - <key>verbose</key> - <value>False</value> - <type>bool</type> - <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Logging</name> - <key>log</key> - <value>False</value> - <type>bool</type> - <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/grc/blocks/blks2_dxpsk_demod.xml b/grc/blocks/blks2_dxpsk_demod.xml deleted file mode 100644 index 1c96b6cec..000000000 --- a/grc/blocks/blks2_dxpsk_demod.xml +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##DPSK Demod - 2, 4, 8 -################################################### - --> -<block> - <name>DPSK Demod</name> - <key>blks2_dxpsk_demod</key> - <import>from gnuradio import blks2</import> - <make>blks2.$(type)_demod( - samples_per_symbol=$samples_per_symbol, - excess_bw=$excess_bw, - costas_alpha=$costas_alpha, - gain_mu=$gain_mu, - mu=$mu, - omega_relative_limit=$omega_relative_limit, - gray_code=$gray_code, - verbose=$verbose, - log=$log, -)</make> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>DBPSK</name> - <key>dbpsk</key> - </option> - <option> - <name>DQPSK</name> - <key>dqpsk</key> - </option> - <option> - <name>D8PSK</name> - <key>d8psk</key> - </option> - </param> - <param> - <name>Samples/Symbol</name> - <key>samples_per_symbol</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>Excess BW</name> - <key>excess_bw</key> - <value>0.35</value> - <type>real</type> - </param> - <param> - <name>Costas Alpha</name> - <key>costas_alpha</key> - <value>0.175</value> - <type>real</type> - </param> - <param> - <name>Gain Mu</name> - <key>gain_mu</key> - <value>0.175</value> - <type>real</type> - </param> - <param> - <name>Mu</name> - <key>mu</key> - <value>0.5</value> - <type>real</type> - </param> - <param> - <name>Omega Relative Limit</name> - <key>omega_relative_limit</key> - <value>0.005</value> - <type>real</type> - </param> - <param> - <name>Gray Code</name> - <key>gray_code</key> - <value>True</value> - <type>bool</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - <param> - <name>Verbose</name> - <key>verbose</key> - <value>False</value> - <type>bool</type> - <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Logging</name> - <key>log</key> - <value>False</value> - <type>bool</type> - <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/grc/blocks/blks2_dxpsk_mod.xml b/grc/blocks/blks2_dxpsk_mod.xml deleted file mode 100644 index 77505d8ad..000000000 --- a/grc/blocks/blks2_dxpsk_mod.xml +++ /dev/null @@ -1,99 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##DPSK Mod - 2, 4, 8 -################################################### - --> -<block> - <name>DPSK Mod</name> - <key>blks2_dxpsk_mod</key> - <import>from gnuradio import blks2</import> - <make>blks2.$(type)_mod( - samples_per_symbol=$samples_per_symbol, - excess_bw=$excess_bw, - gray_code=$gray_code, - verbose=$verbose, - log=$log, -)</make> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>DBPSK</name> - <key>dbpsk</key> - </option> - <option> - <name>DQPSK</name> - <key>dqpsk</key> - </option> - <option> - <name>D8PSK</name> - <key>d8psk</key> - </option> - </param> - <param> - <name>Samples/Symbol</name> - <key>samples_per_symbol</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>Excess BW</name> - <key>excess_bw</key> - <value>0.35</value> - <type>real</type> - </param> - <param> - <name>Gray Code</name> - <key>gray_code</key> - <value>True</value> - <type>bool</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - <param> - <name>Verbose</name> - <key>verbose</key> - <value>False</value> - <type>bool</type> - <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Logging</name> - <key>log</key> - <value>False</value> - <type>bool</type> - <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> - <option> - <name>On</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/grc/blocks/blks2_ofdm_demod.xml b/grc/blocks/blks2_ofdm_demod.xml deleted file mode 100644 index ac5ee4795..000000000 --- a/grc/blocks/blks2_ofdm_demod.xml +++ /dev/null @@ -1,122 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##OFDM Demod -################################################### - --> -<block> - <name>OFDM Demod</name> - <key>blks2_ofdm_demod</key> - <import>from grc_gnuradio import blks2 as grc_blks2</import> - <import>from gnuradio import blks2</import> - <make>grc_blks2.packet_demod_$(type.fcn)(blks2.ofdm_demod( - options=grc_blks2.options( - modulation="$modulation", - fft_length=$fft_length, - occupied_tones=$occupied_tones, - cp_length=$cp_length, - snr=$snr, - log=None, - verbose=None, - ), - callback=lambda ok, payload: self.$(id).recv_pkt(ok, payload), - ), -)</make> - <param> - <name>Output Type</name> - <key>type</key> - <value>float</value> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>fcn:c</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>fcn:f</opt> - </option> - <option> - <name>Int</name> - <key>int</key> - <opt>fcn:i</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>fcn:s</opt> - </option> - <option> - <name>Byte</name> - <key>byte</key> - <opt>fcn:b</opt> - </option> - </param> - <param> - <name>Modulation</name> - <key>modulation</key> - <type>enum</type> - <option> - <name>BPSK</name> - <key>bpsk</key> - </option> - <option> - <name>QPSK</name> - <key>qpsk</key> - </option> - <option> - <name>8PSK</name> - <key>8psk</key> - </option> - <option> - <name>QAM8</name> - <key>qam8</key> - </option> - <option> - <name>QAM16</name> - <key>qam16</key> - </option> - <option> - <name>QAM64</name> - <key>qam64</key> - </option> - <option> - <name>QAM256</name> - <key>qam256</key> - </option> - </param> - <param> - <name>FFT Length</name> - <key>fft_length</key> - <value>512</value> - <type>int</type> - </param> - <param> - <name>Occupied Tones</name> - <key>occupied_tones</key> - <value>200</value> - <type>int</type> - </param> - <param> - <name>Cyclic Prefix Length</name> - <key>cp_length</key> - <value>128</value> - <type>int</type> - </param> - <param> - <name>SNR</name> - <key>snr</key> - <value>10</value> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>$type</type> - </source> - <doc>Payload Length: 0 for automatic.</doc> -</block> diff --git a/grc/blocks/blks2_ofdm_mod.xml b/grc/blocks/blks2_ofdm_mod.xml deleted file mode 100644 index 2c54d10f4..000000000 --- a/grc/blocks/blks2_ofdm_mod.xml +++ /dev/null @@ -1,135 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##OFDM Mod -################################################### - --> -<block> - <name>OFDM Mod</name> - <key>blks2_ofdm_mod</key> - <import>from grc_gnuradio import blks2 as grc_blks2</import> - <import>from gnuradio import blks2</import> - <make>grc_blks2.packet_mod_$(type.fcn)(blks2.ofdm_mod( - options=grc_blks2.options( - modulation="$modulation", - fft_length=$fft_length, - occupied_tones=$occupied_tones, - cp_length=$cp_length, - pad_for_usrp=$pad_for_usrp, - log=None, - verbose=None, - ), - ), - payload_length=$payload_length, -)</make> - <param> - <name>Input Type</name> - <key>type</key> - <value>float</value> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>fcn:c</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>fcn:f</opt> - </option> - <option> - <name>Int</name> - <key>int</key> - <opt>fcn:i</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>fcn:s</opt> - </option> - <option> - <name>Byte</name> - <key>byte</key> - <opt>fcn:b</opt> - </option> - </param> - <param> - <name>Modulation</name> - <key>modulation</key> - <type>enum</type> - <option> - <name>BPSK</name> - <key>bpsk</key> - </option> - <option> - <name>QPSK</name> - <key>qpsk</key> - </option> - <option> - <name>8PSK</name> - <key>8psk</key> - </option> - <option> - <name>QAM8</name> - <key>qam8</key> - </option> - <option> - <name>QAM16</name> - <key>qam16</key> - </option> - <option> - <name>QAM64</name> - <key>qam64</key> - </option> - <option> - <name>QAM256</name> - <key>qam256</key> - </option> - </param> - <param> - <name>FFT Length</name> - <key>fft_length</key> - <value>512</value> - <type>int</type> - </param> - <param> - <name>Occupied Tones</name> - <key>occupied_tones</key> - <value>200</value> - <type>int</type> - </param> - <param> - <name>Cyclic Prefix Length</name> - <key>cp_length</key> - <value>128</value> - <type>int</type> - </param> - <param> - <name>Pad for USRP</name> - <key>pad_for_usrp</key> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - <param> - <name>Payload Length</name> - <key>payload_length</key> - <value>0</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>$type</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> - <doc>Payload Length: 0 for automatic.</doc> -</block> diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml index 4b864690c..91afc506c 100644 --- a/grc/blocks/block_tree.xml +++ b/grc/blocks/block_tree.xml @@ -110,26 +110,19 @@ <block>gr_unpacked_to_packed_xx</block> <block>gr_packed_to_unpacked_xx</block> <block>gr_unpack_k_bits_bb</block> - <block>gr_binary_slicer_fb</block> <block>gr_chunks_to_symbols_xx</block> <block>gr_map_bb</block> </cat> <cat> <name>Synchronizers</name> - <block>gr_clock_recovery_mm_xx</block> <block>gr_pfb_clock_sync_xxx</block> - <block>gr_costas_loop_cc</block> <block>gr_mpsk_sync_cc</block> - <block>gr_mpsk_receiver_cc</block> <block>gr_pll_carriertracking_cc</block> <block>gr_pll_freqdet_cf</block> <block>gr_pll_refout_cc</block> - <block>gr_fll_band_edge_cc</block> - - <block>gr_correlate_access_code_bb</block> <block>gr_pn_correlator_cc</block> <block>gr_simple_correlator</block> <block>gr_simple_framer</block> @@ -182,7 +175,6 @@ <block>gr_single_pole_iir_filter_xx</block> <block>gr_hilbert_fc</block> <block>gr_goertzel_fc</block> - <block>gr_cma_equalizer_cc</block> <block>gr_rational_resampler_base_xxx</block> <block>blks2_rational_resampler_xxx</block> <block>gr_fractional_interpolator_xx</block> @@ -198,9 +190,10 @@ <block>gr_phase_modulator_fc</block> <block>gr_quadrature_demod_cf</block> <block>gr_cpfsk_bc</block> + <block>gr_cpmmod_bc</block> + <block>gr_gmskmod_bc</block> <block>gr_diff_phasor_cc</block> - <block>gr_constellation_decoder_cb</block> <block>gr_diff_encoder_bb</block> <block>gr_diff_decoder_bb</block> @@ -217,20 +210,11 @@ <block>blks2_fm_deemph</block> <block>blks2_fm_preemph</block> - <block>blks2_dxpsk_mod</block> - <block>blks2_dxpsk_demod</block> - - <block>blks2_dxpsk2_mod</block> - <block>blks2_dxpsk2_demod</block> - <block>blks2_gmsk_mod</block> <block>blks2_gmsk_demod</block> <block>blks2_qamx_mod</block> <block>blks2_qamx_demod</block> - - <block>blks2_ofdm_mod</block> - <block>blks2_ofdm_demod</block> </cat> <cat> <name>Error Correction</name> diff --git a/grc/blocks/gr_binary_slicer_fb.xml b/grc/blocks/gr_binary_slicer_fb.xml deleted file mode 100644 index 85d71e709..000000000 --- a/grc/blocks/gr_binary_slicer_fb.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Binary Slicer -################################################### - --> -<block> - <name>Binary Slicer</name> - <key>gr_binary_slicer_fb</key> - <import>from gnuradio import gr</import> - <make>gr.binary_slicer_fb()</make> - <sink> - <name>in</name> - <type>float</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/grc/blocks/gr_clock_recovery_mm_xx.xml b/grc/blocks/gr_clock_recovery_mm_xx.xml deleted file mode 100644 index 613cc23bf..000000000 --- a/grc/blocks/gr_clock_recovery_mm_xx.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Clock Recovery MM -################################################### - --> -<block> - <name>Clock Recovery MM</name> - <key>gr_clock_recovery_mm_xx</key> - <import>from gnuradio import gr</import> - <make>gr.clock_recovery_mm_$(type.fcn)($omega, $gain_omega, $mu, $gain_mu, $omega_relative_limit)</make> - <callback>set_omega($omega)</callback> - <callback>set_gain_omega($gain_omega)</callback> - <callback>set_mu($mu)</callback> - <callback>set_gain_mu($gain_mu)</callback> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>fcn:cc</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>fcn:ff</opt> - </option> - </param> - <param> - <name>Omega</name> - <key>omega</key> - <type>real</type> - </param> - <param> - <name>Gain Omega</name> - <key>gain_omega</key> - <type>real</type> - </param> - <param> - <name>Mu</name> - <key>mu</key> - <type>real</type> - </param> - <param> - <name>Gain Mu</name> - <key>gain_mu</key> - <type>real</type> - </param> - <param> - <name>Omega Relative Limit</name> - <key>omega_relative_limit</key> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>$type</type> - </sink> - <source> - <name>out</name> - <type>$type</type> - </source> -</block> diff --git a/grc/blocks/gr_cma_equalizer_cc.xml b/grc/blocks/gr_cma_equalizer_cc.xml deleted file mode 100644 index 142fb6d81..000000000 --- a/grc/blocks/gr_cma_equalizer_cc.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##CMA Equalizer -################################################### - --> -<block> - <name>CMA Equalizer</name> - <key>gr_cma_equalizer_cc</key> - <import>from gnuradio import gr</import> - <make>gr.cma_equalizer_cc($num_taps, $modulus, $mu)</make> - <param> - <name>Num Taps</name> - <key>num_taps</key> - <value>64</value> - <type>int</type> - </param> - <param> - <name>Modulus</name> - <key>modulus</key> - <type>real</type> - </param> - <param> - <name>Mu</name> - <key>mu</key> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/grc/blocks/gr_constellation_decoder_cb.xml b/grc/blocks/gr_constellation_decoder_cb.xml deleted file mode 100644 index 99d897a3a..000000000 --- a/grc/blocks/gr_constellation_decoder_cb.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Constellation Decoder -################################################### - --> -<block> - <name>Constellation Decoder</name> - <key>gr_constellation_decoder_cb</key> - <import>from gnuradio import gr</import> - <make>gr.constellation_decoder_cb($sym_position, $sym_value_out)</make> - <param> - <name>Symbol Position</name> - <key>sym_position</key> - <type>complex_vector</type> - </param> - <param> - <name>Symbol Value Out</name> - <key>sym_value_out</key> - <type>int_vector</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/grc/blocks/gr_correlate_access_code_bb.xml b/grc/blocks/gr_correlate_access_code_bb.xml deleted file mode 100644 index e13d2d070..000000000 --- a/grc/blocks/gr_correlate_access_code_bb.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Correlate Access Code -################################################### - --> -<block> - <name>Correlate Access Code</name> - <key>gr_correlate_access_code_bb</key> - <import>from gnuradio import gr</import> - <make>gr.correlate_access_code_bb($access_code, $threshold)</make> - <param> - <name>Access Code</name> - <key>access_code</key> - <value>101010</value> - <type>string</type> - </param> - <param> - <name>Threshold</name> - <key>threshold</key> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/grc/blocks/gr_costas_loop_cc.xml b/grc/blocks/gr_costas_loop_cc.xml deleted file mode 100644 index e0db8bc5d..000000000 --- a/grc/blocks/gr_costas_loop_cc.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Costas Loop -################################################### - --> -<block> - <name>Costas Loop</name> - <key>gr_costas_loop_cc</key> - <import>from gnuradio import gr</import> - <make>gr.costas_loop_cc($alpha, $beta, $max_freq, $min_freq, $order)</make> - <callback>set_alpha($alpha)</callback> - <callback>set_beta($beta)</callback> - <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> - <type>real</type> - </param> - <param> - <name>Max Freq</name> - <key>max_freq</key> - <type>real</type> - </param> - <param> - <name>Min Freq</name> - <key>min_freq</key> - <type>real</type> - </param> - <param> - <name>Order</name> - <key>order</key> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> - <source> - <name>out</name> - <type>complex</type> - <optional>1</optional> - </source> -</block> diff --git a/grc/blocks/gr_cpmmod_bc.xml b/grc/blocks/gr_cpmmod_bc.xml new file mode 100644 index 000000000..da405534e --- /dev/null +++ b/grc/blocks/gr_cpmmod_bc.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<!-- +################################################### +## Continuous Phase Modulation +################################################### + --> +<block> + <name>Continuous Phase Modulation</name> + <key>gr_cpmmod_bc</key> + <import>from gnuradio import gr</import> + <make>gr.cpmmod_bc($type, $mod_index, $samples_per_symbol, $L, $beta)</make> + <param> + <name>CPM Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>L-REC (Rectangular phase response)</name> + <key>gr.cpm.LREC</key> + </option> + <option> + <name>L-RC (Raised Cosine)</name> + <key>gr.cpm.LRC</key> + </option> + <option> + <name>L-SRC (Spectral raised cosine)</name> + <key>gr.cpm.LSRC</key> + </option> + <option> + <name>TFM (Tamed frequency modulation)</name> + <key>gr.cpm.TFM</key> + </option> + <option> + <name>Gaussian</name> + <key>gr.cpm.GAUSSIAN</key> + </option> + </param> + <param> + <name>Modulation Index</name> + <key>mod_index</key> + <value>0.5</value> + <type>real</type> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>4</value> + <type>int</type> + </param> + <param> + <name>Pulse Duration (Symbols)</name> + <key>L</key> + <value>4</value> + <type>int</type> + </param> + <param> + <name>Phase Response Parameter (BT or Beta)</name> + <key>beta</key> + <value>0.3</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/blocks/gr_dc_blocker.xml b/grc/blocks/gr_dc_blocker.xml index e5aeeb031..05c342074 100644 --- a/grc/blocks/gr_dc_blocker.xml +++ b/grc/blocks/gr_dc_blocker.xml @@ -9,7 +9,7 @@ <key>gr_dc_blocker</key> <import>from gnuradio import gr</import> <make>gr.dc_blocker_$(type)($length, $long_form)</make> - <!-- <callback>set_length($lenght)</callback> --> + <!-- <callback>set_length($length)</callback> --> <param> <name>Type</name> <key>type</key> diff --git a/grc/blocks/gr_fll_band_edge_cc.xml b/grc/blocks/gr_fll_band_edge_cc.xml deleted file mode 100644 index 5a13ac49b..000000000 --- a/grc/blocks/gr_fll_band_edge_cc.xml +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## FLL using Band-Edge Filters -################################################### - --> -<block> - <name>FLL Band-Edge</name> - <key>gr_fll_band_edge_cc</key> - <import>from gnuradio import gr</import> - <make>gr.fll_band_edge_cc($samps_per_sym, $rolloff, $filter_size, $alpha, $beta)</make> - <callback>set_alpha($alpha)</callback> - <callback>set_beta($beta)</callback> - - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Complex->Complex</name> - <key>cc</key> - <opt>input:complex</opt> - <opt>output:complex</opt> - </option> - </param> - - <param> - <name>Samples Per Symbol</name> - <key>samps_per_sym</key> - <type>real</type> - </param> - <param> - <name>Filter Rolloff Factor</name> - <key>rolloff</key> - <type>real</type> - </param> - <param> - <name>Prototype Filter Size</name> - <key>filter_size</key> - <type>int</type> - </param> - - <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>$type.input</type> - </sink> - <source> - <name>out</name> - <type>$type.output</type> - </source> - <source> - <name>freq</name> - <type>float</type> - <optional>1</optional> - </source> - <source> - <name>phase</name> - <type>float</type> - <optional>1</optional> - </source> - <source> - <name>error</name> - <type>float</type> - <optional>1</optional> - </source> -</block> diff --git a/grc/blocks/gr_gmskmod_bc.xml b/grc/blocks/gr_gmskmod_bc.xml new file mode 100644 index 000000000..82e47452b --- /dev/null +++ b/grc/blocks/gr_gmskmod_bc.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!-- +################################################### +## GMSK +################################################### + --> +<block> + <name>GMSK Modulator</name> + <key>gr_gmskmod_bc</key> + <import>from gnuradio import gr</import> + <make>gr.gmskmod_bc($samples_per_symbol, $bt, $L)</make> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>3 dB Time-Bandwith Product</name> + <key>bt</key> + <value>0.3</value> + <type>real</type> + </param> + <param> + <name>Pulse Duration (Symbols)</name> + <key>L</key> + <value>4</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/blocks/gr_mpsk_receiver_cc.xml b/grc/blocks/gr_mpsk_receiver_cc.xml deleted file mode 100644 index 843c3a4c1..000000000 --- a/grc/blocks/gr_mpsk_receiver_cc.xml +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##MPSK Receiver -################################################### - --> -<block> - <name>MPSK Receiver</name> - <key>gr_mpsk_receiver_cc</key> - <import>from gnuradio import gr</import> - <make>gr.mpsk_receiver_cc($M, $theta, $alpha, $beta, $fmin, $fmax, $mu, $gain_mu, $omega, $gain_omega, $omega_relative_limit)</make> - <callback>set_alpha($alpha)</callback> - <callback>set_beta($beta)</callback> - <callback>set_mu($mu)</callback> - <callback>set_gain_mu($gain_mu)</callback> - <callback>set_omega($omega)</callback> - <callback>set_gain_omega($gain_omega)</callback> - <param> - <name>M</name> - <key>M</key> - <type>int</type> - </param> - <param> - <name>Theta</name> - <key>theta</key> - <type>real</type> - </param> - <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> - <type>real</type> - </param> - <param> - <name>Min Freq</name> - <key>fmin</key> - <type>real</type> - </param> - <param> - <name>Max Freq</name> - <key>fmax</key> - <type>real</type> - </param> - <param> - <name>Mu</name> - <key>mu</key> - <type>real</type> - </param> - <param> - <name>Gain Mu</name> - <key>gain_mu</key> - <type>real</type> - </param> - <param> - <name>Omega</name> - <key>omega</key> - <type>real</type> - </param> - <param> - <name>Gain Omega</name> - <key>gain_omega</key> - <type>real</type> - </param> - <param> - <name>Omega Relative Limit</name> - <key>omega_relative_limit</key> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/grc/blocks/gr_pfb_clock_sync.xml b/grc/blocks/gr_pfb_clock_sync.xml index 26cacfb3e..3e5e65d12 100644 --- a/grc/blocks/gr_pfb_clock_sync.xml +++ b/grc/blocks/gr_pfb_clock_sync.xml @@ -8,7 +8,7 @@ <name>Polyphase Clock Sync</name> <key>gr_pfb_clock_sync_xxx</key> <import>from gnuradio import gr</import> - <make>gr.pfb_clock_sync_$(type)($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev) + <make>gr.pfb_clock_sync_$(type)($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev, $osps) self.$(id).set_beta($beta)</make> <callback>set_taps($taps)</callback> <callback>set_alpha($alpha)</callback> @@ -69,6 +69,11 @@ self.$(id).set_beta($beta)</make> <key>max_dev</key> <type>real</type> </param> + <param> + <name>Output SPS</name> + <key>osps</key> + <type>int</type> + </param> <sink> <name>in</name> <type>$type.input</type> diff --git a/grc/blocks/gr_pll_carriertracking_cc.xml b/grc/blocks/gr_pll_carriertracking_cc.xml index 5b876b259..27e673248 100644 --- a/grc/blocks/gr_pll_carriertracking_cc.xml +++ b/grc/blocks/gr_pll_carriertracking_cc.xml @@ -8,15 +8,11 @@ <name>PLL Carrier Tracking</name> <key>gr_pll_carriertracking_cc</key> <import>from gnuradio import gr</import> - <make>gr.pll_carriertracking_cc($alpha, $beta, $max_freq, $min_freq)</make> + <make>gr.pll_carriertracking_cc($w, $max_freq, $min_freq)</make> + <callback>set_loop_bandwidth($w)</callback> <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> + <name>Loop Bandwidth</name> + <key>w</key> <type>real</type> </param> <param> diff --git a/grc/blocks/gr_pll_freqdet_cf.xml b/grc/blocks/gr_pll_freqdet_cf.xml index 8ec1fb3bb..d6e4694f0 100644 --- a/grc/blocks/gr_pll_freqdet_cf.xml +++ b/grc/blocks/gr_pll_freqdet_cf.xml @@ -8,15 +8,11 @@ <name>PLL Freq Det</name> <key>gr_pll_freqdet_cf</key> <import>from gnuradio import gr</import> - <make>gr.pll_freqdet_cf($alpha, $beta, $max_freq, $min_freq)</make> + <make>gr.pll_freqdet_cf($w, $max_freq, $min_freq)</make> + <callback>set_loop_bandwidth($w)</callback> <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> + <name>Loop Bandwidth</name> + <key>w</key> <type>real</type> </param> <param> diff --git a/grc/blocks/gr_pll_refout_cc.xml b/grc/blocks/gr_pll_refout_cc.xml index 64cf2bfb6..b231ddd19 100644 --- a/grc/blocks/gr_pll_refout_cc.xml +++ b/grc/blocks/gr_pll_refout_cc.xml @@ -8,15 +8,11 @@ <name>PLL Ref Out</name> <key>gr_pll_refout_cc</key> <import>from gnuradio import gr</import> - <make>gr.pll_refout_cc($alpha, $beta, $max_freq, $min_freq)</make> + <make>gr.pll_refout_cc($w, $max_freq, $min_freq)</make> + <callback>set_loop_bandwidth($w)</callback> <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> + <name>Loop Bandwidth</name> + <key>w</key> <type>real</type> </param> <param> diff --git a/grc/blocks/gr_throttle.xml b/grc/blocks/gr_throttle.xml index ab8506f55..dc825f167 100644 --- a/grc/blocks/gr_throttle.xml +++ b/grc/blocks/gr_throttle.xml @@ -7,6 +7,7 @@ <block> <name>Throttle</name> <key>gr_throttle</key> + <throttle>1</throttle> <import>from gnuradio import gr</import> <make>gr.throttle($type.size*$vlen, $samples_per_second)</make> <param> diff --git a/grc/freedesktop/CMakeLists.txt b/grc/freedesktop/CMakeLists.txt new file mode 100644 index 000000000..8c0f53d9f --- /dev/null +++ b/grc/freedesktop/CMakeLists.txt @@ -0,0 +1,47 @@ +# Copyright 2011 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. + +######################################################################## +set(grc_freedesktop_path ${GR_PKG_DATA_DIR}/grc/freedesktop) + +install(FILES + grc-icon-256.png + grc-icon-128.png + grc-icon-64.png + grc-icon-48.png + grc-icon-32.png + gnuradio-grc.xml + gnuradio-grc.desktop + DESTINATION ${grc_freedesktop_path} + COMPONENT "grc" +) + +find_program(HAVE_XDG_UTILS xdg-desktop-menu) + +if(UNIX AND HAVE_XDG_UTILS) + set(SRCDIR ${CMAKE_INSTALL_PREFIX}/${grc_freedesktop_path}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/grc_setup_freedesktop.in + ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop + @ONLY) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop + DESTINATION ${GR_PKG_LIBEXEC_DIR} COMPONENT "grc" + ) +endif(UNIX AND HAVE_XDG_UTILS) diff --git a/grc/grc_gnuradio/CMakeLists.txt b/grc/grc_gnuradio/CMakeLists.txt new file mode 100644 index 000000000..e992a60a3 --- /dev/null +++ b/grc/grc_gnuradio/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright 2011 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. + +######################################################################## +GR_PYTHON_INSTALL( + FILES __init__.py + DESTINATION ${GR_PYTHON_DIR}/grc_gnuradio + COMPONENT "grc" +) + +GR_PYTHON_INSTALL(FILES + blks2/__init__.py + blks2/error_rate.py + blks2/packet.py + blks2/selector.py + blks2/tcp.py + DESTINATION ${GR_PYTHON_DIR}/grc_gnuradio/blks2 + COMPONENT "grc" +) diff --git a/grc/grc_gnuradio/README b/grc/grc_gnuradio/README index 5a89da54a..897eed65c 100644 --- a/grc/grc_gnuradio/README +++ b/grc/grc_gnuradio/README @@ -7,8 +7,5 @@ The blk2s module wraps many blocks in blks2 and gives them streaming outputs. Will be phased-out by new message passing implementations. Other blks2 blocks will hopefully make their way into blks2impl. -The usrp module contains the simple and dual usrp wrappers. -Will be phased-out by generic usrp and/or new usrp api. - The wxgui module contains a top_block + wxgui frame. Will be phased-out by gui.py in wxgui and a new top block template. diff --git a/grc/gui/CMakeLists.txt b/grc/gui/CMakeLists.txt new file mode 100644 index 000000000..c2eb16e9f --- /dev/null +++ b/grc/gui/CMakeLists.txt @@ -0,0 +1,48 @@ +# Copyright 2011 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. + +######################################################################## +GR_PYTHON_INSTALL(FILES + Block.py + Colors.py + Constants.py + Connection.py + Element.py + FlowGraph.py + Param.py + Platform.py + Port.py + Utils.py + ActionHandler.py + Actions.py + Bars.py + BlockTreeWindow.py + Dialogs.py + DrawingArea.py + FileDialogs.py + MainWindow.py + Messages.py + NotebookPage.py + PropsDialog.py + Preferences.py + StateCache.py + __init__.py + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/gui + COMPONENT "grc" +) diff --git a/grc/python/Block.py b/grc/python/Block.py index 4baf36dc6..967a27ce9 100644 --- a/grc/python/Block.py +++ b/grc/python/Block.py @@ -46,6 +46,7 @@ class Block(_Block, _GUIBlock): self._var_make = n.find('var_make') self._checks = n.findall('check') self._callbacks = n.findall('callback') + self._throttle = n.find('throttle') or '' #build the block _Block.__init__( self, @@ -54,6 +55,8 @@ class Block(_Block, _GUIBlock): ) _GUIBlock.__init__(self) + def throttle(self): return bool(self._throttle) + def validate(self): """ Validate this block. diff --git a/grc/python/CMakeLists.txt b/grc/python/CMakeLists.txt new file mode 100644 index 000000000..2075d126d --- /dev/null +++ b/grc/python/CMakeLists.txt @@ -0,0 +1,45 @@ +# Copyright 2011 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. + +######################################################################## +GR_PYTHON_INSTALL(FILES + convert_hier.py + expr_utils.py + extract_category.py + extract_docs.py + Block.py + Connection.py + Constants.py + FlowGraph.py + Generator.py + Param.py + Platform.py + Port.py + __init__.py + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/python + COMPONENT "grc" +) + +install(FILES + block.dtd + default_flow_graph.grc + flow_graph.tmpl + DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/python + COMPONENT "grc" +) diff --git a/grc/python/Generator.py b/grc/python/Generator.py index 2a2dfdd49..2a6fe51d5 100644 --- a/grc/python/Generator.py +++ b/grc/python/Generator.py @@ -57,8 +57,8 @@ class Generator(object): def write(self): #do throttle warning - all_keys = ' '.join(map(lambda b: b.get_key(), self._flow_graph.get_enabled_blocks())) - if ('usrp' not in all_keys) and ('uhd' not in all_keys) and ('audio' not in all_keys) and ('throttle' not in all_keys) and self._generate_options != 'hb': + throttled = any(map(lambda b: b.throttle(), self._flow_graph.get_enabled_blocks())) + if not throttled and self._generate_options != 'hb': Messages.send_warning('''\ This flow graph may not have flow control: no audio or usrp blocks found. \ Add a Misc->Throttle block to your flow graph to avoid CPU congestion.''') diff --git a/grc/python/block.dtd b/grc/python/block.dtd index 7c6c39811..41a744d07 100644 --- a/grc/python/block.dtd +++ b/grc/python/block.dtd @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Top level element. A block contains a name, ...parameters list, and list of IO ports. --> -<!ELEMENT block (name, key, category?, import*, var_make?, make, callback*, param*, check*, sink*, source*, doc?)> +<!ELEMENT block (name, key, category?, throttle?, import*, var_make?, make, callback*, param*, check*, sink*, source*, doc?)> <!-- Sub level elements. --> @@ -53,3 +53,4 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA <!ELEMENT value (#PCDATA)> <!ELEMENT callback (#PCDATA)> <!ELEMENT optional (#PCDATA)> +<!ELEMENT throttle (#PCDATA)> diff --git a/grc/python/extract_docs.py b/grc/python/extract_docs.py index aa85397f9..fe157a221 100644 --- a/grc/python/extract_docs.py +++ b/grc/python/extract_docs.py @@ -26,6 +26,8 @@ DOXYGEN_NAME_XPATH = '/doxygen/compounddef/compoundname' DOXYGEN_BRIEFDESC_GR_XPATH = '/doxygen/compounddef/briefdescription' DOXYGEN_DETAILDESC_GR_XPATH = '/doxygen/compounddef/detaileddescription' +GROUP_KEYS = "gr|trellis|noaa|vocoder|digital" + def extract_txt(xml): """ Recursivly pull the text out of an xml tree. @@ -63,7 +65,7 @@ def _extract(key): #extract descriptions comp_name = extract_txt(xml.xpath(DOXYGEN_NAME_XPATH)[0]).strip() comp_name = ' --- ' + comp_name + ' --- ' - if re.match('(gr|usrp2|trellis|noaa)_.*', key): + if re.match(('(%s)_.*' % GROUP_KEYS), key): brief_desc = extract_txt(xml.xpath(DOXYGEN_BRIEFDESC_GR_XPATH)[0]).strip() detailed_desc = extract_txt(xml.xpath(DOXYGEN_DETAILDESC_GR_XPATH)[0]).strip() else: diff --git a/grc/scripts/CMakeLists.txt b/grc/scripts/CMakeLists.txt new file mode 100644 index 000000000..b8d5330f6 --- /dev/null +++ b/grc/scripts/CMakeLists.txt @@ -0,0 +1,25 @@ +# Copyright 2011 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. + +######################################################################## +GR_PYTHON_INSTALL( + PROGRAMS gnuradio-companion + DESTINATION ${GR_RUNTIME_DIR} + COMPONENT "grc" +) diff --git a/grc/todo.txt b/grc/todo.txt index 9dad05730..ccfaad72a 100644 --- a/grc/todo.txt +++ b/grc/todo.txt @@ -9,19 +9,14 @@ ################################################## * probe: also non-float outputs * log slider gui control -* generic usrp (when its ready) * packet mod: whitening offset * wx min window size in options block * gr_adaptive_fir_ccf * ofdm * gr_ofdm_bpsk_demapper - * gr_ofdm_cyclic_prefixer * gr_ofdm_demapper_vcb - * gr_ofdm_frame_acquisition * gr_ofdm_frame_sink - * gr_ofdm_insert_preamble * gr_ofdm_mapper_bcv - * gr_ofdm_sampler * size params for the graphical sinks * callbacks for set average on fft, waterfall, number sinks * add units to params: Sps, Hz, dB... |