summaryrefslogtreecommitdiff
path: root/grc
diff options
context:
space:
mode:
Diffstat (limited to 'grc')
-rw-r--r--grc/CMakeLists.txt128
-rw-r--r--grc/base/CMakeLists.txt42
-rw-r--r--grc/blocks/CMakeLists.txt22
-rw-r--r--grc/blocks/Makefile.am16
-rw-r--r--grc/blocks/blks2_dxpsk2_demod.xml152
-rw-r--r--grc/blocks/blks2_dxpsk2_mod.xml95
-rw-r--r--grc/blocks/blks2_dxpsk_demod.xml127
-rw-r--r--grc/blocks/blks2_dxpsk_mod.xml99
-rw-r--r--grc/blocks/blks2_ofdm_demod.xml122
-rw-r--r--grc/blocks/blks2_ofdm_mod.xml135
-rw-r--r--grc/blocks/block_tree.xml20
-rw-r--r--grc/blocks/gr_binary_slicer_fb.xml20
-rw-r--r--grc/blocks/gr_clock_recovery_mm_xx.xml64
-rw-r--r--grc/blocks/gr_cma_equalizer_cc.xml36
-rw-r--r--grc/blocks/gr_constellation_decoder_cb.xml30
-rw-r--r--grc/blocks/gr_correlate_access_code_bb.xml31
-rw-r--r--grc/blocks/gr_costas_loop_cc.xml52
-rw-r--r--grc/blocks/gr_cpmmod_bc.xml69
-rw-r--r--grc/blocks/gr_dc_blocker.xml2
-rw-r--r--grc/blocks/gr_fll_band_edge_cc.xml76
-rw-r--r--grc/blocks/gr_gmskmod_bc.xml38
-rw-r--r--grc/blocks/gr_mpsk_receiver_cc.xml81
-rw-r--r--grc/blocks/gr_pfb_clock_sync.xml7
-rw-r--r--grc/blocks/gr_pll_carriertracking_cc.xml12
-rw-r--r--grc/blocks/gr_pll_freqdet_cf.xml12
-rw-r--r--grc/blocks/gr_pll_refout_cc.xml12
-rw-r--r--grc/blocks/gr_throttle.xml1
-rw-r--r--grc/freedesktop/CMakeLists.txt47
-rw-r--r--grc/grc_gnuradio/CMakeLists.txt35
-rw-r--r--grc/grc_gnuradio/README3
-rw-r--r--grc/gui/CMakeLists.txt48
-rw-r--r--grc/python/Block.py3
-rw-r--r--grc/python/CMakeLists.txt45
-rw-r--r--grc/python/Generator.py4
-rw-r--r--grc/python/block.dtd3
-rw-r--r--grc/python/extract_docs.py4
-rw-r--r--grc/scripts/CMakeLists.txt25
-rw-r--r--grc/todo.txt5
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...