summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/GrSetupQt4.cmake8
-rw-r--r--docs/sphinx/source/analog.rst21
-rw-r--r--docs/sphinx/source/analog/get_blocks.py106
-rw-r--r--docs/sphinx/source/analog/index.rst61
-rw-r--r--docs/sphinx/source/analog/level_controllers_blk.rst13
-rw-r--r--docs/sphinx/source/analog/measurement_tools_blk.rst6
-rw-r--r--docs/sphinx/source/analog/modulators_blk.rst8
-rw-r--r--docs/sphinx/source/analog/peak_detectors_blk.rst4
-rw-r--r--docs/sphinx/source/analog/synchronizers_blk.rst6
-rw-r--r--docs/sphinx/source/analog_blocks.rst40
-rw-r--r--docs/sphinx/source/audio_blocks.rst (renamed from docs/sphinx/source/audio/index.rst)0
-rw-r--r--docs/sphinx/source/blocks/audio_blk.rst5
-rw-r--r--docs/sphinx/source/blocks/boolean_operators_blk.rst18
-rw-r--r--docs/sphinx/source/blocks/byte_operators_blk.rst12
-rw-r--r--docs/sphinx/source/blocks/controlport_blk.rst5
-rw-r--r--docs/sphinx/source/blocks/debug_tools_blk.rst14
-rw-r--r--docs/sphinx/source/blocks/file_operators_blk.rst10
-rw-r--r--docs/sphinx/source/blocks/get_blocks.py106
-rw-r--r--docs/sphinx/source/blocks/index.rst337
-rw-r--r--docs/sphinx/source/blocks/level_controllers_blk.rst16
-rw-r--r--docs/sphinx/source/blocks/math_operators_blk.rst53
-rw-r--r--docs/sphinx/source/blocks/measurement_tools_blk.rst18
-rw-r--r--docs/sphinx/source/blocks/message_tools_blk.rst11
-rw-r--r--docs/sphinx/source/blocks/misc_blk.rst19
-rw-r--r--docs/sphinx/source/blocks/modulators_blk.rst4
-rw-r--r--docs/sphinx/source/blocks/networking_tools_blk.rst7
-rw-r--r--docs/sphinx/source/blocks/peak_detectors_blk.rst9
-rw-r--r--docs/sphinx/source/blocks/stream_operators_blk.rst26
-rw-r--r--docs/sphinx/source/blocks/stream_tag_tools_blk.rst6
-rw-r--r--docs/sphinx/source/blocks/type_converters_blk.rst22
-rw-r--r--docs/sphinx/source/blocks/waveform_generators_blk.rst4
-rw-r--r--docs/sphinx/source/blocks_blocks.rst228
-rw-r--r--docs/sphinx/source/channels.rst14
-rw-r--r--docs/sphinx/source/channels_blocks.rst12
-rw-r--r--docs/sphinx/source/comedi_blocks.rst (renamed from docs/sphinx/source/comedi.rst)3
-rw-r--r--docs/sphinx/source/digital.rst116
-rw-r--r--docs/sphinx/source/digital/blocks.rst69
-rw-r--r--docs/sphinx/source/digital/constellations.rst13
-rw-r--r--docs/sphinx/source/digital/index.rst151
-rw-r--r--docs/sphinx/source/digital/ofdm.rst14
-rw-r--r--docs/sphinx/source/digital/pkt_utils.rst18
-rw-r--r--docs/sphinx/source/digital/utilities.rst12
-rw-r--r--docs/sphinx/source/digital_blocks.rst75
-rw-r--r--docs/sphinx/source/dtv.rst4
-rw-r--r--docs/sphinx/source/dtv_blocks.rst44
-rw-r--r--docs/sphinx/source/eng_notation/index.rst8
-rw-r--r--docs/sphinx/source/eng_option/index.rst6
-rw-r--r--docs/sphinx/source/fcd_blocks.rst (renamed from docs/sphinx/source/fcd.rst)3
-rw-r--r--docs/sphinx/source/fec.rst31
-rw-r--r--docs/sphinx/source/fec_blocks.rst20
-rw-r--r--docs/sphinx/source/fft.rst29
-rw-r--r--docs/sphinx/source/fft_blocks.rst9
-rw-r--r--docs/sphinx/source/filter.rst29
-rw-r--r--docs/sphinx/source/filter/channelizers_blk.rst7
-rw-r--r--docs/sphinx/source/filter/filter_blk.rst16
-rw-r--r--docs/sphinx/source/filter/filter_design.rst4
-rw-r--r--docs/sphinx/source/filter/index.rst56
-rw-r--r--docs/sphinx/source/filter/resamplers_blk.rst9
-rw-r--r--docs/sphinx/source/filter_blocks.rst55
-rw-r--r--docs/sphinx/source/gr/contents.rst18
-rw-r--r--docs/sphinx/source/gr/index.rst23
-rw-r--r--docs/sphinx/source/gr_unittest/index.rst7
-rw-r--r--docs/sphinx/source/index.rst1561
-rw-r--r--docs/sphinx/source/noaa_blocks.rst (renamed from docs/sphinx/source/noaa.rst)2
-rw-r--r--docs/sphinx/source/pager/index.rst23
-rw-r--r--docs/sphinx/source/pager_blocks.rst (renamed from docs/sphinx/source/pager/blks.rst)7
-rw-r--r--docs/sphinx/source/plot_data.rst6
-rw-r--r--docs/sphinx/source/pmt.rst193
-rw-r--r--docs/sphinx/source/pmt/any.rst7
-rw-r--r--docs/sphinx/source/pmt/boolean.rst8
-rw-r--r--docs/sphinx/source/pmt/dictionary.rst12
-rw-r--r--docs/sphinx/source/pmt/generalfunctions.rst31
-rw-r--r--docs/sphinx/source/pmt/index.rst347
-rw-r--r--docs/sphinx/source/pmt/integer.rst13
-rw-r--r--docs/sphinx/source/pmt/list.rst22
-rw-r--r--docs/sphinx/source/pmt/message_accepter.rst7
-rw-r--r--docs/sphinx/source/pmt/misc.rst22
-rw-r--r--docs/sphinx/source/pmt/number.rst4
-rw-r--r--docs/sphinx/source/pmt/pair.rst15
-rw-r--r--docs/sphinx/source/pmt/readwrite.rst7
-rw-r--r--docs/sphinx/source/pmt/real.rst14
-rw-r--r--docs/sphinx/source/pmt/serialize.rst8
-rw-r--r--docs/sphinx/source/pmt/symbol.rst7
-rw-r--r--docs/sphinx/source/pmt/tuple.rst7
-rw-r--r--docs/sphinx/source/pmt/vector.rst92
-rw-r--r--docs/sphinx/source/pyqt_filter.rst6
-rw-r--r--docs/sphinx/source/pyqt_plot.rst6
-rw-r--r--docs/sphinx/source/qtgui/index.rst9
-rw-r--r--docs/sphinx/source/qtgui_blocks.rst20
-rw-r--r--docs/sphinx/source/runtime.rst65
-rw-r--r--docs/sphinx/source/trellis.rst (renamed from docs/sphinx/source/trellis/objs.rst)4
-rw-r--r--docs/sphinx/source/trellis/index.rst90
-rw-r--r--docs/sphinx/source/trellis_blocks.rst (renamed from docs/sphinx/source/trellis/blks.rst)6
-rw-r--r--docs/sphinx/source/uhd.rst16
-rw-r--r--docs/sphinx/source/uhd_blocks.rst8
-rw-r--r--docs/sphinx/source/video_sdl_blocks.rst (renamed from docs/sphinx/source/video_sdl.rst)0
-rw-r--r--docs/sphinx/source/vocoder.rst6
-rw-r--r--docs/sphinx/source/vocoder/index.rst26
-rw-r--r--docs/sphinx/source/vocoder_blocks.rst (renamed from docs/sphinx/source/vocoder/blks.rst)2
-rw-r--r--docs/sphinx/source/wavelet_blocks.rst (renamed from docs/sphinx/source/wavelet.rst)0
-rw-r--r--docs/sphinx/source/wxgui.rst5
-rw-r--r--docs/sphinx/source/wxgui/blks.rst16
-rw-r--r--docs/sphinx/source/wxgui/index.rst20
-rw-r--r--docs/sphinx/source/wxgui_blocks.rst7
-rw-r--r--docs/sphinx/source/zeromq_blocks.rst17
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx23
-rw-r--r--gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h2
-rw-r--r--gr-digital/python/digital/ofdm_packet_utils.py529
-rw-r--r--gr-digital/python/digital/ofdm_txrx.py39
-rwxr-xr-xgr-digital/python/digital/psk_constellations.py96
-rwxr-xr-xgr-digital/python/digital/qam_constellations.py256
-rw-r--r--gr-digital/python/digital/soft_dec_lut_gen.py109
-rwxr-xr-xgr-fec/examples/tpc_ber_curve_gen.py457
-rw-r--r--gr-filter/lib/pfb_arb_resampler_fff_impl.cc29
-rw-r--r--gr-filter/python/filter/pfb.py16
-rw-r--r--gr-qtgui/grc/qtgui_const_sink_x.xml1
-rw-r--r--gr-qtgui/grc/qtgui_freq_sink_x.xml1
-rw-r--r--gr-qtgui/grc/qtgui_time_sink_x.xml1
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/TimeRasterDisplayPlot.h5
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h4
-rw-r--r--gr-qtgui/lib/TimeRasterDisplayPlot.cc17
-rw-r--r--gr-qtgui/lib/WaterfallDisplayPlot.cc16
-rwxr-xr-xgr-zeromq/examples/python/client.py4
-rwxr-xr-xgr-zeromq/examples/python/gui.py4
-rwxr-xr-xgr-zeromq/examples/python/server.py4
-rw-r--r--grc/base/FlowGraph.py57
-rw-r--r--grc/blocks/options.xml6
-rw-r--r--grc/blocks/xmlrpc_server.xml4
-rw-r--r--grc/gui/Messages.py5
-rw-r--r--grc/python/Generator.py6
130 files changed, 3598 insertions, 2915 deletions
diff --git a/cmake/Modules/GrSetupQt4.cmake b/cmake/Modules/GrSetupQt4.cmake
index 312b415de9..cc85c39601 100644
--- a/cmake/Modules/GrSetupQt4.cmake
+++ b/cmake/Modules/GrSetupQt4.cmake
@@ -67,13 +67,7 @@ set(__INCLUDED_GR_USEQT4_CMAKE TRUE)
################################################################
ADD_DEFINITIONS(${QT_DEFINITIONS})
-SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG QT_DEBUG)
-SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG)
-SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG)
-SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG)
-IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
- SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS QT_NO_DEBUG)
-ENDIF()
+SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>)
SET(QT_INCLUDE_DIRS ${QT_INCLUDE_DIR})
SET(QT_LIBRARIES "")
diff --git a/docs/sphinx/source/analog.rst b/docs/sphinx/source/analog.rst
new file mode 100644
index 0000000000..0bbaba6185
--- /dev/null
+++ b/docs/sphinx/source/analog.rst
@@ -0,0 +1,21 @@
+gnuradio.analog
+===============
+
+.. autoclass:: gnuradio.analog.cpm
+.. autoclass:: gnuradio.analog.squelch_base_cc
+.. autoclass:: gnuradio.analog.squelch_base_ff
+.. autoclass:: gnuradio.analog.am_demod_cf
+.. autoclass:: gnuradio.analog.demod_10k0a3e_cf
+.. autoclass:: gnuradio.analog.fm_demod_cf
+.. autoclass:: gnuradio.analog.demod_20k0f3e_cf
+.. autoclass:: gnuradio.analog.demod_200kf3e_cf
+.. autoclass:: gnuradio.analog.fm_deemph
+.. autoclass:: gnuradio.analog.fm_preemph
+.. autoclass:: gnuradio.analog.nbfm_rx
+.. autoclass:: gnuradio.analog.nbfm_tx
+.. autoclass:: gnuradio.analog.ctcss_gen_f
+.. autoclass:: gnuradio.analog.standard_squelch
+.. autoclass:: gnuradio.analog.wfm_rcv_fmdet
+.. autoclass:: gnuradio.analog.wfm_rcv_pll
+.. autoclass:: gnuradio.analog.wfm_rcv
+.. autoclass:: gnuradio.analog.wfm_tx
diff --git a/docs/sphinx/source/analog/get_blocks.py b/docs/sphinx/source/analog/get_blocks.py
deleted file mode 100644
index f5fc902a8a..0000000000
--- a/docs/sphinx/source/analog/get_blocks.py
+++ /dev/null
@@ -1,106 +0,0 @@
-"""
-This script regenerates the gnuradio.blocks sphinx source code.
-"""
-
-from gnuradio import analog
-import sys
-import os
-
-doxyxml_location = os.path.abspath("../../../doxygen")
-xml_location = os.path.abspath("../../../../build/docs/doxygen/xml/")
-sys.path.append(doxyxml_location)
-
-from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, DoxyGroup
-from doxyxml import DoxyOther, base
-
-class Block(object):
- """
- Checks if doxyxml produced objects correspond to a new style
- gnuradio block.
- """
-
- @classmethod
- def includes(cls, item):
- if not isinstance(item, DoxyClass):
- return False
- # Check for a parsing error.
- if item.error():
- return False
- is_a_block = item.has_member('make', DoxyFunction) and item.has_member('sptr', DoxyOther)
- return is_a_block
-
-class Group(object):
- """
- Checks if doxyxml produced objects correspond to a group.
- """
-
- @classmethod
- def includes(cls, item):
- if not isinstance(item, DoxyGroup):
- return False
- # Check for a parsing error.
- if item.error():
- return False
- return True
-
-def main():
- di = DoxyIndex(xml_location)
- blocks = di.in_category(Block)
- analog_blocks = []
- for block in blocks:
- if block.name().startswith("gr::analog::"):
- analog_blocks.append(block)
-
- all_grouped_blocks = []
- groups = di.in_category(Group)
- groupinfo = []
- for group in groups:
- contains_analog_blocks = False
- block_list = []
- members = group.members()
- for member in members:
- if member.name().startswith("gr::analog"):
- all_grouped_blocks.append(member)
- if not contains_analog_blocks:
- contains_analog_blocks = True
- groupinfo.append((group.name(), group.title, block_list))
- block_list.append(member)
-
- for block in analog_blocks:
- if block not in all_grouped_blocks:
- print("Didn't find block {0}".format(block.name()))
-
- blockindex = ["""gnuradio.analog
-===============
-
-.. automodule:: gnuradio.analog"""]
- for groupname, grouptitle, blocks in groupinfo:
- blockindex.append("")
- blockindex.append(grouptitle)
- blockindex.append('-'*len(grouptitle))
- blockindex.append("""
-.. autosummary::
- :nosignatures:
-""")
- for block in blocks:
- blockindex.append(" gnuradio.analog.{0}".format(
- block.name()[len("gr::analog::"):]))
- grouppage = []
- title = "gnuradio.analog: {0}".format(grouptitle)
- grouppage.append(title)
- grouppage.append('='*len(title))
- grouppage.append('')
- for block in blocks:
- shortname = block.name()[len("gr::analog::"):]
- grouppage.append(".. autoblock:: gnuradio.analog.{0}".format(shortname))
- text = '\n'.join(grouppage)
- f = open("{0}.rst".format(groupname), 'w')
- f.write(text)
- f.close()
- text = "\n".join(blockindex)
- f = open("index.rst", 'w')
- f.write(text)
- f.close()
-
-if __name__ == '__main__':
- main()
diff --git a/docs/sphinx/source/analog/index.rst b/docs/sphinx/source/analog/index.rst
deleted file mode 100644
index 668247cab3..0000000000
--- a/docs/sphinx/source/analog/index.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-gnuradio.analog
-===============
-
-.. automodule:: gnuradio.analog
-
-Level Controllers
------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.analog.agc_cc
- gnuradio.analog.agc2_cc
- gnuradio.analog.agc2_ff
- gnuradio.analog.agc_ff
- gnuradio.analog.ctcss_squelch_ff
- gnuradio.analog.feedforward_agc_cc
- gnuradio.analog.pwr_squelch_cc
- gnuradio.analog.pwr_squelch_ff
- gnuradio.analog.rail_ff
- gnuradio.analog.simple_squelch_cc
-
-Measurement Tools
------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.analog.probe_avg_mag_sqrd_c
- gnuradio.analog.probe_avg_mag_sqrd_cf
- gnuradio.analog.probe_avg_mag_sqrd_f
-
-Modulators and Demodulators
----------------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.analog.cpfsk_bc
- gnuradio.analog.fmdet_cf
- gnuradio.analog.frequency_modulator_fc
- gnuradio.analog.phase_modulator_fc
- gnuradio.analog.quadrature_demod_cf
-
-Peak Detectors
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.analog.dpll_bb
-
-Synchronizers
--------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.analog.pll_carriertracking_cc
- gnuradio.analog.pll_freqdet_cf
- gnuradio.analog.pll_refout_cc
diff --git a/docs/sphinx/source/analog/level_controllers_blk.rst b/docs/sphinx/source/analog/level_controllers_blk.rst
deleted file mode 100644
index 738535d207..0000000000
--- a/docs/sphinx/source/analog/level_controllers_blk.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-gnuradio.analog: Level Controllers
-==================================
-
-.. autoblock:: gnuradio.analog.agc_cc
-.. autoblock:: gnuradio.analog.agc2_cc
-.. autoblock:: gnuradio.analog.agc2_ff
-.. autoblock:: gnuradio.analog.agc_ff
-.. autoblock:: gnuradio.analog.ctcss_squelch_ff
-.. autoblock:: gnuradio.analog.feedforward_agc_cc
-.. autoblock:: gnuradio.analog.pwr_squelch_cc
-.. autoblock:: gnuradio.analog.pwr_squelch_ff
-.. autoblock:: gnuradio.analog.rail_ff
-.. autoblock:: gnuradio.analog.simple_squelch_cc
diff --git a/docs/sphinx/source/analog/measurement_tools_blk.rst b/docs/sphinx/source/analog/measurement_tools_blk.rst
deleted file mode 100644
index be9accc7e5..0000000000
--- a/docs/sphinx/source/analog/measurement_tools_blk.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.analog: Measurement Tools
-==================================
-
-.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_c
-.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_cf
-.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_f \ No newline at end of file
diff --git a/docs/sphinx/source/analog/modulators_blk.rst b/docs/sphinx/source/analog/modulators_blk.rst
deleted file mode 100644
index 3e9f279271..0000000000
--- a/docs/sphinx/source/analog/modulators_blk.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-gnuradio.analog: Modulators and Demodulators
-============================================
-
-.. autoblock:: gnuradio.analog.cpfsk_bc
-.. autoblock:: gnuradio.analog.fmdet_cf
-.. autoblock:: gnuradio.analog.frequency_modulator_fc
-.. autoblock:: gnuradio.analog.phase_modulator_fc
-.. autoblock:: gnuradio.analog.quadrature_demod_cf
diff --git a/docs/sphinx/source/analog/peak_detectors_blk.rst b/docs/sphinx/source/analog/peak_detectors_blk.rst
deleted file mode 100644
index 3105202c2a..0000000000
--- a/docs/sphinx/source/analog/peak_detectors_blk.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-gnuradio.analog: Peak Detectors
-===============================
-
-.. autoblock:: gnuradio.analog.dpll_bb \ No newline at end of file
diff --git a/docs/sphinx/source/analog/synchronizers_blk.rst b/docs/sphinx/source/analog/synchronizers_blk.rst
deleted file mode 100644
index 938b24ad61..0000000000
--- a/docs/sphinx/source/analog/synchronizers_blk.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.analog: Synchronizers
-==============================
-
-.. autoblock:: gnuradio.analog.pll_carriertracking_cc
-.. autoblock:: gnuradio.analog.pll_freqdet_cf
-.. autoblock:: gnuradio.analog.pll_refout_cc \ No newline at end of file
diff --git a/docs/sphinx/source/analog_blocks.rst b/docs/sphinx/source/analog_blocks.rst
new file mode 100644
index 0000000000..bbf1a2275e
--- /dev/null
+++ b/docs/sphinx/source/analog_blocks.rst
@@ -0,0 +1,40 @@
+gnuradio.analog
+===============
+
+.. automodule:: gnuradio.analog
+
+.. autoblock:: gnuradio.analog.agc2_cc
+.. autoblock:: gnuradio.analog.agc2_ff
+.. autoblock:: gnuradio.analog.agc3_cc
+.. autoblock:: gnuradio.analog.agc_cc
+.. autoblock:: gnuradio.analog.agc_ff
+.. autoblock:: gnuradio.analog.cpfsk_bc
+.. autoblock:: gnuradio.analog.ctcss_squelch_ff
+.. autoblock:: gnuradio.analog.dpll_bb
+.. autoblock:: gnuradio.analog.fastnoise_source_c
+.. autoblock:: gnuradio.analog.fastnoise_source_f
+.. autoblock:: gnuradio.analog.fastnoise_source_i
+.. autoblock:: gnuradio.analog.fastnoise_source_s
+.. autoblock:: gnuradio.analog.feedforward_agc_cc
+.. autoblock:: gnuradio.analog.fmdet_cf
+.. autoblock:: gnuradio.analog.frequency_modulator_fc
+.. autoblock:: gnuradio.analog.noise_source_c
+.. autoblock:: gnuradio.analog.noise_source_f
+.. autoblock:: gnuradio.analog.noise_source_i
+.. autoblock:: gnuradio.analog.noise_source_s
+.. autoblock:: gnuradio.analog.phase_modulator_fc
+.. autoblock:: gnuradio.analog.pll_carriertracking_cc
+.. autoblock:: gnuradio.analog.pll_freqdet_cf
+.. autoblock:: gnuradio.analog.pll_refout_cc
+.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_c
+.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_cf
+.. autoblock:: gnuradio.analog.probe_avg_mag_sqrd_f
+.. autoblock:: gnuradio.analog.pwr_squelch_cc
+.. autoblock:: gnuradio.analog.pwr_squelch_ff
+.. autoblock:: gnuradio.analog.quadrature_demod_cf
+.. autoblock:: gnuradio.analog.rail_ff
+.. autoblock:: gnuradio.analog.sig_source_c
+.. autoblock:: gnuradio.analog.sig_source_f
+.. autoblock:: gnuradio.analog.sig_source_i
+.. autoblock:: gnuradio.analog.sig_source_s
+.. autoblock:: gnuradio.analog.simple_squelch_cc
diff --git a/docs/sphinx/source/audio/index.rst b/docs/sphinx/source/audio_blocks.rst
index 31d53567b8..31d53567b8 100644
--- a/docs/sphinx/source/audio/index.rst
+++ b/docs/sphinx/source/audio_blocks.rst
diff --git a/docs/sphinx/source/blocks/audio_blk.rst b/docs/sphinx/source/blocks/audio_blk.rst
deleted file mode 100644
index b73f9f3335..0000000000
--- a/docs/sphinx/source/blocks/audio_blk.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-gnuradio.blocks: Audio Signals
-==============================
-
-.. autoblock:: gnuradio.blocks.wavfile_sink
-.. autoblock:: gnuradio.blocks.wavfile_source \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/boolean_operators_blk.rst b/docs/sphinx/source/blocks/boolean_operators_blk.rst
deleted file mode 100644
index b6c2066d3e..0000000000
--- a/docs/sphinx/source/blocks/boolean_operators_blk.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-gnuradio.blocks: Boolean Operators
-==================================
-
-.. autoblock:: gnuradio.blocks.and_bb
-.. autoblock:: gnuradio.blocks.and_const_bb
-.. autoblock:: gnuradio.blocks.and_const_ii
-.. autoblock:: gnuradio.blocks.and_const_ss
-.. autoblock:: gnuradio.blocks.and_ii
-.. autoblock:: gnuradio.blocks.and_ss
-.. autoblock:: gnuradio.blocks.not_bb
-.. autoblock:: gnuradio.blocks.not_ii
-.. autoblock:: gnuradio.blocks.not_ss
-.. autoblock:: gnuradio.blocks.or_bb
-.. autoblock:: gnuradio.blocks.or_ii
-.. autoblock:: gnuradio.blocks.or_ss
-.. autoblock:: gnuradio.blocks.xor_bb
-.. autoblock:: gnuradio.blocks.xor_ii
-.. autoblock:: gnuradio.blocks.xor_ss \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/byte_operators_blk.rst b/docs/sphinx/source/blocks/byte_operators_blk.rst
deleted file mode 100644
index 5ffc0e0ef7..0000000000
--- a/docs/sphinx/source/blocks/byte_operators_blk.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-gnuradio.blocks: Byte Operators
-===============================
-
-.. autoblock:: gnuradio.blocks.packed_to_unpacked_bb
-.. autoblock:: gnuradio.blocks.packed_to_unpacked_ii
-.. autoblock:: gnuradio.blocks.packed_to_unpacked_ss
-.. autoblock:: gnuradio.blocks.unpacked_to_packed_bb
-.. autoblock:: gnuradio.blocks.unpacked_to_packed_ii
-.. autoblock:: gnuradio.blocks.unpacked_to_packed_ss
-.. autoblock:: gnuradio.blocks.pack_k_bits_bb
-.. autoblock:: gnuradio.blocks.repack_bits_bb
-.. autoblock:: gnuradio.blocks.unpack_k_bits_bb \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/controlport_blk.rst b/docs/sphinx/source/blocks/controlport_blk.rst
deleted file mode 100644
index 0931c210de..0000000000
--- a/docs/sphinx/source/blocks/controlport_blk.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-gnuradio.blocks: ControlPort
-============================
-
-.. autoblock:: gnuradio.blocks.ctrlport_probe2_c
-.. autoblock:: gnuradio.blocks.ctrlport_probe_c \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/debug_tools_blk.rst b/docs/sphinx/source/blocks/debug_tools_blk.rst
deleted file mode 100644
index f655023d32..0000000000
--- a/docs/sphinx/source/blocks/debug_tools_blk.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-gnuradio.blocks: Debug Tools
-============================
-
-.. autoblock:: gnuradio.blocks.vector_sink_b
-.. autoblock:: gnuradio.blocks.vector_sink_c
-.. autoblock:: gnuradio.blocks.vector_sink_f
-.. autoblock:: gnuradio.blocks.vector_sink_i
-.. autoblock:: gnuradio.blocks.vector_sink_s
-.. autoblock:: gnuradio.blocks.annotator_1to1
-.. autoblock:: gnuradio.blocks.annotator_alltoall
-.. autoblock:: gnuradio.blocks.annotator_raw
-.. autoblock:: gnuradio.blocks.message_debug
-.. autoblock:: gnuradio.blocks.random_pdu
-.. autoblock:: gnuradio.blocks.tag_debug \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/file_operators_blk.rst b/docs/sphinx/source/blocks/file_operators_blk.rst
deleted file mode 100644
index a01d3a08c6..0000000000
--- a/docs/sphinx/source/blocks/file_operators_blk.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-gnuradio.blocks: File Operators
-===============================
-
-.. autoblock:: gnuradio.blocks.file_descriptor_sink
-.. autoblock:: gnuradio.blocks.file_descriptor_source
-.. autoblock:: gnuradio.blocks.file_meta_sink
-.. autoblock:: gnuradio.blocks.file_meta_source
-.. autoblock:: gnuradio.blocks.file_sink
-.. autoblock:: gnuradio.blocks.file_source
-.. autoblock:: gnuradio.blocks.tagged_file_sink \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/get_blocks.py b/docs/sphinx/source/blocks/get_blocks.py
deleted file mode 100644
index 18c334c8c6..0000000000
--- a/docs/sphinx/source/blocks/get_blocks.py
+++ /dev/null
@@ -1,106 +0,0 @@
-"""
-This script regenerates the gnuradio.blocks sphinx source code.
-"""
-
-from gnuradio import blocks
-import sys
-import os
-
-doxyxml_location = os.path.abspath("../../../doxygen")
-xml_location = os.path.abspath("../../../../build/docs/doxygen/xml/")
-sys.path.append(doxyxml_location)
-
-from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile, DoxyGroup
-from doxyxml import DoxyOther, base
-
-class Block(object):
- """
- Checks if doxyxml produced objects correspond to a new style
- gnuradio block.
- """
-
- @classmethod
- def includes(cls, item):
- if not isinstance(item, DoxyClass):
- return False
- # Check for a parsing error.
- if item.error():
- return False
- is_a_block = item.has_member('make', DoxyFunction) and item.has_member('sptr', DoxyOther)
- return is_a_block
-
-class Group(object):
- """
- Checks if doxyxml produced objects correspond to a group.
- """
-
- @classmethod
- def includes(cls, item):
- if not isinstance(item, DoxyGroup):
- return False
- # Check for a parsing error.
- if item.error():
- return False
- return True
-
-def main():
- di = DoxyIndex(xml_location)
- blocks = di.in_category(Block)
- block_blocks = []
- for block in blocks:
- if block.name().startswith("gr::blocks::"):
- block_blocks.append(block)
-
- all_grouped_blocks = []
- groups = di.in_category(Group)
- groupinfo = []
- for group in groups:
- contains_block_blocks = False
- block_list = []
- members = group.members()
- for member in members:
- if member.name().startswith("gr::blocks"):
- all_grouped_blocks.append(member)
- if not contains_block_blocks:
- contains_block_blocks = True
- groupinfo.append((group.name(), group.title, block_list))
- block_list.append(member)
-
- for block in block_blocks:
- if block not in all_grouped_blocks:
- print("Didn't find block {0}".format(block.name()))
-
- blockindex = ["""gnuradio.blocks
-===============
-
-.. automodule:: gnuradio.blocks"""]
- for groupname, grouptitle, blocks in groupinfo:
- blockindex.append("")
- blockindex.append(grouptitle)
- blockindex.append('-'*len(grouptitle))
- blockindex.append("""
-.. autosummary::
- :nosignatures:
-""")
- for block in blocks:
- blockindex.append(" gnuradio.blocks.{0}".format(
- block.name()[len("gr::blocks::"):]))
- grouppage = []
- title = "gnuradio.blocks: {0}".format(grouptitle)
- grouppage.append(title)
- grouppage.append('='*len(title))
- grouppage.append('')
- for block in blocks:
- shortname = block.name()[len("gr::blocks::"):]
- grouppage.append(".. autoblock:: gnuradio.blocks.{0}".format(shortname))
- text = '\n'.join(grouppage)
- f = open("{0}.rst".format(groupname), 'w')
- f.write(text)
- f.close()
- text = "\n".join(blockindex)
- f = open("index.rst", 'w')
- f.write(text)
- f.close()
-
-if __name__ == '__main__':
- main()
diff --git a/docs/sphinx/source/blocks/index.rst b/docs/sphinx/source/blocks/index.rst
deleted file mode 100644
index f89c9c5df5..0000000000
--- a/docs/sphinx/source/blocks/index.rst
+++ /dev/null
@@ -1,337 +0,0 @@
-gnuradio.blocks
-===============
-
-.. automodule:: gnuradio.blocks
-
-Audio Signals
--------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.wavfile_sink
- gnuradio.blocks.wavfile_source
-
-Boolean Operators
------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.and_bb
- gnuradio.blocks.and_const_bb
- gnuradio.blocks.and_const_ii
- gnuradio.blocks.and_const_ss
- gnuradio.blocks.and_ii
- gnuradio.blocks.and_ss
- gnuradio.blocks.not_bb
- gnuradio.blocks.not_ii
- gnuradio.blocks.not_ss
- gnuradio.blocks.or_bb
- gnuradio.blocks.or_ii
- gnuradio.blocks.or_ss
- gnuradio.blocks.xor_bb
- gnuradio.blocks.xor_ii
- gnuradio.blocks.xor_ss
-
-Byte Operators
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.packed_to_unpacked_bb
- gnuradio.blocks.packed_to_unpacked_ii
- gnuradio.blocks.packed_to_unpacked_ss
- gnuradio.blocks.unpacked_to_packed_bb
- gnuradio.blocks.unpacked_to_packed_ii
- gnuradio.blocks.unpacked_to_packed_ss
- gnuradio.blocks.pack_k_bits_bb
- gnuradio.blocks.repack_bits_bb
- gnuradio.blocks.unpack_k_bits_bb
-
-ControlPort
------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.ctrlport_probe2_c
- gnuradio.blocks.ctrlport_probe_c
-
-Debug Tools
------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.vector_sink_b
- gnuradio.blocks.vector_sink_c
- gnuradio.blocks.vector_sink_f
- gnuradio.blocks.vector_sink_i
- gnuradio.blocks.vector_sink_s
- gnuradio.blocks.annotator_1to1
- gnuradio.blocks.annotator_alltoall
- gnuradio.blocks.annotator_raw
- gnuradio.blocks.message_debug
- gnuradio.blocks.random_pdu
- gnuradio.blocks.tag_debug
-
-File Operators
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.file_descriptor_sink
- gnuradio.blocks.file_descriptor_source
- gnuradio.blocks.file_meta_sink
- gnuradio.blocks.file_meta_source
- gnuradio.blocks.file_sink
- gnuradio.blocks.file_source
- gnuradio.blocks.tagged_file_sink
-
-Level Controllers
------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.moving_average_cc
- gnuradio.blocks.moving_average_ff
- gnuradio.blocks.moving_average_ii
- gnuradio.blocks.moving_average_ss
- gnuradio.blocks.mute_cc
- gnuradio.blocks.mute_ff
- gnuradio.blocks.mute_ii
- gnuradio.blocks.mute_ss
- gnuradio.blocks.sample_and_hold_bb
- gnuradio.blocks.sample_and_hold_ff
- gnuradio.blocks.sample_and_hold_ii
- gnuradio.blocks.sample_and_hold_ss
- gnuradio.blocks.threshold_ff
-
-Math Operators
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.add_cc
- gnuradio.blocks.add_const_bb
- gnuradio.blocks.add_const_cc
- gnuradio.blocks.add_const_ff
- gnuradio.blocks.add_const_ii
- gnuradio.blocks.add_const_ss
- gnuradio.blocks.add_const_vbb
- gnuradio.blocks.add_const_vcc
- gnuradio.blocks.add_const_vff
- gnuradio.blocks.add_const_vii
- gnuradio.blocks.add_const_vss
- gnuradio.blocks.add_ii
- gnuradio.blocks.add_ss
- gnuradio.blocks.argmax_fs
- gnuradio.blocks.argmax_is
- gnuradio.blocks.argmax_ss
- gnuradio.blocks.divide_cc
- gnuradio.blocks.divide_ff
- gnuradio.blocks.divide_ii
- gnuradio.blocks.divide_ss
- gnuradio.blocks.integrate_cc
- gnuradio.blocks.integrate_ff
- gnuradio.blocks.integrate_ii
- gnuradio.blocks.integrate_ss
- gnuradio.blocks.max_ff
- gnuradio.blocks.max_ii
- gnuradio.blocks.max_ss
- gnuradio.blocks.multiply_const_ii
- gnuradio.blocks.multiply_const_ss
- gnuradio.blocks.multiply_const_vcc
- gnuradio.blocks.multiply_const_vff
- gnuradio.blocks.multiply_const_vii
- gnuradio.blocks.multiply_const_vss
- gnuradio.blocks.multiply_ii
- gnuradio.blocks.multiply_ss
- gnuradio.blocks.sub_cc
- gnuradio.blocks.sub_ff
- gnuradio.blocks.sub_ii
- gnuradio.blocks.sub_ss
- gnuradio.blocks.add_ff
- gnuradio.blocks.conjugate_cc
- gnuradio.blocks.multiply_cc
- gnuradio.blocks.multiply_conjugate_cc
- gnuradio.blocks.multiply_const_cc
- gnuradio.blocks.multiply_const_ff
- gnuradio.blocks.multiply_ff
- gnuradio.blocks.nlog10_ff
- gnuradio.blocks.rms_cf
- gnuradio.blocks.rms_ff
- gnuradio.blocks.transcendental
-
-Measurement Tools
------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.probe_signal_b
- gnuradio.blocks.probe_signal_c
- gnuradio.blocks.probe_signal_f
- gnuradio.blocks.probe_signal_i
- gnuradio.blocks.probe_signal_s
- gnuradio.blocks.probe_signal_vb
- gnuradio.blocks.probe_signal_vc
- gnuradio.blocks.probe_signal_vf
- gnuradio.blocks.probe_signal_vi
- gnuradio.blocks.probe_signal_vs
- gnuradio.blocks.ctrlport_probe2_c
- :noindex:
- gnuradio.blocks.ctrlport_probe_c
- :noindex:
- gnuradio.blocks.message_debug
- :noindex:
- gnuradio.blocks.probe_rate
- gnuradio.blocks.tag_debug
- :noindex:
-
-Message Tools
--------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.message_burst_source
- gnuradio.blocks.message_debug
- :noindex:
- gnuradio.blocks.message_sink
- gnuradio.blocks.message_source
- gnuradio.blocks.message_strobe
- gnuradio.blocks.pdu_to_tagged_stream
- gnuradio.blocks.random_pdu
- :noindex:
- gnuradio.blocks.tagged_stream_to_pdu
-
-Miscellaneous
--------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.vector_source_b
- gnuradio.blocks.vector_source_c
- gnuradio.blocks.vector_source_f
- gnuradio.blocks.vector_source_i
- gnuradio.blocks.vector_source_s
- gnuradio.blocks.bin_statistics_f
- gnuradio.blocks.check_lfsr_32k_s
- gnuradio.blocks.copy
- gnuradio.blocks.delay
- gnuradio.blocks.head
- gnuradio.blocks.lfsr_32k_source_s
- gnuradio.blocks.nop
- gnuradio.blocks.null_sink
- gnuradio.blocks.null_source
- gnuradio.blocks.skiphead
- gnuradio.blocks.throttle
-
-Modulators and Demodulators
----------------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.vco_f
-
-Networking Tools
-----------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.socket_pdu
- gnuradio.blocks.tuntap_pdu
- gnuradio.blocks.udp_sink
- gnuradio.blocks.udp_source
-
-Peak Detectors
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.peak_detector_fb
- gnuradio.blocks.peak_detector_ib
- gnuradio.blocks.peak_detector_sb
- gnuradio.blocks.burst_tagger
- gnuradio.blocks.peak_detector2_fb
- gnuradio.blocks.plateau_detector_fb
-
-Stream Operators
-----------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.vector_insert_b
- gnuradio.blocks.vector_insert_c
- gnuradio.blocks.vector_insert_f
- gnuradio.blocks.vector_insert_i
- gnuradio.blocks.vector_insert_s
- gnuradio.blocks.deinterleave
- gnuradio.blocks.endian_swap
- gnuradio.blocks.interleave
- gnuradio.blocks.keep_m_in_n
- gnuradio.blocks.keep_one_in_n
- gnuradio.blocks.patterned_interleaver
- gnuradio.blocks.regenerate_bb
- gnuradio.blocks.repeat
- gnuradio.blocks.stream_mux
- gnuradio.blocks.stream_to_streams
- gnuradio.blocks.stream_to_vector
- gnuradio.blocks.streams_to_stream
- gnuradio.blocks.streams_to_vector
- gnuradio.blocks.stretch_ff
- gnuradio.blocks.tagged_stream_mux
- gnuradio.blocks.vector_map
- gnuradio.blocks.vector_to_stream
- gnuradio.blocks.vector_to_streams
-
-Stream Tag Tools
-----------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.burst_tagger
- :noindex:
- gnuradio.blocks.tag_debug
- :noindex:
- gnuradio.blocks.tagged_file_sink
- :noindex:
-
-Data Type Converters
---------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.blocks.char_to_float
- gnuradio.blocks.char_to_short
- gnuradio.blocks.complex_to_arg
- gnuradio.blocks.complex_to_float
- gnuradio.blocks.complex_to_imag
- gnuradio.blocks.complex_to_interleaved_short
- gnuradio.blocks.complex_to_mag
- gnuradio.blocks.complex_to_mag_squared
- gnuradio.blocks.complex_to_real
- gnuradio.blocks.float_to_char
- gnuradio.blocks.float_to_complex
- gnuradio.blocks.float_to_int
- gnuradio.blocks.float_to_short
- gnuradio.blocks.float_to_uchar
- gnuradio.blocks.int_to_float
- gnuradio.blocks.interleaved_short_to_complex
- gnuradio.blocks.short_to_char
- gnuradio.blocks.short_to_float
- gnuradio.blocks.uchar_to_float
-
diff --git a/docs/sphinx/source/blocks/level_controllers_blk.rst b/docs/sphinx/source/blocks/level_controllers_blk.rst
deleted file mode 100644
index 4e0b209479..0000000000
--- a/docs/sphinx/source/blocks/level_controllers_blk.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-gnuradio.blocks: Level Controllers
-==================================
-
-.. autoblock:: gnuradio.blocks.moving_average_cc
-.. autoblock:: gnuradio.blocks.moving_average_ff
-.. autoblock:: gnuradio.blocks.moving_average_ii
-.. autoblock:: gnuradio.blocks.moving_average_ss
-.. autoblock:: gnuradio.blocks.mute_cc
-.. autoblock:: gnuradio.blocks.mute_ff
-.. autoblock:: gnuradio.blocks.mute_ii
-.. autoblock:: gnuradio.blocks.mute_ss
-.. autoblock:: gnuradio.blocks.sample_and_hold_bb
-.. autoblock:: gnuradio.blocks.sample_and_hold_ff
-.. autoblock:: gnuradio.blocks.sample_and_hold_ii
-.. autoblock:: gnuradio.blocks.sample_and_hold_ss
-.. autoblock:: gnuradio.blocks.threshold_ff \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/math_operators_blk.rst b/docs/sphinx/source/blocks/math_operators_blk.rst
deleted file mode 100644
index 59f868a187..0000000000
--- a/docs/sphinx/source/blocks/math_operators_blk.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-gnuradio.blocks: Math Operators
-===============================
-
-.. autoblock:: gnuradio.blocks.add_cc
-.. autoblock:: gnuradio.blocks.add_const_bb
-.. autoblock:: gnuradio.blocks.add_const_cc
-.. autoblock:: gnuradio.blocks.add_const_ff
-.. autoblock:: gnuradio.blocks.add_const_ii
-.. autoblock:: gnuradio.blocks.add_const_ss
-.. autoblock:: gnuradio.blocks.add_const_vbb
-.. autoblock:: gnuradio.blocks.add_const_vcc
-.. autoblock:: gnuradio.blocks.add_const_vff
-.. autoblock:: gnuradio.blocks.add_const_vii
-.. autoblock:: gnuradio.blocks.add_const_vss
-.. autoblock:: gnuradio.blocks.add_ii
-.. autoblock:: gnuradio.blocks.add_ss
-.. autoblock:: gnuradio.blocks.argmax_fs
-.. autoblock:: gnuradio.blocks.argmax_is
-.. autoblock:: gnuradio.blocks.argmax_ss
-.. autoblock:: gnuradio.blocks.divide_cc
-.. autoblock:: gnuradio.blocks.divide_ff
-.. autoblock:: gnuradio.blocks.divide_ii
-.. autoblock:: gnuradio.blocks.divide_ss
-.. autoblock:: gnuradio.blocks.integrate_cc
-.. autoblock:: gnuradio.blocks.integrate_ff
-.. autoblock:: gnuradio.blocks.integrate_ii
-.. autoblock:: gnuradio.blocks.integrate_ss
-.. autoblock:: gnuradio.blocks.max_ff
-.. autoblock:: gnuradio.blocks.max_ii
-.. autoblock:: gnuradio.blocks.max_ss
-.. autoblock:: gnuradio.blocks.multiply_const_ii
-.. autoblock:: gnuradio.blocks.multiply_const_ss
-.. autoblock:: gnuradio.blocks.multiply_const_vcc
-.. autoblock:: gnuradio.blocks.multiply_const_vff
-.. autoblock:: gnuradio.blocks.multiply_const_vii
-.. autoblock:: gnuradio.blocks.multiply_const_vss
-.. autoblock:: gnuradio.blocks.multiply_ii
-.. autoblock:: gnuradio.blocks.multiply_ss
-.. autoblock:: gnuradio.blocks.sub_cc
-.. autoblock:: gnuradio.blocks.sub_ff
-.. autoblock:: gnuradio.blocks.sub_ii
-.. autoblock:: gnuradio.blocks.sub_ss
-.. autoblock:: gnuradio.blocks.add_ff
-.. autoblock:: gnuradio.blocks.conjugate_cc
-.. autoblock:: gnuradio.blocks.multiply_cc
-.. autoblock:: gnuradio.blocks.multiply_conjugate_cc
-.. autoblock:: gnuradio.blocks.multiply_const_cc
-.. autoblock:: gnuradio.blocks.multiply_const_ff
-.. autoblock:: gnuradio.blocks.multiply_ff
-.. autoblock:: gnuradio.blocks.nlog10_ff
-.. autoblock:: gnuradio.blocks.rms_cf
-.. autoblock:: gnuradio.blocks.rms_ff
-.. autoblock:: gnuradio.blocks.transcendental \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/measurement_tools_blk.rst b/docs/sphinx/source/blocks/measurement_tools_blk.rst
deleted file mode 100644
index 0669042594..0000000000
--- a/docs/sphinx/source/blocks/measurement_tools_blk.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-gnuradio.blocks: Measurement Tools
-==================================
-
-.. autoblock:: gnuradio.blocks.probe_signal_b
-.. autoblock:: gnuradio.blocks.probe_signal_c
-.. autoblock:: gnuradio.blocks.probe_signal_f
-.. autoblock:: gnuradio.blocks.probe_signal_i
-.. autoblock:: gnuradio.blocks.probe_signal_s
-.. autoblock:: gnuradio.blocks.probe_signal_vb
-.. autoblock:: gnuradio.blocks.probe_signal_vc
-.. autoblock:: gnuradio.blocks.probe_signal_vf
-.. autoblock:: gnuradio.blocks.probe_signal_vi
-.. autoblock:: gnuradio.blocks.probe_signal_vs
-.. autoblock:: gnuradio.blocks.ctrlport_probe2_c
-.. autoblock:: gnuradio.blocks.ctrlport_probe_c
-.. autoblock:: gnuradio.blocks.message_debug
-.. autoblock:: gnuradio.blocks.probe_rate
-.. autoblock:: gnuradio.blocks.tag_debug \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/message_tools_blk.rst b/docs/sphinx/source/blocks/message_tools_blk.rst
deleted file mode 100644
index 37b63ab444..0000000000
--- a/docs/sphinx/source/blocks/message_tools_blk.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-gnuradio.blocks: Message Tools
-==============================
-
-.. autoblock:: gnuradio.blocks.message_burst_source
-.. autoblock:: gnuradio.blocks.message_debug
-.. autoblock:: gnuradio.blocks.message_sink
-.. autoblock:: gnuradio.blocks.message_source
-.. autoblock:: gnuradio.blocks.message_strobe
-.. autoblock:: gnuradio.blocks.pdu_to_tagged_stream
-.. autoblock:: gnuradio.blocks.random_pdu
-.. autoblock:: gnuradio.blocks.tagged_stream_to_pdu \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/misc_blk.rst b/docs/sphinx/source/blocks/misc_blk.rst
deleted file mode 100644
index 7a39845556..0000000000
--- a/docs/sphinx/source/blocks/misc_blk.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-gnuradio.blocks: Miscellaneous
-==============================
-
-.. autoblock:: gnuradio.blocks.vector_source_b
-.. autoblock:: gnuradio.blocks.vector_source_c
-.. autoblock:: gnuradio.blocks.vector_source_f
-.. autoblock:: gnuradio.blocks.vector_source_i
-.. autoblock:: gnuradio.blocks.vector_source_s
-.. autoblock:: gnuradio.blocks.bin_statistics_f
-.. autoblock:: gnuradio.blocks.check_lfsr_32k_s
-.. autoblock:: gnuradio.blocks.copy
-.. autoblock:: gnuradio.blocks.delay
-.. autoblock:: gnuradio.blocks.head
-.. autoblock:: gnuradio.blocks.lfsr_32k_source_s
-.. autoblock:: gnuradio.blocks.nop
-.. autoblock:: gnuradio.blocks.null_sink
-.. autoblock:: gnuradio.blocks.null_source
-.. autoblock:: gnuradio.blocks.skiphead
-.. autoblock:: gnuradio.blocks.throttle \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/modulators_blk.rst b/docs/sphinx/source/blocks/modulators_blk.rst
deleted file mode 100644
index ad35ed8c7a..0000000000
--- a/docs/sphinx/source/blocks/modulators_blk.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-gnuradio.blocks: Modulators and Demodulators
-============================================
-
-.. autoblock:: gnuradio.blocks.vco_f \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/networking_tools_blk.rst b/docs/sphinx/source/blocks/networking_tools_blk.rst
deleted file mode 100644
index e3e2450e2c..0000000000
--- a/docs/sphinx/source/blocks/networking_tools_blk.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-gnuradio.blocks: Networking Tools
-=================================
-
-.. autoblock:: gnuradio.blocks.socket_pdu
-.. autoblock:: gnuradio.blocks.tuntap_pdu
-.. autoblock:: gnuradio.blocks.udp_sink
-.. autoblock:: gnuradio.blocks.udp_source
diff --git a/docs/sphinx/source/blocks/peak_detectors_blk.rst b/docs/sphinx/source/blocks/peak_detectors_blk.rst
deleted file mode 100644
index 1dee645d0a..0000000000
--- a/docs/sphinx/source/blocks/peak_detectors_blk.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-gnuradio.blocks: Peak Detectors
-===============================
-
-.. autoblock:: gnuradio.blocks.peak_detector_fb
-.. autoblock:: gnuradio.blocks.peak_detector_ib
-.. autoblock:: gnuradio.blocks.peak_detector_sb
-.. autoblock:: gnuradio.blocks.burst_tagger
-.. autoblock:: gnuradio.blocks.peak_detector2_fb
-.. autoblock:: gnuradio.blocks.plateau_detector_fb \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/stream_operators_blk.rst b/docs/sphinx/source/blocks/stream_operators_blk.rst
deleted file mode 100644
index 9c470f3806..0000000000
--- a/docs/sphinx/source/blocks/stream_operators_blk.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-gnuradio.blocks: Streams Operators
-==================================
-
-.. autoblock:: gnuradio.blocks.vector_insert_b
-.. autoblock:: gnuradio.blocks.vector_insert_c
-.. autoblock:: gnuradio.blocks.vector_insert_f
-.. autoblock:: gnuradio.blocks.vector_insert_i
-.. autoblock:: gnuradio.blocks.vector_insert_s
-.. autoblock:: gnuradio.blocks.deinterleave
-.. autoblock:: gnuradio.blocks.endian_swap
-.. autoblock:: gnuradio.blocks.interleave
-.. autoblock:: gnuradio.blocks.keep_m_in_n
-.. autoblock:: gnuradio.blocks.keep_one_in_n
-.. autoblock:: gnuradio.blocks.patterned_interleaver
-.. autoblock:: gnuradio.blocks.regenerate_bb
-.. autoblock:: gnuradio.blocks.repeat
-.. autoblock:: gnuradio.blocks.stream_mux
-.. autoblock:: gnuradio.blocks.stream_to_streams
-.. autoblock:: gnuradio.blocks.stream_to_vector
-.. autoblock:: gnuradio.blocks.streams_to_stream
-.. autoblock:: gnuradio.blocks.streams_to_vector
-.. autoblock:: gnuradio.blocks.stretch_ff
-.. autoblock:: gnuradio.blocks.tagged_stream_mux
-.. autoblock:: gnuradio.blocks.vector_map
-.. autoblock:: gnuradio.blocks.vector_to_stream
-.. autoblock:: gnuradio.blocks.vector_to_streams \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/stream_tag_tools_blk.rst b/docs/sphinx/source/blocks/stream_tag_tools_blk.rst
deleted file mode 100644
index 1eab0eae2f..0000000000
--- a/docs/sphinx/source/blocks/stream_tag_tools_blk.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.blocks: Stream Tag Tools
-=================================
-
-.. autoblock:: gnuradio.blocks.burst_tagger
-.. autoblock:: gnuradio.blocks.tag_debug
-.. autoblock:: gnuradio.blocks.tagged_file_sink \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/type_converters_blk.rst b/docs/sphinx/source/blocks/type_converters_blk.rst
deleted file mode 100644
index 56567c89e9..0000000000
--- a/docs/sphinx/source/blocks/type_converters_blk.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-gnuradio.blocks: Data Type Converters
-=====================================
-
-.. autoblock:: gnuradio.blocks.char_to_float
-.. autoblock:: gnuradio.blocks.char_to_short
-.. autoblock:: gnuradio.blocks.complex_to_arg
-.. autoblock:: gnuradio.blocks.complex_to_float
-.. autoblock:: gnuradio.blocks.complex_to_imag
-.. autoblock:: gnuradio.blocks.complex_to_interleaved_short
-.. autoblock:: gnuradio.blocks.complex_to_mag
-.. autoblock:: gnuradio.blocks.complex_to_mag_squared
-.. autoblock:: gnuradio.blocks.complex_to_real
-.. autoblock:: gnuradio.blocks.float_to_char
-.. autoblock:: gnuradio.blocks.float_to_complex
-.. autoblock:: gnuradio.blocks.float_to_int
-.. autoblock:: gnuradio.blocks.float_to_short
-.. autoblock:: gnuradio.blocks.float_to_uchar
-.. autoblock:: gnuradio.blocks.int_to_float
-.. autoblock:: gnuradio.blocks.interleaved_short_to_complex
-.. autoblock:: gnuradio.blocks.short_to_char
-.. autoblock:: gnuradio.blocks.short_to_float
-.. autoblock:: gnuradio.blocks.uchar_to_float \ No newline at end of file
diff --git a/docs/sphinx/source/blocks/waveform_generators_blk.rst b/docs/sphinx/source/blocks/waveform_generators_blk.rst
deleted file mode 100644
index b3edeeb936..0000000000
--- a/docs/sphinx/source/blocks/waveform_generators_blk.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-gnuradio.blocks: Waveform Generators
-====================================
-
-.. autoblock:: gnuradio.blocks.vco_f \ No newline at end of file
diff --git a/docs/sphinx/source/blocks_blocks.rst b/docs/sphinx/source/blocks_blocks.rst
new file mode 100644
index 0000000000..056e9efe9a
--- /dev/null
+++ b/docs/sphinx/source/blocks_blocks.rst
@@ -0,0 +1,228 @@
+gnuradio.blocks
+===============
+
+.. automodule:: gnuradio.blocks
+
+.. autoblock:: gnuradio.blocks.abs_ff
+.. autoblock:: gnuradio.blocks.abs_ii
+.. autoblock:: gnuradio.blocks.abs_ss
+.. autoblock:: gnuradio.blocks.add_cc
+.. autoblock:: gnuradio.blocks.add_const_bb
+.. autoblock:: gnuradio.blocks.add_const_cc
+.. autoblock:: gnuradio.blocks.add_const_ff
+.. autoblock:: gnuradio.blocks.add_const_ii
+.. autoblock:: gnuradio.blocks.add_const_ss
+.. autoblock:: gnuradio.blocks.add_const_vbb
+.. autoblock:: gnuradio.blocks.add_const_vcc
+.. autoblock:: gnuradio.blocks.add_const_vff
+.. autoblock:: gnuradio.blocks.add_const_vii
+.. autoblock:: gnuradio.blocks.add_const_vss
+.. autoblock:: gnuradio.blocks.add_ff
+.. autoblock:: gnuradio.blocks.add_ii
+.. autoblock:: gnuradio.blocks.add_ss
+.. autoblock:: gnuradio.blocks.and_bb
+.. autoblock:: gnuradio.blocks.and_const_bb
+.. autoblock:: gnuradio.blocks.and_const_ii
+.. autoblock:: gnuradio.blocks.and_const_ss
+.. autoblock:: gnuradio.blocks.and_ii
+.. autoblock:: gnuradio.blocks.and_ss
+.. autoblock:: gnuradio.blocks.annotator_1to1
+.. autoblock:: gnuradio.blocks.annotator_alltoall
+.. autoblock:: gnuradio.blocks.annotator_raw
+.. autoblock:: gnuradio.blocks.argmax_fs
+.. autoblock:: gnuradio.blocks.argmax_is
+.. autoblock:: gnuradio.blocks.argmax_ss
+.. autoblock:: gnuradio.blocks.bin_statistics_f
+.. autoblock:: gnuradio.blocks.burst_tagger
+.. autoblock:: gnuradio.blocks.char_to_float
+.. autoblock:: gnuradio.blocks.char_to_short
+.. autoblock:: gnuradio.blocks.check_lfsr_32k_s
+.. autoblock:: gnuradio.blocks.complex_to_arg
+.. autoblock:: gnuradio.blocks.complex_to_float
+.. autoblock:: gnuradio.blocks.complex_to_imag
+.. autoblock:: gnuradio.blocks.complex_to_interleaved_short
+.. autoblock:: gnuradio.blocks.complex_to_mag
+.. autoblock:: gnuradio.blocks.complex_to_mag_squared
+.. autoblock:: gnuradio.blocks.complex_to_real
+.. autoblock:: gnuradio.blocks.conjugate_cc
+.. autoblock:: gnuradio.blocks.copy
+.. autoblock:: gnuradio.blocks.ctrlport_probe2_b
+.. autoblock:: gnuradio.blocks.ctrlport_probe2_c
+.. autoblock:: gnuradio.blocks.ctrlport_probe2_f
+.. autoblock:: gnuradio.blocks.ctrlport_probe2_i
+.. autoblock:: gnuradio.blocks.ctrlport_probe2_s
+.. autoblock:: gnuradio.blocks.ctrlport_probe_c
+.. autoblock:: gnuradio.blocks.deinterleave
+.. autoblock:: gnuradio.blocks.delay
+.. autoblock:: gnuradio.blocks.divide_cc
+.. autoblock:: gnuradio.blocks.divide_ff
+.. autoblock:: gnuradio.blocks.divide_ii
+.. autoblock:: gnuradio.blocks.divide_ss
+.. autoblock:: gnuradio.blocks.endian_swap
+.. autoblock:: gnuradio.blocks.file_descriptor_sink
+.. autoblock:: gnuradio.blocks.file_descriptor_source
+.. autoblock:: gnuradio.blocks.file_meta_sink
+.. autoblock:: gnuradio.blocks.file_meta_source
+.. autoblock:: gnuradio.blocks.file_sink
+.. autoblock:: gnuradio.blocks.file_source
+.. autoblock:: gnuradio.blocks.float_to_char
+.. autoblock:: gnuradio.blocks.float_to_complex
+.. autoblock:: gnuradio.blocks.float_to_int
+.. autoblock:: gnuradio.blocks.float_to_short
+.. autoblock:: gnuradio.blocks.float_to_uchar
+.. autoblock:: gnuradio.blocks.head
+.. autoblock:: gnuradio.blocks.int_to_float
+.. autoblock:: gnuradio.blocks.integrate_cc
+.. autoblock:: gnuradio.blocks.integrate_ff
+.. autoblock:: gnuradio.blocks.integrate_ii
+.. autoblock:: gnuradio.blocks.integrate_ss
+.. autoblock:: gnuradio.blocks.interleave
+.. autoblock:: gnuradio.blocks.interleaved_char_to_complex
+.. autoblock:: gnuradio.blocks.interleaved_short_to_complex
+.. autoblock:: gnuradio.blocks.keep_m_in_n
+.. autoblock:: gnuradio.blocks.keep_one_in_n
+.. autoblock:: gnuradio.blocks.lfsr_32k_source_s
+.. autoblock:: gnuradio.blocks.max_ff
+.. autoblock:: gnuradio.blocks.max_ii
+.. autoblock:: gnuradio.blocks.max_ss
+.. autoblock:: gnuradio.blocks.message_burst_source
+.. autoblock:: gnuradio.blocks.message_debug
+.. autoblock:: gnuradio.blocks.message_sink
+.. autoblock:: gnuradio.blocks.message_source
+.. autoblock:: gnuradio.blocks.message_strobe
+.. autoblock:: gnuradio.blocks.message_strobe_random
+.. autoblock:: gnuradio.blocks.min_ff
+.. autoblock:: gnuradio.blocks.min_ii
+.. autoblock:: gnuradio.blocks.min_ss
+.. autoblock:: gnuradio.blocks.moving_average_cc
+.. autoblock:: gnuradio.blocks.moving_average_ff
+.. autoblock:: gnuradio.blocks.moving_average_ii
+.. autoblock:: gnuradio.blocks.moving_average_ss
+.. autoblock:: gnuradio.blocks.multiply_cc
+.. autoblock:: gnuradio.blocks.multiply_conjugate_cc
+.. autoblock:: gnuradio.blocks.multiply_const_cc
+.. autoblock:: gnuradio.blocks.multiply_const_ff
+.. autoblock:: gnuradio.blocks.multiply_const_ii
+.. autoblock:: gnuradio.blocks.multiply_const_ss
+.. autoblock:: gnuradio.blocks.multiply_const_vcc
+.. autoblock:: gnuradio.blocks.multiply_const_vff
+.. autoblock:: gnuradio.blocks.multiply_const_vii
+.. autoblock:: gnuradio.blocks.multiply_const_vss
+.. autoblock:: gnuradio.blocks.multiply_ff
+.. autoblock:: gnuradio.blocks.multiply_ii
+.. autoblock:: gnuradio.blocks.multiply_matrix_ff
+.. autoblock:: gnuradio.blocks.multiply_ss
+.. autoblock:: gnuradio.blocks.mute_cc
+.. autoblock:: gnuradio.blocks.mute_ff
+.. autoblock:: gnuradio.blocks.mute_ii
+.. autoblock:: gnuradio.blocks.mute_ss
+.. autoblock:: gnuradio.blocks.nlog10_ff
+.. autoblock:: gnuradio.blocks.nop
+.. autoblock:: gnuradio.blocks.not_bb
+.. autoblock:: gnuradio.blocks.not_ii
+.. autoblock:: gnuradio.blocks.not_ss
+.. autoblock:: gnuradio.blocks.null_sink
+.. autoblock:: gnuradio.blocks.null_source
+.. autoblock:: gnuradio.blocks.or_bb
+.. autoblock:: gnuradio.blocks.or_ii
+.. autoblock:: gnuradio.blocks.or_ss
+.. autoblock:: gnuradio.blocks.pack_k_bits_bb
+.. autoblock:: gnuradio.blocks.packed_to_unpacked_bb
+.. autoblock:: gnuradio.blocks.packed_to_unpacked_ii
+.. autoblock:: gnuradio.blocks.packed_to_unpacked_ss
+.. autoblock:: gnuradio.blocks.patterned_interleaver
+.. autoblock:: gnuradio.blocks.pdu_filter
+.. autoblock:: gnuradio.blocks.pdu_remove
+.. autoblock:: gnuradio.blocks.pdu_set
+.. autoblock:: gnuradio.blocks.pdu_to_tagged_stream
+.. autoblock:: gnuradio.blocks.peak_detector2_fb
+.. autoblock:: gnuradio.blocks.peak_detector_fb
+.. autoblock:: gnuradio.blocks.peak_detector_ib
+.. autoblock:: gnuradio.blocks.peak_detector_sb
+.. autoblock:: gnuradio.blocks.plateau_detector_fb
+.. autoblock:: gnuradio.blocks.probe_rate
+.. autoblock:: gnuradio.blocks.probe_signal_b
+.. autoblock:: gnuradio.blocks.probe_signal_c
+.. autoblock:: gnuradio.blocks.probe_signal_f
+.. autoblock:: gnuradio.blocks.probe_signal_i
+.. autoblock:: gnuradio.blocks.probe_signal_s
+.. autoblock:: gnuradio.blocks.probe_signal_vb
+.. autoblock:: gnuradio.blocks.probe_signal_vc
+.. autoblock:: gnuradio.blocks.probe_signal_vf
+.. autoblock:: gnuradio.blocks.probe_signal_vi
+.. autoblock:: gnuradio.blocks.probe_signal_vs
+.. autoblock:: gnuradio.blocks.random_pdu
+.. autoblock:: gnuradio.blocks.regenerate_bb
+.. autoblock:: gnuradio.blocks.repack_bits_bb
+.. autoblock:: gnuradio.blocks.repeat
+.. autoblock:: gnuradio.blocks.rms_cf
+.. autoblock:: gnuradio.blocks.rms_ff
+.. autoblock:: gnuradio.blocks.rotator_cc
+.. autoblock:: gnuradio.blocks.sample_and_hold_bb
+.. autoblock:: gnuradio.blocks.sample_and_hold_ff
+.. autoblock:: gnuradio.blocks.sample_and_hold_ii
+.. autoblock:: gnuradio.blocks.sample_and_hold_ss
+.. autoblock:: gnuradio.blocks.short_to_char
+.. autoblock:: gnuradio.blocks.short_to_float
+.. autoblock:: gnuradio.blocks.skiphead
+.. autoblock:: gnuradio.blocks.socket_pdu
+.. autoblock:: gnuradio.blocks.stream_mux
+.. autoblock:: gnuradio.blocks.stream_to_streams
+.. autoblock:: gnuradio.blocks.stream_to_tagged_stream
+.. autoblock:: gnuradio.blocks.stream_to_vector
+.. autoblock:: gnuradio.blocks.streams_to_stream
+.. autoblock:: gnuradio.blocks.streams_to_vector
+.. autoblock:: gnuradio.blocks.stretch_ff
+.. autoblock:: gnuradio.blocks.sub_cc
+.. autoblock:: gnuradio.blocks.sub_ff
+.. autoblock:: gnuradio.blocks.sub_ii
+.. autoblock:: gnuradio.blocks.sub_ss
+.. autoblock:: gnuradio.blocks.tag_debug
+.. autoblock:: gnuradio.blocks.tag_gate
+.. autoblock:: gnuradio.blocks.tagged_file_sink
+.. autoblock:: gnuradio.blocks.tagged_stream_align
+.. autoblock:: gnuradio.blocks.tagged_stream_multiply_length
+.. autoblock:: gnuradio.blocks.tagged_stream_mux
+.. autoblock:: gnuradio.blocks.tagged_stream_to_pdu
+.. autoblock:: gnuradio.blocks.tags_strobe
+.. autoblock:: gnuradio.blocks.threshold_ff
+.. autoblock:: gnuradio.blocks.throttle
+.. autoblock:: gnuradio.blocks.transcendental
+.. autoblock:: gnuradio.blocks.tsb_vector_sink_b
+.. autoblock:: gnuradio.blocks.tsb_vector_sink_c
+.. autoblock:: gnuradio.blocks.tsb_vector_sink_f
+.. autoblock:: gnuradio.blocks.tsb_vector_sink_i
+.. autoblock:: gnuradio.blocks.tsb_vector_sink_s
+.. autoblock:: gnuradio.blocks.tuntap_pdu
+.. autoblock:: gnuradio.blocks.uchar_to_float
+.. autoblock:: gnuradio.blocks.udp_sink
+.. autoblock:: gnuradio.blocks.udp_source
+.. autoblock:: gnuradio.blocks.unpack_k_bits_bb
+.. autoblock:: gnuradio.blocks.unpacked_to_packed_bb
+.. autoblock:: gnuradio.blocks.unpacked_to_packed_ii
+.. autoblock:: gnuradio.blocks.unpacked_to_packed_ss
+.. autoblock:: gnuradio.blocks.vco_c
+.. autoblock:: gnuradio.blocks.vco_f
+.. autoblock:: gnuradio.blocks.vector_insert_b
+.. autoblock:: gnuradio.blocks.vector_insert_c
+.. autoblock:: gnuradio.blocks.vector_insert_f
+.. autoblock:: gnuradio.blocks.vector_insert_i
+.. autoblock:: gnuradio.blocks.vector_insert_s
+.. autoblock:: gnuradio.blocks.vector_map
+.. autoblock:: gnuradio.blocks.vector_sink_b
+.. autoblock:: gnuradio.blocks.vector_sink_c
+.. autoblock:: gnuradio.blocks.vector_sink_f
+.. autoblock:: gnuradio.blocks.vector_sink_i
+.. autoblock:: gnuradio.blocks.vector_sink_s
+.. autoblock:: gnuradio.blocks.vector_source_b
+.. autoblock:: gnuradio.blocks.vector_source_c
+.. autoblock:: gnuradio.blocks.vector_source_f
+.. autoblock:: gnuradio.blocks.vector_source_i
+.. autoblock:: gnuradio.blocks.vector_source_s
+.. autoblock:: gnuradio.blocks.vector_to_stream
+.. autoblock:: gnuradio.blocks.vector_to_streams
+.. autoblock:: gnuradio.blocks.wavfile_sink
+.. autoblock:: gnuradio.blocks.wavfile_source
+.. autoblock:: gnuradio.blocks.xor_bb
+.. autoblock:: gnuradio.blocks.xor_ii
+.. autoblock:: gnuradio.blocks.xor_ss
diff --git a/docs/sphinx/source/channels.rst b/docs/sphinx/source/channels.rst
index 4013b57938..cd2fb368b2 100644
--- a/docs/sphinx/source/channels.rst
+++ b/docs/sphinx/source/channels.rst
@@ -1,8 +1,12 @@
gnuradio.channels
=================
-.. automodule:: gnuradio.channels
-
-.. autoblock:: gnuradio.channels.channel_model
-.. autoblock:: gnuradio.channels.fading_model
-
+.. autoclass:: gnuradio.channels.amp_bal
+.. autoclass:: gnuradio.channels.conj_fs_iqcorr
+.. autoclass:: gnuradio.channels.distortion_2_gen
+.. autoclass:: gnuradio.channels.distortion_3_gen
+.. autoclass:: gnuradio.channels.impairments
+.. autoclass:: gnuradio.channels.iqbal_gen
+.. autoclass:: gnuradio.channels.phase_bal
+.. autoclass:: gnuradio.channels.phase_noise_gen
+.. autoclass:: gnuradio.channels.quantizer
diff --git a/docs/sphinx/source/channels_blocks.rst b/docs/sphinx/source/channels_blocks.rst
new file mode 100644
index 0000000000..f8213aa26e
--- /dev/null
+++ b/docs/sphinx/source/channels_blocks.rst
@@ -0,0 +1,12 @@
+gnuradio.channels
+=================
+
+.. automodule:: gnuradio.channels
+
+.. autoblock:: gnuradio.channels.channel_model
+.. autoblock:: gnuradio.channels.channel_model2
+.. autoblock:: gnuradio.channels.fading_model
+.. autoblock:: gnuradio.channels.selective_fading_model
+.. autoblock:: gnuradio.channels.dynamic_channel_model
+.. autoblock:: gnuradio.channels.cfo_model
+.. autoblock:: gnuradio.channels.sro_model
diff --git a/docs/sphinx/source/comedi.rst b/docs/sphinx/source/comedi_blocks.rst
index 2bed3683a2..570be745df 100644
--- a/docs/sphinx/source/comedi.rst
+++ b/docs/sphinx/source/comedi_blocks.rst
@@ -3,6 +3,5 @@ gnuradio.comedi
.. automodule:: gnuradio.comedi
-.. autoblock:: gnuradio.comedi.source_s
.. autoblock:: gnuradio.comedi.sink_s
-
+.. autoblock:: gnuradio.comedi.source_s
diff --git a/docs/sphinx/source/digital.rst b/docs/sphinx/source/digital.rst
new file mode 100644
index 0000000000..e15c9166d9
--- /dev/null
+++ b/docs/sphinx/source/digital.rst
@@ -0,0 +1,116 @@
+gnuradio.digital
+================
+
+.. autoclass:: gnuradio.digital.constellation
+.. autoclass:: gnuradio.digital.lfsr
+.. autoclass:: gnuradio.digital.mpsk_snr_est
+.. autoclass:: gnuradio.digital.simple_framer
+.. autoclass:: gnuradio.digital.bpsk_mod
+.. autoclass:: gnuradio.digital.bpsk_demod
+.. autoclass:: gnuradio.digital.dbpsk_mod
+.. autoclass:: gnuradio.digital.dbpsk_demod
+.. autofunction:: gnuradio.digital.crc32
+.. autofunction:: gnuradio.digital.update_crc32
+.. autofunction:: gnuradio.digital.constellation_map_generator
+.. autoclass:: gnuradio.digital.cpm_mod
+.. autofunction:: gnuradio.digital.gen_and_append_crc32
+.. autofunction:: gnuradio.digital.check_crc32
+.. autoclass:: gnuradio.digital.generic_mod
+.. autoclass:: gnuradio.digital.generic_demod
+.. autoclass:: gnuradio.digital.gfsk_mod
+.. autoclass:: gnuradio.digital.gfsk_demod
+.. autoclass:: gnuradio.digital.gmsk_mod
+.. autoclass:: gnuradio.digital.gmsk_demod
+.. autofunction:: gnuradio.digital.type_1_mods
+.. autofunction:: gnuradio.digital.add_type_1_mod
+.. autofunction:: gnuradio.digital.type_1_demods
+.. autofunction:: gnuradio.digital.add_type_1_demod
+.. autofunction:: gnuradio.digital.type_1_constellations
+.. autofunction:: gnuradio.digital.add_type_1_constellation
+.. autofunction:: gnuradio.digital.extract_kwargs_from_options
+.. autofunction:: gnuradio.digital.extract_kwargs_from_options_for_class
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.conv_packed_binary_string_to_1_0_string
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.conv_1_0_string_to_packed_binary_string
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.is_1_0_string
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.string_to_hex_list
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.whiten
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.dewhiten
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.make_header
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.make_packet
+.. autofunction:: gnuradio.digital.ofdm_packet_utils.unmake_packet
+.. autoclass:: gnuradio.digital.ofdm_mod
+.. autoclass:: gnuradio.digital.ofdm_demod
+.. autoclass:: gnuradio.digital.ofdm_receiver
+.. autoclass:: gnuradio.digital.ofdm_sync_fixed
+.. autoclass:: gnuradio.digital.ofdm_sync_ml
+.. autoclass:: gnuradio.digital.ofdm_sync_pnac
+.. autoclass:: gnuradio.digital.ofdm_sync_pn
+.. autoclass:: gnuradio.digital.ofdm_tx
+.. autoclass:: gnuradio.digital.ofdm_rx
+.. autofunction:: gnuradio.digital.packet_utils.conv_packed_binary_string_to_1_0_string
+.. autofunction:: gnuradio.digital.packet_utils.conv_1_0_string_to_packed_binary_string
+.. autofunction:: gnuradio.digital.packet_utils.is_1_0_string
+.. autofunction:: gnuradio.digital.packet_utils.string_to_hex_list
+.. autofunction:: gnuradio.digital.packet_utils.whiten
+.. autofunction:: gnuradio.digital.packet_utils.dewhiten
+.. autofunction:: gnuradio.digital.packet_utils.make_header
+.. autofunction:: gnuradio.digital.packet_utils.make_packet
+.. autofunction:: gnuradio.digital.packet_utils.unmake_packet
+.. autoclass:: gnuradio.digital.mod_pkts
+.. autoclass:: gnuradio.digital.demod_pkts
+.. autofunction:: gnuradio.digital.psk_2_0x0
+.. autofunction:: gnuradio.digital.psk_2_0x1
+.. autofunction:: gnuradio.digital.sd_psk_2_0x0
+.. autofunction:: gnuradio.digital.sd_psk_2_0x1
+.. autofunction:: gnuradio.digital.psk_4_0x0_0_1
+.. autofunction:: gnuradio.digital.psk_4_0x1_0_1
+.. autofunction:: gnuradio.digital.psk_4_0x2_0_1
+.. autofunction:: gnuradio.digital.psk_4_0x3_0_1
+.. autofunction:: gnuradio.digital.psk_4_0x0_1_0
+.. autofunction:: gnuradio.digital.psk_4_0x1_1_0
+.. autofunction:: gnuradio.digital.psk_4_0x2_1_0
+.. autofunction:: gnuradio.digital.psk_4_0x3_1_0
+.. autofunction:: gnuradio.digital.sd_psk_4_0x0_0_1
+.. autofunction:: gnuradio.digital.sd_psk_4_0x1_0_1
+.. autofunction:: gnuradio.digital.sd_psk_4_0x2_0_1
+.. autofunction:: gnuradio.digital.sd_psk_4_0x3_0_1
+.. autofunction:: gnuradio.digital.sd_psk_4_0x0_1_0
+.. autofunction:: gnuradio.digital.sd_psk_4_0x1_1_0
+.. autofunction:: gnuradio.digital.sd_psk_4_0x2_1_0
+.. autofunction:: gnuradio.digital.sd_psk_4_0x3_1_0
+.. autofunction:: gnuradio.digital.psk_constellation
+.. autoclass:: gnuradio.digital.psk_mod
+.. autoclass:: gnuradio.digital.psk_demod
+.. autofunction:: gnuradio.digital.qam_16_0x0_0_1_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x1_0_1_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x2_0_1_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x3_0_1_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x0_1_0_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x1_1_0_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x2_1_0_2_3
+.. autofunction:: gnuradio.digital.qam_16_0x3_1_0_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x0_0_1_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x1_0_1_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x2_0_1_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x3_0_1_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x0_1_0_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x1_1_0_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x2_1_0_2_3
+.. autofunction:: gnuradio.digital.sd_qam_16_0x3_1_0_2_3
+.. autofunction:: gnuradio.digital.qam32_holeinside_constellation
+.. autofunction:: gnuradio.digital.make_differential_constellation
+.. autofunction:: gnuradio.digital.make_non_differential_constellation
+.. autofunction:: gnuradio.digital.qam_constellation
+.. autoclass:: gnuradio.digital.qam_mod
+.. autoclass:: gnuradio.digital.qam_demod
+.. autofunction:: gnuradio.digital.qpsk_constellation
+.. autoclass:: gnuradio.digital.qpsk_mod
+.. autoclass:: gnuradio.digital.qpsk_demod
+.. autofunction:: gnuradio.digital.dqpsk_constellation
+.. autoclass:: gnuradio.digital.dqpsk_mod
+.. autoclass:: gnuradio.digital.dqpsk_demod
+.. autofunction:: gnuradio.digital.soft_dec_table_generator
+.. autofunction:: gnuradio.digital.soft_dec_table
+.. autofunction:: gnuradio.digital.calc_soft_dec_from_table
+.. autofunction:: gnuradio.digital.calc_soft_dec
+.. autofunction:: gnuradio.digital.show_table
diff --git a/docs/sphinx/source/digital/blocks.rst b/docs/sphinx/source/digital/blocks.rst
deleted file mode 100644
index 2c5218c372..0000000000
--- a/docs/sphinx/source/digital/blocks.rst
+++ /dev/null
@@ -1,69 +0,0 @@
-gnuradio.digital: Signal Processing Blocks
-==========================================
-
-.. autoblock:: gnuradio.digital.fll_band_edge_cc
-.. autoblock:: gnuradio.digital.kurtotic_equalizer_cc
-.. autoblock:: gnuradio.digital.lms_dd_equalizer_cc
-.. autoblock:: gnuradio.digital.mpsk_receiver_cc
-.. autoblock:: gnuradio.digital.mpsk_snr_est_cc
-.. autoblock:: gnuradio.digital.clock_recovery_mm_cc
-.. autoblock:: gnuradio.digital.clock_recovery_mm_ff
-.. autoblock:: gnuradio.digital.constellation_decoder_cb
-.. autoblock:: gnuradio.digital.constellation_receiver_cb
-.. autoblock:: gnuradio.digital.correlate_access_code_bb
-.. autoblock:: gnuradio.digital.costas_loop_cc
-.. autoblock:: gnuradio.digital.cma_equalizer_cc
-.. autoblock:: gnuradio.digital.binary_slicer_fb
-.. autoblock:: gnuradio.digital.gmskmod_bc
-.. autoblock:: gnuradio.digital.probe_mpsk_snr_est_c
-.. autoblock:: gnuradio.digital.cpmmod_bc
-.. autoblock:: gnuradio.digital.glfsr_source_b
-.. autoblock:: gnuradio.digital.glfsr_source_f
-.. autoblock:: gnuradio.digital.framer_sink_1
-.. autoblock:: gnuradio.digital.framer_sink_1
-.. autoblock:: gnuradio.digital.additive_scrambler_bb
-.. autoblock:: gnuradio.digital.descrambler_bb
-.. autoblock:: gnuradio.digital.diff_decoder_bb
-.. autoblock:: gnuradio.digital.diff_encoder_bb
-.. autoblock:: gnuradio.digital.map_bb
-.. autoblock:: gnuradio.digital.scrambler_bb
-.. autoblock:: gnuradio.digital.pn_correlator_cc
-.. autoblock:: gnuradio.digital.simple_framer
-.. autoblock:: gnuradio.digital.chunks_to_symbols_bc
-.. autoblock:: gnuradio.digital.chunks_to_symbols_bf
-.. autoblock:: gnuradio.digital.chunks_to_symbols_ic
-.. autoblock:: gnuradio.digital.chunks_to_symbols_if
-.. autoblock:: gnuradio.digital.chunks_to_symbols_sc
-.. autoblock:: gnuradio.digital.chunks_to_symbols_sf
-.. autopyblock:: gnuradio.digital.generic_demod
-.. autopyblock:: gnuradio.digital.generic_mod
-.. autopyblock:: gnuradio.digital.bpsk.dbpsk_demod
-.. autopyblock:: gnuradio.digital.bpsk.dbpsk_mod
-.. autopyblock:: gnuradio.digital.qpsk.dqpsk_demod
-.. autopyblock:: gnuradio.digital.qpsk.dqpsk_mod
-.. autopyblock:: gnuradio.digital.gmsk.gmsk_demod
-.. autopyblock:: gnuradio.digital.gmsk.gmsk_mod
-.. autopyblock:: gnuradio.digital.bpsk.bpsk_demod
-.. autopyblock:: gnuradio.digital.bpsk.bpsk_mod
-.. autopyblock:: gnuradio.digital.psk.psk_demod
-.. autopyblock:: gnuradio.digital.psk.psk_mod
-.. autopyblock:: gnuradio.digital.qam.qam_demod
-.. autopyblock:: gnuradio.digital.qam.qam_mod
-.. autopyblock:: gnuradio.digital.qpsk.qpsk_demod
-.. autopyblock:: gnuradio.digital.qpsk.qpsk_mod
-.. autopyblock:: gnuradio.digital.cpm.cpm_mod
-.. autopyblock:: gnuradio.digital.pkt.mod_pkts
-.. autopyblock:: gnuradio.digital.pkt.demod_pkts
-.. autopyblock:: gnuradio.digital.ofdm_cyclic_prefixer
-.. autopyblock:: gnuradio.digital.ofdm_frame_acquisition
-.. autopyblock:: gnuradio.digital.ofdm_frame_sink
-.. autopyblock:: gnuradio.digital.ofdm_insert_preamble
-.. autopyblock:: gnuradio.digital.ofdm_mapper_bcv
-.. autopyblock:: gnuradio.digital.ofdm_mod
-.. autopyblock:: gnuradio.digital.ofdm_demod
-.. autopyblock:: gnuradio.digital.ofdm_receiver
-.. autopyblock:: gnuradio.digital.ofdm_sampler
-.. autopyblock:: gnuradio.digital.ofdm_sync_fixed
-.. autopyblock:: gnuradio.digital.ofdm_sync_ml
-.. autopyblock:: gnuradio.digital.ofdm_sync_pn
-.. autopyblock:: gnuradio.digital.ofdm_sync_pnac
diff --git a/docs/sphinx/source/digital/constellations.rst b/docs/sphinx/source/digital/constellations.rst
deleted file mode 100644
index 3fa02613ae..0000000000
--- a/docs/sphinx/source/digital/constellations.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-gnuradio.digital: Constellations
-================================
-
-.. autofunction:: gnuradio.digital.constellation_8psk
-.. autofunction:: gnuradio.digital.constellation_bpsk
-.. autofunction:: gnuradio.digital.constellation_calcdist
-.. autofunction:: gnuradio.digital.constellation_dqpsk
-.. autofunction:: gnuradio.digital.constellation_psk
-.. autofunction:: gnuradio.digital.constellation_qpsk
-.. autofunction:: gnuradio.digital.constellation_rect
-.. autofunction:: gnuradio.digital.qpsk.qpsk_constellation
-.. autofunction:: gnuradio.digital.psk.psk_constellation
-.. autofunction:: gnuradio.digital.qam.qam_constellation
diff --git a/docs/sphinx/source/digital/index.rst b/docs/sphinx/source/digital/index.rst
deleted file mode 100644
index adf8065aca..0000000000
--- a/docs/sphinx/source/digital/index.rst
+++ /dev/null
@@ -1,151 +0,0 @@
-gnuradio.digital
-================
-
-.. automodule:: gnuradio.digital
-
-Signal Processing Blocks
-------------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.digital.fll_band_edge_cc
- gnuradio.digital.kurtotic_equalizer_cc
- gnuradio.digital.lms_dd_equalizer_cc
- gnuradio.digital.mpsk_receiver_cc
- gnuradio.digital.mpsk_snr_est_cc
- gnuradio.digital.clock_recovery_mm_cc
- gnuradio.digital.clock_recovery_mm_ff
- gnuradio.digital.constellation_decoder_cb
- gnuradio.digital.constellation_receiver_cb
- gnuradio.digital.correlate_access_code_bb
- gnuradio.digital.costas_loop_cc
- gnuradio.digital.cma_equalizer_cc
- gnuradio.digital.binary_slicer_fb
- gnuradio.digital.gmskmod_bc
- gnuradio.digital.probe_mpsk_snr_est_c
- gnuradio.digital.cpmmod_bc
- gnuradio.digital.glfsr_source_b
- gnuradio.digital.glfsr_source_f
- gnuradio.digital.framer_sink_1
- gnuradio.digital.additive_scrambler_bb
- gnuradio.digital.descrambler_bb
- gnuradio.digital.diff_decoder_bb
- gnuradio.digital.diff_encoder_bb
- gnuradio.digital.map_bb
- gnuradio.digital.scrambler_bb
- gnuradio.digital.pn_correlator_cc
- gnuradio.digital.simple_framer
- gnuradio.digital.chunks_to_symbols_bc
- gnuradio.digital.chunks_to_symbols_bf
- gnuradio.digital.chunks_to_symbols_ic
- gnuradio.digital.chunks_to_symbols_if
- gnuradio.digital.chunks_to_symbols_sc
- gnuradio.digital.chunks_to_symbols_sf
- gnuradio.digital.generic_demod
- gnuradio.digital.generic_mod
- gnuradio.digital.bpsk.dbpsk_demod
- gnuradio.digital.bpsk.dbpsk_mod
- gnuradio.digital.qpsk.dqpsk_demod
- gnuradio.digital.qpsk.dqpsk_mod
- gnuradio.digital.gmsk.gmsk_demod
- gnuradio.digital.gmsk.gmsk_mod
- gnuradio.digital.bpsk.bpsk_demod
- gnuradio.digital.bpsk.bpsk_mod
- gnuradio.digital.psk.psk_demod
- gnuradio.digital.psk.psk_mod
- gnuradio.digital.qam.qam_demod
- gnuradio.digital.qam.qam_mod
- gnuradio.digital.qpsk.qpsk_demod
- gnuradio.digital.qpsk.qpsk_mod
- gnuradio.digital.cpm.cpm_mod
- gnuradio.digital.pkt.mod_pkts
- gnuradio.digital.pkt.demod_pkts
- gnuradio.digital.ofdm_cyclic_prefixer
- gnuradio.digital.ofdm_frame_acquisition
- gnuradio.digital.ofdm_frame_sink
- gnuradio.digital.ofdm_insert_preamble
- gnuradio.digital.ofdm_mapper_bcv
- gnuradio.digital.ofdm_mod
- gnuradio.digital.ofdm_demod
- gnuradio.digital.ofdm_receiver
- gnuradio.digital.ofdm_sampler
- gnuradio.digital.ofdm_sync_fixed
- gnuradio.digital.ofdm_sync_ml
- gnuradio.digital.ofdm_sync_pn
- gnuradio.digital.ofdm_sync_pnac
-
-Constellations
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.digital.constellation_8psk
- gnuradio.digital.constellation_bpsk
- gnuradio.digital.constellation_calcdist
- gnuradio.digital.constellation_dqpsk
- gnuradio.digital.constellation_psk
- gnuradio.digital.constellation_qpsk
- gnuradio.digital.constellation_qpsk
- gnuradio.digital.constellation_rect
- gnuradio.digital.qpsk.qpsk_constellation
- gnuradio.digital.psk.psk_constellation
- gnuradio.digital.qam.qam_constellation
-
-Modulation Utilties
--------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.digital.utils.gray_code.gray_code
- gnuradio.digital.modulation_utils.add_type_1_constellation
- gnuradio.digital.modulation_utils.add_type_1_demod
- gnuradio.digital.modulation_utils.add_type_1_mod
- gnuradio.digital.modulation_utils.type_1_constellations
- gnuradio.digital.modulation_utils.type_1_demods
- gnuradio.digital.modulation_utils.type_1_mods
-
-.. gnuradio.digital.utils.mod_codes.GRAY_CODE
-.. gnuradio.digital.utils.mod_codes.NO_CODE
-
-Packet Utilities
-----------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.digital.packet_utils.conv_1_0_string_to_packed_binary_string
- gnuradio.digital.packet_utils.conv_packed_binary_string_to_1_0_string
- gnuradio.digital.packet_utils.default_access_code
- gnuradio.digital.packet_utils.dewhiten
- gnuradio.digital.packet_utils.is_1_0_string
- gnuradio.digital.packet_utils.make_header
- gnuradio.digital.packet_utils.make_packet
- gnuradio.digital.packet_utils.preamble
- gnuradio.digital.packet_utils.random_mask_tuple
- gnuradio.digital.packet_utils.random_mask_vec8
- gnuradio.digital.packet_utils.string_to_hex_list
- gnuradio.digital.packet_utils.unmake_packet
- gnuradio.digital.packet_utils.whiten
- gnuradio.digital.crc.check_crc32
- gnuradio.digital.crc.gen_and_append_crc32
-
-OFDM Packet Utilities
----------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.digital.ofdm_packet_utils.conv_1_0_string_to_packed_binary_string
- gnuradio.digital.ofdm_packet_utils.conv_packed_binary_string_to_1_0_string
- gnuradio.digital.ofdm_packet_utils.dewhiten
- gnuradio.digital.ofdm_packet_utils.is_1_0_string
- gnuradio.digital.ofdm_packet_utils.make_header
- gnuradio.digital.ofdm_packet_utils.make_packet
- gnuradio.digital.ofdm_packet_utils.random_mask_tuple
- gnuradio.digital.ofdm_packet_utils.random_mask_vec8
- gnuradio.digital.ofdm_packet_utils.string_to_hex_list
- gnuradio.digital.ofdm_packet_utils.unmake_packet
- gnuradio.digital.ofdm_packet_utils.whiten
diff --git a/docs/sphinx/source/digital/ofdm.rst b/docs/sphinx/source/digital/ofdm.rst
deleted file mode 100644
index 8680503f26..0000000000
--- a/docs/sphinx/source/digital/ofdm.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-gnuradio.digital: OFDM Packet Utilities
-=======================================
-
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.conv_1_0_string_to_packed_binary_string
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.conv_packed_binary_string_to_1_0_string
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.dewhiten
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.is_1_0_string
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.make_header
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.make_packet
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.random_mask_tuple
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.random_mask_vec8
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.string_to_hex_list
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.unmake_packet
-.. autofunction:: gnuradio.digital.ofdm_packet_utils.whiten
diff --git a/docs/sphinx/source/digital/pkt_utils.rst b/docs/sphinx/source/digital/pkt_utils.rst
deleted file mode 100644
index 112e103a2f..0000000000
--- a/docs/sphinx/source/digital/pkt_utils.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-gnuradio.digital: Packet Utilities
-==================================
-
-.. autofunction:: gnuradio.digital.packet_utils.conv_1_0_string_to_packed_binary_string
-.. autofunction:: gnuradio.digital.packet_utils.conv_packed_binary_string_to_1_0_string
-.. data:: gnuradio.digital.packet_utils.default_access_code
-.. autofunction:: gnuradio.digital.packet_utils.dewhiten
-.. autofunction:: gnuradio.digital.packet_utils.is_1_0_string
-.. autofunction:: gnuradio.digital.packet_utils.make_header
-.. autofunction:: gnuradio.digital.packet_utils.make_packet
-.. data:: gnuradio.digital.packet_utils.preamble
-.. autofunction:: gnuradio.digital.packet_utils.random_mask_tuple
-.. autofunction:: gnuradio.digital.packet_utils.random_mask_vec8
-.. autofunction:: gnuradio.digital.packet_utils.string_to_hex_list
-.. autofunction:: gnuradio.digital.packet_utils.unmake_packet
-.. autofunction:: gnuradio.digital.packet_utils.whiten
-.. autofunction:: gnuradio.digital.crc.check_crc32
-.. autofunction:: gnuradio.digital.crc.gen_and_append_crc32
diff --git a/docs/sphinx/source/digital/utilities.rst b/docs/sphinx/source/digital/utilities.rst
deleted file mode 100644
index 7a08725a58..0000000000
--- a/docs/sphinx/source/digital/utilities.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-gnuradio.digital: Modulation Utilities
-======================================
-
-.. autofunction:: gnuradio.digital.utils.gray_code.gray_code
-.. data:: gnuradio.digital.utils.mod_codes.GRAY_CODE
-.. data:: gnuradio.digital.utils.mod_codes.NO_CODE
-.. autofunction:: gnuradio.digital.modulation_utils.add_type_1_constellation
-.. autofunction:: gnuradio.digital.modulation_utils.add_type_1_demod
-.. autofunction:: gnuradio.digital.modulation_utils.add_type_1_mod
-.. data:: gnuradio.digital.modulation_utils.type_1_constellations
-.. data:: gnuradio.digital.modulation_utils.type_1_demods
-.. data:: gnuradio.digital.modulation_utils.type_1_mods
diff --git a/docs/sphinx/source/digital_blocks.rst b/docs/sphinx/source/digital_blocks.rst
new file mode 100644
index 0000000000..1dfd017069
--- /dev/null
+++ b/docs/sphinx/source/digital_blocks.rst
@@ -0,0 +1,75 @@
+gnuradio.digital
+=================
+
+.. automodule:: gnuradio.digital
+
+.. autoblock:: gnuradio.digital.additive_scrambler_bb
+.. autoblock:: gnuradio.digital.binary_slicer_fb
+.. autoblock:: gnuradio.digital.burst_shaper_cc
+.. autoblock:: gnuradio.digital.burst_shaper_ff
+.. autoblock:: gnuradio.digital.chunks_to_symbols_bc
+.. autoblock:: gnuradio.digital.chunks_to_symbols_bf
+.. autoblock:: gnuradio.digital.chunks_to_symbols_ic
+.. autoblock:: gnuradio.digital.chunks_to_symbols_if
+.. autoblock:: gnuradio.digital.chunks_to_symbols_sc
+.. autoblock:: gnuradio.digital.chunks_to_symbols_sf
+.. autoblock:: gnuradio.digital.clock_recovery_mm_cc
+.. autoblock:: gnuradio.digital.clock_recovery_mm_ff
+.. autoblock:: gnuradio.digital.cma_equalizer_cc
+.. autoblock:: gnuradio.digital.constellation_decoder_cb
+.. autoblock:: gnuradio.digital.constellation_receiver_cb
+.. autoblock:: gnuradio.digital.constellation_soft_decoder_cf
+.. autoblock:: gnuradio.digital.correlate_access_code_bb
+.. autoblock:: gnuradio.digital.correlate_access_code_bb_ts
+.. autoblock:: gnuradio.digital.correlate_access_code_ff_ts
+.. autoblock:: gnuradio.digital.correlate_access_code_tag_bb
+.. autoblock:: gnuradio.digital.correlate_and_sync_cc
+.. autoblock:: gnuradio.digital.corr_est_cc
+.. autoblock:: gnuradio.digital.costas_loop_cc
+.. autoblock:: gnuradio.digital.cpmmod_bc
+.. autoblock:: gnuradio.digital.crc32_async_bb
+.. autoblock:: gnuradio.digital.crc32_bb
+.. autoblock:: gnuradio.digital.descrambler_bb
+.. autoblock:: gnuradio.digital.diff_decoder_bb
+.. autoblock:: gnuradio.digital.diff_encoder_bb
+.. autoblock:: gnuradio.digital.diff_phasor_cc
+.. autoblock:: gnuradio.digital.fll_band_edge_cc
+.. autoblock:: gnuradio.digital.framer_sink_1
+.. autoblock:: gnuradio.digital.glfsr_source_b
+.. autoblock:: gnuradio.digital.glfsr_source_f
+.. autoblock:: gnuradio.digital.hdlc_deframer_bp
+.. autoblock:: gnuradio.digital.hdlc_framer_pb
+.. autoblock:: gnuradio.digital.header_payload_demux
+.. autoblock:: gnuradio.digital.kurtotic_equalizer_cc
+.. autoblock:: gnuradio.digital.lms_dd_equalizer_cc
+.. autoblock:: gnuradio.digital.map_bb
+.. autoblock:: gnuradio.digital.mpsk_receiver_cc
+.. autoblock:: gnuradio.digital.mpsk_snr_est_cc
+.. autoblock:: gnuradio.digital.msk_timing_recovery_cc
+.. autoblock:: gnuradio.digital.ofdm_carrier_allocator_cvc
+.. autoblock:: gnuradio.digital.ofdm_chanest_vcvc
+.. autoblock:: gnuradio.digital.ofdm_cyclic_prefixer
+.. autoblock:: gnuradio.digital.ofdm_equalizer_base
+.. autoblock:: gnuradio.digital.ofdm_equalizer_simpledfe
+.. autoblock:: gnuradio.digital.ofdm_equalizer_static
+.. autoblock:: gnuradio.digital.ofdm_frame_acquisition
+.. autoblock:: gnuradio.digital.ofdm_frame_equalizer_vcvc
+.. autoblock:: gnuradio.digital.ofdm_frame_sink
+.. autoblock:: gnuradio.digital.ofdm_insert_preamble
+.. autoblock:: gnuradio.digital.ofdm_mapper_bcv
+.. autoblock:: gnuradio.digital.ofdm_sampler
+.. autoblock:: gnuradio.digital.ofdm_serializer_vcc
+.. autoblock:: gnuradio.digital.ofdm_sync_sc_cfb
+.. autoblock:: gnuradio.digital.packet_header_default
+.. autoblock:: gnuradio.digital.packet_headergenerator_bb
+.. autoblock:: gnuradio.digital.packet_header_ofdm
+.. autoblock:: gnuradio.digital.packet_headerparser_b
+.. autoblock:: gnuradio.digital.packet_sink
+.. autoblock:: gnuradio.digital.pfb_clock_sync_ccf
+.. autoblock:: gnuradio.digital.pfb_clock_sync_fff
+.. autoblock:: gnuradio.digital.pn_correlator_cc
+.. autoblock:: gnuradio.digital.probe_density_b
+.. autoblock:: gnuradio.digital.probe_mpsk_snr_est_c
+.. autoblock:: gnuradio.digital.scrambler_bb
+.. autoblock:: gnuradio.digital.simple_correlator
+.. autoblock:: gnuradio.digital.simple_framer
diff --git a/docs/sphinx/source/dtv.rst b/docs/sphinx/source/dtv.rst
new file mode 100644
index 0000000000..0cf9a50928
--- /dev/null
+++ b/docs/sphinx/source/dtv.rst
@@ -0,0 +1,4 @@
+gnuradio.dtv
+============
+
+.. automodule:: gnuradio.dtv
diff --git a/docs/sphinx/source/dtv_blocks.rst b/docs/sphinx/source/dtv_blocks.rst
new file mode 100644
index 0000000000..d20f0d075d
--- /dev/null
+++ b/docs/sphinx/source/dtv_blocks.rst
@@ -0,0 +1,44 @@
+gnuradio.dtv
+============
+
+.. automodule:: gnuradio.dtv
+
+.. autoblock:: gnuradio.dtv.atsc_deinterleaver
+.. autoblock:: gnuradio.dtv.atsc_depad
+.. autoblock:: gnuradio.dtv.atsc_derandomizer
+.. autoblock:: gnuradio.dtv.atsc_equalizer
+.. autoblock:: gnuradio.dtv.atsc_field_sync_mux
+.. autoblock:: gnuradio.dtv.atsc_fpll
+.. autoblock:: gnuradio.dtv.atsc_fs_checker
+.. autoblock:: gnuradio.dtv.atsc_interleaver
+.. autoblock:: gnuradio.dtv.atsc_pad
+.. autoblock:: gnuradio.dtv.atsc_randomizer
+.. autoblock:: gnuradio.dtv.atsc_rs_decoder
+.. autoblock:: gnuradio.dtv.atsc_rs_encoder
+.. autoblock:: gnuradio.dtv.atsc_sync
+.. autoblock:: gnuradio.dtv.atsc_trellis_encoder
+.. autoblock:: gnuradio.dtv.atsc_viterbi_decoder
+.. autoblock:: gnuradio.dtv.dvb_bbheader_bb
+.. autoblock:: gnuradio.dtv.dvb_bbscrambler_bb
+.. autoblock:: gnuradio.dtv.dvb_bch_bb
+.. autoblock:: gnuradio.dtv.dvb_ldpc_bb
+.. autoblock:: gnuradio.dtv.dvbs2_interleaver_bb
+.. autoblock:: gnuradio.dtv.dvbs2_modulator_bc
+.. autoblock:: gnuradio.dtv.dvbs2_physical_cc
+.. autoblock:: gnuradio.dtv.dvbt2_cellinterleaver_cc
+.. autoblock:: gnuradio.dtv.dvbt2_framemapper_cc
+.. autoblock:: gnuradio.dtv.dvbt2_freqinterleaver_cc
+.. autoblock:: gnuradio.dtv.dvbt2_interleaver_bb
+.. autoblock:: gnuradio.dtv.dvbt2_miso_cc
+.. autoblock:: gnuradio.dtv.dvbt2_modulator_bc
+.. autoblock:: gnuradio.dtv.dvbt2_p1insertion_cc
+.. autoblock:: gnuradio.dtv.dvbt2_paprtr_cc
+.. autoblock:: gnuradio.dtv.dvbt2_pilotgenerator_cc
+.. autoblock:: gnuradio.dtv.dvbt_bit_inner_interleaver
+.. autoblock:: gnuradio.dtv.dvbt_convolutional_interleaver
+.. autoblock:: gnuradio.dtv.dvbt_energy_dispersal
+.. autoblock:: gnuradio.dtv.dvbt_inner_coder
+.. autoblock:: gnuradio.dtv.dvbt_map
+.. autoblock:: gnuradio.dtv.dvbt_reed_solomon_enc
+.. autoblock:: gnuradio.dtv.dvbt_reference_signals
+.. autoblock:: gnuradio.dtv.dvbt_symbol_inner_interleaver
diff --git a/docs/sphinx/source/eng_notation/index.rst b/docs/sphinx/source/eng_notation/index.rst
deleted file mode 100644
index f457754ac2..0000000000
--- a/docs/sphinx/source/eng_notation/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-gnuradio.eng_notation
-=====================
-
-.. automodule:: gnuradio.eng_notation
-
-.. autofunction:: gnuradio.eng_notation.num_to_str
-.. autofunction:: gnuradio.eng_notation.str_to_num
-
diff --git a/docs/sphinx/source/eng_option/index.rst b/docs/sphinx/source/eng_option/index.rst
deleted file mode 100644
index b9119ee698..0000000000
--- a/docs/sphinx/source/eng_option/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.eng_option
-===================
-
-.. automodule:: gnuradio.eng_option
-
-.. autoclass:: gnuradio.eng_option.eng_option
diff --git a/docs/sphinx/source/fcd.rst b/docs/sphinx/source/fcd_blocks.rst
index 126ef9c916..8aed544c97 100644
--- a/docs/sphinx/source/fcd.rst
+++ b/docs/sphinx/source/fcd_blocks.rst
@@ -3,5 +3,4 @@ gnuradio.fcd
.. automodule:: gnuradio.fcd
-.. autoblock:: gnuradio.fcd.fcd_source_c
-
+.. autoblock:: gnuradio.fcd.source_c
diff --git a/docs/sphinx/source/fec.rst b/docs/sphinx/source/fec.rst
index 75de71911b..c8990c45ee 100644
--- a/docs/sphinx/source/fec.rst
+++ b/docs/sphinx/source/fec.rst
@@ -1,8 +1,31 @@
gnuradio.fec
============
-.. automodule:: gnuradio.fec
-
-.. autoblock:: gnuradio.fec.decode_ccsds_27_fb
-.. autoblock:: gnuradio.fec.encode_ccsds_27_bb
+.. autoclass:: gnuradio.fec.cc_decoder
+.. autoclass:: gnuradio.fec.cc_encoder
+.. autoclass:: gnuradio.fec.ccsds_encoder
+.. autoclass:: gnuradio.fec.dummy_decoder
+.. autoclass:: gnuradio.fec.dummy_encoder
+.. autoclass:: gnuradio.fec.ldpc_decoder
+.. autoclass:: gnuradio.fec.ldpc_encoder
+.. autoclass:: gnuradio.fec.repetition_decoder
+.. autoclass:: gnuradio.fec.repetition_encoder
+.. autoclass:: gnuradio.fec.tpc_decoder
+.. autoclass:: gnuradio.fec.tpc_encoder
+.. autoclass:: gnuradio.fec.bercurve_generator
+.. autofunction:: gnuradio.fec.bitreverse
+.. autofunction:: gnuradio.fec.bitflip
+.. autofunction:: gnuradio.fec.read_bitlist
+.. autofunction:: gnuradio.fec.read_big_bitlist
+.. autofunction:: gnuradio.fec.generate_symmetries
+.. autoclass:: gnuradio.fec.capillary_threaded_decoder
+.. autoclass:: gnuradio.fec.capillary_threaded_encoder
+.. autoclass:: gnuradio.fec.extended_async_encoder
+.. autoclass:: gnuradio.fec.extended_decoder
+.. autoclass:: gnuradio.fec.extended_encoder
+.. autoclass:: gnuradio.fec.extended_tagged_decoder
+.. autoclass:: gnuradio.fec.extended_tagged_encoder
+.. autoclass:: gnuradio.fec.fec_test
+.. autoclass:: gnuradio.fec.threaded_decoder
+.. autoclass:: gnuradio.fec.threaded_encoder
diff --git a/docs/sphinx/source/fec_blocks.rst b/docs/sphinx/source/fec_blocks.rst
new file mode 100644
index 0000000000..6e92a86a41
--- /dev/null
+++ b/docs/sphinx/source/fec_blocks.rst
@@ -0,0 +1,20 @@
+gnuradio.fec
+============
+
+.. automodule:: gnuradio.fec
+
+.. autoblock:: gnuradio.fec.async_decoder
+.. autoblock:: gnuradio.fec.async_encoder
+.. autoblock:: gnuradio.fec.ber_bf
+.. autoblock:: gnuradio.fec.conv_bit_corr_bb
+.. autoblock:: gnuradio.fec.decode_ccsds_27_fb
+.. autoblock:: gnuradio.fec.decoder
+.. autoblock:: gnuradio.fec.depuncture_bb
+.. autoblock:: gnuradio.fec.encode_ccsds_27_bb
+.. autoblock:: gnuradio.fec.encoder
+.. autoblock:: gnuradio.fec.generic_decoder
+.. autoblock:: gnuradio.fec.generic_encoder
+.. autoblock:: gnuradio.fec.puncture_bb
+.. autoblock:: gnuradio.fec.puncture_ff
+.. autoblock:: gnuradio.fec.tagged_decoder
+.. autoblock:: gnuradio.fec.tagged_encoder
diff --git a/docs/sphinx/source/fft.rst b/docs/sphinx/source/fft.rst
index 2db3d1f5cb..563a5c898f 100644
--- a/docs/sphinx/source/fft.rst
+++ b/docs/sphinx/source/fft.rst
@@ -1,31 +1,4 @@
gnuradio.fft
============
-.. automodule:: gnuradio.fft
-
-.. autoblock:: gnuradio.fft.fft_vcc
-.. autoblock:: gnuradio.fft.fft_vfc
-.. autoblock:: gnuradio.fft.goertzel_fc
-
-gnuradio.fft.window
-===================
-
-.. automodule:: gnuradio.fft.window
-
-.. autofunction:: gnuradio.fft.window.bartlett
-.. autofunction:: gnuradio.fft.window.blackman2
-.. autofunction:: gnuradio.fft.window.blackman3
-.. autofunction:: gnuradio.fft.window.blackman4
-.. autofunction:: gnuradio.fft.window.blackmanharris
-.. autofunction:: gnuradio.fft.window.coswindow
-.. autofunction:: gnuradio.fft.window.exponential
-.. autofunction:: gnuradio.fft.window.flattop
-.. autofunction:: gnuradio.fft.window.hamming
-.. autofunction:: gnuradio.fft.window.hanning
-.. autofunction:: gnuradio.fft.window.kaiser
-.. autofunction:: gnuradio.fft.window.nuttall
-.. autofunction:: gnuradio.fft.window.nuttall_cfd
-.. autofunction:: gnuradio.fft.window.parzen
-.. autofunction:: gnuradio.fft.window.rectangular
-.. autofunction:: gnuradio.fft.window.riemann
-.. autofunction:: gnuradio.fft.window.welch
+.. autoclass:: gnuradio.fft.window
diff --git a/docs/sphinx/source/fft_blocks.rst b/docs/sphinx/source/fft_blocks.rst
new file mode 100644
index 0000000000..3b226a20ba
--- /dev/null
+++ b/docs/sphinx/source/fft_blocks.rst
@@ -0,0 +1,9 @@
+gnuradio.fft
+============
+
+.. automodule:: gnuradio.fft
+
+.. autoblock:: gnuradio.fft.ctrlport_probe_psd
+.. autoblock:: gnuradio.fft.fft_vcc
+.. autoblock:: gnuradio.fft.fft_vfc
+.. autoblock:: gnuradio.fft.goertzel_fc
diff --git a/docs/sphinx/source/filter.rst b/docs/sphinx/source/filter.rst
new file mode 100644
index 0000000000..d9f2d9207a
--- /dev/null
+++ b/docs/sphinx/source/filter.rst
@@ -0,0 +1,29 @@
+gnuradio.filter
+===============
+
+.. autoclass:: gnuradio.filter.filterbank.analysis_filterbank
+.. autoclass:: gnuradio.filter.filterbank.synthesis_filterbank
+.. autoclass:: gnuradio.filter.firdes
+.. autofunction:: gnuradio.filter.pm_remez
+.. autoclass:: gnuradio.filter.synthesis_filterbank
+.. autoclass:: gnuradio.filter.analysis_filterbank
+.. autoclass:: gnuradio.filter.freq_xlating_fft_filter_ccc
+.. autofunction:: gnuradio.filter.optfir.low_pass
+.. autofunction:: gnuradio.filter.optfir.band_pass
+.. autofunction:: gnuradio.filter.optfir.complex_band_pass
+.. autofunction:: gnuradio.filter.optfir.band_reject
+.. autofunction:: gnuradio.filter.optfir.stopband_atten_to_dev
+.. autofunction:: gnuradio.filter.optfir.passband_ripple_to_dev
+.. autofunction:: gnuradio.filter.optfir.remezord
+.. autofunction:: gnuradio.filter.optfir.lporder
+.. autofunction:: gnuradio.filter.optfir.bporder
+.. autoclass:: gnuradio.filter.pfb.channelizer_ccf
+.. autoclass:: gnuradio.filter.pfb.interpolator_ccf
+.. autoclass:: gnuradio.filter.pfb.decimator_ccf
+.. autoclass:: gnuradio.filter.pfb.arb_resampler_ccf
+.. autoclass:: gnuradio.filter.pfb.arb_resampler_fff
+.. autoclass:: gnuradio.filter.pfb.arb_resampler_ccc
+.. autoclass:: gnuradio.filter.pfb.channelizer_hier_ccf
+.. autoclass:: gnuradio.filter.rational_resampler_fff
+.. autoclass:: gnuradio.filter.rational_resampler_ccf
+.. autoclass:: gnuradio.filter.rational_resampler_ccc
diff --git a/docs/sphinx/source/filter/channelizers_blk.rst b/docs/sphinx/source/filter/channelizers_blk.rst
deleted file mode 100644
index 920be42882..0000000000
--- a/docs/sphinx/source/filter/channelizers_blk.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-gnuradio.filter: Channelizers
-=============================
-
-.. autoblock:: gnuradio.filter.pfb_channelizer_ccf
-.. autoblock:: gnuradio.filter.pfb_decimator_ccf
-.. autoblock:: gnuradio.filter.pfb_interpolator_ccf
-.. autoblock:: gnuradio.filter.pfb_synthesizer_ccf \ No newline at end of file
diff --git a/docs/sphinx/source/filter/filter_blk.rst b/docs/sphinx/source/filter/filter_blk.rst
deleted file mode 100644
index 5c85c6d00a..0000000000
--- a/docs/sphinx/source/filter/filter_blk.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-gnuradio.filter: Filters
-========================
-
-.. autoblock:: gnuradio.filter.adaptive_fir_ccc
-.. autoblock:: gnuradio.filter.adaptive_fir_ccf
-.. autoblock:: gnuradio.filter.dc_blocker_cc
-.. autoblock:: gnuradio.filter.dc_blocker_ff
-.. autoblock:: gnuradio.filter.fft_filter_fff
-.. autoblock:: gnuradio.filter.fft_filter_ccc
-.. autoblock:: gnuradio.filter.filter_delay_fc
-.. autoblock:: gnuradio.filter.hilbert_fc
-.. autoblock:: gnuradio.filter.iir_filter_ffd
-.. autopyblock:: gnuradio.filter.analysis_filterbank
-.. autopyblock:: gnuradio.filter.synthesis_filterbank
-.. autoblock:: gnuradio.filter.single_pole_iir_filter_cc
-.. autoblock:: gnuradio.filter.single_pole_iir_filter_ff
diff --git a/docs/sphinx/source/filter/filter_design.rst b/docs/sphinx/source/filter/filter_design.rst
deleted file mode 100644
index 4a78156c5d..0000000000
--- a/docs/sphinx/source/filter/filter_design.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-gnuradio.filter: Digital Filter Design
-======================================
-
-.. autoclass:: gnuradio.filter.firdes
diff --git a/docs/sphinx/source/filter/index.rst b/docs/sphinx/source/filter/index.rst
deleted file mode 100644
index 2f1be277ad..0000000000
--- a/docs/sphinx/source/filter/index.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-gnuradio.filter
-===============
-
-.. automodule:: gnuradio.filter
-
-Channelizers
-------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.filter.pfb_channelizer_ccf
- gnuradio.filter.pfb_decimator_ccf
- gnuradio.filter.pfb_interpolator_ccf
- gnuradio.filter.pfb_synthesizer_ccf
-
-Filters
--------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.filter.adaptive_fir_ccc
- gnuradio.filter.adaptive_fir_ccf
- gnuradio.filter.dc_blocker_cc
- gnuradio.filter.dc_blocker_ff
- gnuradio.filter.fft_filter_fff
- gnuradio.filter.fft_filter_ccc
- gnuradio.filter.filter_delay_fc
- gnuradio.filter.hilbert_fc
- gnuradio.filter.iir_filter_ffd
- gnuradio.filter.analysis_filterbank
- gnuradio.filter.synthesis_filterbank
- gnuradio.filter.single_pole_iir_filter_cc
- gnuradio.filter.single_pole_iir_filter_ff
-
-Resamplers
-----------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.filter.fractional_interpolator_cc
- gnuradio.filter.fractional_interpolator_ff
- gnuradio.filter.fractional_resampler_cc
- gnuradio.filter.fractional_resampler_ff
- gnuradio.filter.pfb_arb_resampler_ccf
- gnuradio.filter.pfb_arb_resampler_fff
-
-Digital Filter Design
----------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.filter.firdes
diff --git a/docs/sphinx/source/filter/resamplers_blk.rst b/docs/sphinx/source/filter/resamplers_blk.rst
deleted file mode 100644
index 348888659d..0000000000
--- a/docs/sphinx/source/filter/resamplers_blk.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-gnuradio.filter: Resamplers
-===========================
-
-.. autoblock:: gnuradio.filter.fractional_interpolator_cc
-.. autoblock:: gnuradio.filter.fractional_interpolator_ff
-.. autoblock:: gnuradio.filter.fractional_resampler_cc
-.. autoblock:: gnuradio.filter.fractional_resampler_ff
-.. autoblock:: gnuradio.filter.pfb_arb_resampler_ccf
-.. autoblock:: gnuradio.filter.pfb_arb_resampler_fff \ No newline at end of file
diff --git a/docs/sphinx/source/filter_blocks.rst b/docs/sphinx/source/filter_blocks.rst
new file mode 100644
index 0000000000..1ad2705e7e
--- /dev/null
+++ b/docs/sphinx/source/filter_blocks.rst
@@ -0,0 +1,55 @@
+gnuradio.filters
+================
+
+.. automodule:: gnuradio.filter
+
+.. autoblock:: gnuradio.filter.dc_blocker_cc
+.. autoblock:: gnuradio.filter.dc_blocker_ff
+.. autoblock:: gnuradio.filter.fft_filter_ccc
+.. autoblock:: gnuradio.filter.fft_filter_ccf
+.. autoblock:: gnuradio.filter.fft_filter_fff
+.. autoblock:: gnuradio.filter.filter_delay_fc
+.. autoblock:: gnuradio.filter.filterbank_vcvcf
+.. autoblock:: gnuradio.filter.fir_filter_ccc
+.. autoblock:: gnuradio.filter.fir_filter_ccf
+.. autoblock:: gnuradio.filter.fir_filter_fcc
+.. autoblock:: gnuradio.filter.fir_filter_fff
+.. autoblock:: gnuradio.filter.fir_filter_fsf
+.. autoblock:: gnuradio.filter.fir_filter_scc
+.. autoblock:: gnuradio.filter.fractional_interpolator_cc
+.. autoblock:: gnuradio.filter.fractional_interpolator_ff
+.. autoblock:: gnuradio.filter.fractional_resampler_cc
+.. autoblock:: gnuradio.filter.fractional_resampler_ff
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_ccc
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_ccf
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_fcc
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_fcf
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_scc
+.. autoblock:: gnuradio.filter.freq_xlating_fir_filter_scf
+.. autoblock:: gnuradio.filter.hilbert_fc
+.. autoblock:: gnuradio.filter.iir_filter_ccc
+.. autoblock:: gnuradio.filter.iir_filter_ccd
+.. autoblock:: gnuradio.filter.iir_filter_ccf
+.. autoblock:: gnuradio.filter.iir_filter_ccz
+.. autoblock:: gnuradio.filter.iir_filter_ffd
+.. autoblock:: gnuradio.filter.interp_fir_filter_ccc
+.. autoblock:: gnuradio.filter.interp_fir_filter_ccf
+.. autoblock:: gnuradio.filter.interp_fir_filter_fcc
+.. autoblock:: gnuradio.filter.interp_fir_filter_fff
+.. autoblock:: gnuradio.filter.interp_fir_filter_fsf
+.. autoblock:: gnuradio.filter.interp_fir_filter_scc
+.. autoblock:: gnuradio.filter.pfb_arb_resampler_ccc
+.. autoblock:: gnuradio.filter.pfb_arb_resampler_ccf
+.. autoblock:: gnuradio.filter.pfb_arb_resampler_fff
+.. autoblock:: gnuradio.filter.pfb_channelizer_ccf
+.. autoblock:: gnuradio.filter.pfb_decimator_ccf
+.. autoblock:: gnuradio.filter.pfb_interpolator_ccf
+.. autoblock:: gnuradio.filter.pfb_synthesizer_ccf
+.. autoblock:: gnuradio.filter.rational_resampler_base_ccc
+.. autoblock:: gnuradio.filter.rational_resampler_base_ccf
+.. autoblock:: gnuradio.filter.rational_resampler_base_fcc
+.. autoblock:: gnuradio.filter.rational_resampler_base_fff
+.. autoblock:: gnuradio.filter.rational_resampler_base_fsf
+.. autoblock:: gnuradio.filter.rational_resampler_base_scc
+.. autoblock:: gnuradio.filter.single_pole_iir_filter_cc
+.. autoblock:: gnuradio.filter.single_pole_iir_filter_ff
diff --git a/docs/sphinx/source/gr/contents.rst b/docs/sphinx/source/gr/contents.rst
deleted file mode 100644
index a999a73ea8..0000000000
--- a/docs/sphinx/source/gr/contents.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-gnuradio.gr
-===========
-
-.. autoclass:: gnuradio.gr.top_block
-.. autoclass:: gnuradio.gr.hier_block2
-.. autofunction:: gnuradio.gr.block_detail
-.. autofunction:: gnuradio.gr.buffer
-.. autofunction:: gnuradio.gr.dispatcher
-.. autofunction:: gnuradio.gr.single_threaded_scheduler
-.. autofunction:: gnuradio.gr.prefs
-.. autofunction:: gnuradio.gr.message
-.. autofunction:: gnuradio.gr.msg_queue
-.. autofunction:: gnuradio.gr.enable_realtime_scheduling
-.. autofunction:: gnuradio.gr.feval_dd
-.. autofunction:: gnuradio.gr.feval_cc
-.. autofunction:: gnuradio.gr.feval_ll
-.. autofunction:: gnuradio.gr.feval
-
diff --git a/docs/sphinx/source/gr/index.rst b/docs/sphinx/source/gr/index.rst
deleted file mode 100644
index b3e341f47b..0000000000
--- a/docs/sphinx/source/gr/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-gnuradio.gr
-===========
-
-.. automodule:: gnuradio.gr
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.gr.top_block
- gnuradio.gr.hier_block2
- gnuradio.gr.block_detail
- gnuradio.gr.buffer
- gnuradio.gr.dispatcher
- gnuradio.gr.single_threaded_scheduler
- gnuradio.gr.prefs
- gnuradio.gr.message
- gnuradio.gr.msg_queue
- gnuradio.gr.enable_realtime_scheduling
- gnuradio.gr.feval_dd
- gnuradio.gr.feval_cc
- gnuradio.gr.feval_ll
- gnuradio.gr.feval
-
diff --git a/docs/sphinx/source/gr_unittest/index.rst b/docs/sphinx/source/gr_unittest/index.rst
deleted file mode 100644
index 2169a7da41..0000000000
--- a/docs/sphinx/source/gr_unittest/index.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-gnuradio.gr_unittest
-====================
-
-.. automodule:: gnuradio.gr_unittest
-
-.. autoclass:: gnuradio.gr_unittest.TestCase
-.. autofunction:: gnuradio.gr_unittest.run
diff --git a/docs/sphinx/source/index.rst b/docs/sphinx/source/index.rst
index eef479484d..7bba2f8e32 100644
--- a/docs/sphinx/source/index.rst
+++ b/docs/sphinx/source/index.rst
@@ -1,162 +1,1475 @@
gnuradio
========
+.. toctree::
+ :hidden:
+
+ runtime <runtime>
+ pmt <pmt>
+ blocks_audio <audio_blocks>
+ blocks_analog <analog_blocks>
+ blocks_blocks <blocks_blocks>
+ blocks_channels <channels_blocks>
+ blocks_comedi <comedi_blocks>
+ blocks_digital <digital_blocks>
+ blocks_dtv <dtv_blocks>
+ blocks_fcd <fcd_blocks>
+ blocks_fec <fec_blocks>
+ blocks_fft <fft_blocks>
+ blocks_filter <filter_blocks>
+ blocks_noaa <noaa_blocks>
+ blocks_pager <pager_blocks>
+ blocks_qtgui <qtgui_blocks>
+ blocks_trellis <trellis_blocks>
+ blocks_uhd <uhd_blocks>
+ blocks_video_sdl <video_sdl_blocks>
+ blocks_vocoder <vocoder_blocks>
+ blocks_wavelet <wavelet_blocks>
+ blocks_wxgui <wxgui_blocks>
+ blocks_zeromq <zeromq_blocks>
+ analog <analog>
+ channels <channels>
+ digital <digital>
+ dtv <dtv>
+ fec <fec>
+ fft <fft>
+ filter <filter>
+ trellis <trellis>
+ uhd <uhd>
+ vocoder <vocoder>
+ wxgui <wxgui>
+
.. automodule:: gnuradio
+.. automodule:: pmt
+
+Runtime
+-------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.gr.top_block
+ gnuradio.gr.basic_block
+ gnuradio.gr.block
+ gnuradio.gr.sync_block
+ gnuradio.gr.sync_decimator
+ gnuradio.gr.sync_interpolator
+ gnuradio.gr.tagged_stream_block
+ gnuradio.gr.hier_block2
+ gnuradio.gr.high_res_timer_now
+ gnuradio.gr.high_res_timer_now_perfmon
+ gnuradio.gr.high_res_timer_epoch
+ gnuradio.gr.high_res_timer_tps
+ gnuradio.gr.io_signature
+ gnuradio.gr.io_signature2
+ gnuradio.gr.io_signature3
+ gnuradio.gr.io_signaturev
+ gnuradio.gr.prefix
+ gnuradio.gr.prefsdir
+ gnuradio.gr.sysconfdir
+ gnuradio.gr.version
+ gnuradio.gr.major_version
+ gnuradio.gr.api_version
+ gnuradio.gr.minor_version
+ gnuradio.gr.prefs
+ gnuradio.gr.logger
+ gnuradio.gr.logger_config
+ gnuradio.gr.logger_get_names
+ gnuradio.gr.logger_reset_config
+ gnuradio.gr.tag_t
+ gnuradio.gr.tag_t_offset_compare
+ gnuradio.gr.tag_t_offset_compare_key
+ gnuradio.gr.tag_to_pmt
+ gnuradio.gr.tag_to_python
+ gnuradio.gr.tag_utils
+ gnuradio.gr.sizeof_gr_complex
+ gnuradio.gr.sizeof_float
+ gnuradio.gr.sizeof_int
+ gnuradio.gr.sizeof_short
+ gnuradio.gr.sizeof_char
+ gnuradio.gr.sizeof_double
+ gnuradio.gr.branchless_binary_slicer
+ gnuradio.gr.binary_slicer
+ gnuradio.gr.branchless_clip
+ gnuradio.gr.clip
+ gnuradio.gr.branchless_quad_0deg_slicer
+ gnuradio.gr.quad_0deg_slicer
+ gnuradio.gr.branchless_quad_45deg_slicer
+ gnuradio.gr.quad_45deg_slicer
+ gnuradio.gr.feval
+ gnuradio.gr.feval_cc
+ gnuradio.gr.feval_dd
+ gnuradio.gr.feval_ll
+ gnuradio.gr.feval_p
+ gnuradio.gr.gateway
+
-Core Framework
+PMT
+---
+
+.. autosummary::
+ :nosignatures:
+
+ pmt.acons
+ pmt.any_ref
+ pmt.any_set
+ pmt.assoc
+ pmt.assq
+ pmt.assv
+ pmt.blob_data
+ pmt.blob_length
+ pmt.c32vector_elements
+ pmt.c32vector_ref
+ pmt.c32vector_set
+ pmt.c64vector_elements
+ pmt.c64vector_ref
+ pmt.c64vector_set
+ pmt.caar
+ pmt.cadddr
+ pmt.caddr
+ pmt.cadr
+ pmt.car
+ pmt.cdar
+ pmt.cddr
+ pmt.cdr
+ pmt.cons
+ pmt.deserialize
+ pmt.deserialize_str
+ pmt.dict_add
+ pmt.dict_delete
+ pmt.dict_has_key
+ pmt.dict_items
+ pmt.dict_keys
+ pmt.dict_ref
+ pmt.dict_update
+ pmt.dict_values
+ pmt.dump_sizeof
+ pmt.eq
+ pmt.equal
+ pmt.eqv
+ pmt.f32vector_elements
+ pmt.f32vector_ref
+ pmt.f32vector_set
+ pmt.f64vector_elements
+ pmt.f64vector_ref
+ pmt.f64vector_set
+ pmt.from_bool
+ pmt.from_complex
+ pmt.from_double
+ pmt.from_float
+ pmt.from_long
+ pmt.from_uint64
+ pmt.get_PMT_EOF
+ pmt.get_PMT_F
+ pmt.get_PMT_NIL
+ pmt.get_PMT_T
+ pmt.init_c32vector
+ pmt.init_c64vector
+ pmt.init_f32vector
+ pmt.init_f64vector
+ pmt.init_s16vector
+ pmt.init_s32vector
+ pmt.init_s8vector
+ pmt.init_u16vector
+ pmt.init_u32vector
+ pmt.init_u8vector
+ pmt.intern
+ pmt.is_any
+ pmt.is_blob
+ pmt.is_bool
+ pmt.is_c32vector
+ pmt.is_c64vector
+ pmt.is_complex
+ pmt.is_dict
+ pmt.is_eof_object
+ pmt.is_f32vector
+ pmt.is_f64vector
+ pmt.is_false
+ pmt.is_integer
+ pmt.is_msg_accepter
+ pmt.is_null
+ pmt.is_number
+ pmt.is_pair
+ pmt.is_real
+ pmt.is_s16vector
+ pmt.is_s32vector
+ pmt.is_s64vector
+ pmt.is_s8vector
+ pmt.is_symbol
+ pmt.is_true
+ pmt.is_tuple
+ pmt.is_u16vector
+ pmt.is_u32vector
+ pmt.is_u64vector
+ pmt.is_u8vector
+ pmt.is_uint64
+ pmt.is_uniform_vector
+ pmt.is_vector
+ pmt.length
+ pmt.list1
+ pmt.list2
+ pmt.list3
+ pmt.list4
+ pmt.list5
+ pmt.list6
+ pmt.list_add
+ pmt.list_has
+ pmt.list_rm
+ pmt.make_any
+ pmt.make_blob
+ pmt.make_c32vector
+ pmt.make_c64vector
+ pmt.make_dict
+ pmt.make_f32vector
+ pmt.make_f64vector
+ pmt.make_msg_accepter
+ pmt.make_rectangular
+ pmt.make_s16vector
+ pmt.make_s32vector
+ pmt.make_s64vector
+ pmt.make_s8vector
+ pmt.make_tuple
+ pmt.make_u16vector
+ pmt.make_u32vector
+ pmt.make_u64vector
+ pmt.make_u8vector
+ pmt.make_vector
+ pmt.map
+ pmt.member
+ pmt.memq
+ pmt.memv
+ pmt.msg_accepter_ref
+ pmt.nth
+ pmt.nthcdr
+ pmt.pmt_vector_cdouble
+ pmt.pmt_vector_cfloat
+ pmt.pmt_vector_double
+ pmt.pmt_vector_float
+ pmt.pmt_vector_int16
+ pmt.pmt_vector_int32
+ pmt.pmt_vector_int8
+ pmt.pmt_vector_uint16
+ pmt.pmt_vector_uint32
+ pmt.pmt_vector_uint8
+ pmt.read
+ pmt.reverse
+ pmt.reverse_x
+ pmt.s16vector_elements
+ pmt.s16vector_ref
+ pmt.s16vector_set
+ pmt.s32vector_elements
+ pmt.s32vector_ref
+ pmt.s32vector_set
+ pmt.s64vector_ref
+ pmt.s64vector_set
+ pmt.s8vector_elements
+ pmt.s8vector_ref
+ pmt.s8vector_set
+ pmt.serialize
+ pmt.serialize_str
+ pmt.set_car
+ pmt.set_cdr
+ pmt.string_to_symbol
+ pmt.subsetp
+ pmt.symbol_to_string
+ pmt.to_bool
+ pmt.to_complex
+ pmt.to_double
+ pmt.to_float
+ pmt.to_long
+ pmt.to_pmt
+ pmt.to_python
+ pmt.to_tuple
+ pmt.to_uint64
+ pmt.tuple_ref
+ pmt.u16vector_elements
+ pmt.u16vector_ref
+ pmt.u16vector_set
+ pmt.u32vector_elements
+ pmt.u32vector_ref
+ pmt.u32vector_set
+ pmt.u64vector_ref
+ pmt.u64vector_set
+ pmt.u8vector_elements
+ pmt.u8vector_ref
+ pmt.u8vector_set
+ pmt.uniform_vector_elements
+ pmt.uniform_vector_itemsize
+ pmt.vector_fill
+ pmt.vector_ref
+ pmt.vector_set
+ pmt.write
+ pmt.write_string
+
+
+Audio Signals
+-------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.audio.sink
+ gnuradio.audio.source
+ gnuradio.vocoder.alaw_decode_bs
+ gnuradio.vocoder.alaw_encode_sb
+ gnuradio.vocoder.codec2_decode_ps
+ gnuradio.vocoder.codec2_encode_sp
+ gnuradio.vocoder.cvsd_decode_bs
+ gnuradio.vocoder.cvsd_encode_sb
+ gnuradio.vocoder.g721_decode_bs
+ gnuradio.vocoder.g721_encode_sb
+ gnuradio.vocoder.g723_24_decode_bs
+ gnuradio.vocoder.g723_24_encode_sb
+ gnuradio.vocoder.g723_40_decode_bs
+ gnuradio.vocoder.g723_40_encode_sb
+ gnuradio.vocoder.gsm_fr_decode_ps
+ gnuradio.vocoder.gsm_fr_encode_sp
+ gnuradio.vocoder.ulaw_decode_bs
+ gnuradio.vocoder.ulaw_encode_sb
+ gnuradio.blocks.wavfile_sink
+ gnuradio.blocks.wavfile_source
+
+Boolean Operators
+-----------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.and_bb
+ gnuradio.blocks.and_const_bb
+ gnuradio.blocks.and_const_ii
+ gnuradio.blocks.and_const_ss
+ gnuradio.blocks.and_ii
+ gnuradio.blocks.and_ss
+ gnuradio.blocks.not_bb
+ gnuradio.blocks.not_ii
+ gnuradio.blocks.not_ss
+ gnuradio.blocks.or_bb
+ gnuradio.blocks.or_ii
+ gnuradio.blocks.or_ss
+ gnuradio.blocks.xor_bb
+ gnuradio.blocks.xor_ii
+ gnuradio.blocks.xor_ss
+
+Byte Operators
--------------
.. autosummary::
:nosignatures:
- gnuradio.gr
- pmt
- gnuradio.blocks
- gnuradio.analog
- gnuradio.digital
- gnuradio.audio
- gnuradio.channels
- gnuradio.comedi
- gnuradio.fec
- gnuradio.filter
- gnuradio.trellis
- gnuradio.wavelet
- gnuradio.fft
- gnuradio.gr_unittest
- gnuradio.qtgui
- gnuradio.wxgui
+ gnuradio.blocks.packed_to_unpacked_bb
+ gnuradio.blocks.packed_to_unpacked_ii
+ gnuradio.blocks.packed_to_unpacked_ss
+ gnuradio.blocks.unpacked_to_packed_bb
+ gnuradio.blocks.unpacked_to_packed_ii
+ gnuradio.blocks.unpacked_to_packed_ss
+ gnuradio.blocks.pack_k_bits_bb
+ gnuradio.blocks.repack_bits_bb
+ gnuradio.blocks.unpack_k_bits_bb
-.. toctree::
- :hidden:
+Channelizers
+------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.filter.freq_xlating_fir_filter_ccc
+ gnuradio.filter.freq_xlating_fir_filter_ccf
+ gnuradio.filter.freq_xlating_fir_filter_fcc
+ gnuradio.filter.freq_xlating_fir_filter_fcf
+ gnuradio.filter.freq_xlating_fir_filter_scc
+ gnuradio.filter.freq_xlating_fir_filter_scf
+ gnuradio.filter.pfb_channelizer_ccf
+ gnuradio.filter.pfb_decimator_ccf
+ gnuradio.filter.pfb_interpolator_ccf
+ gnuradio.filter.pfb_synthesizer_ccf
+
+Channel Models
+--------------
+
+.. autosummary::
+ :nosignatures:
- gnuradio.gr <gr/index>
- pmt <pmt/index>
- gnuradio.blocks <blocks/index>
- gnuradio.analog <analog/index>
- gnuradio.digital <digital/index>
- gnuradio.audio <audio/index>
- gnuradio.channels <channels>
- gnuradio.comedi <comedi>
- gnuradio.fec <fec>
- gnuradio.filter <filter/index>
- gnuradio.gr_unittest <gr_unittest/index>
- gnuradio.trellis <trellis/index>
- gnuradio.wavelet <wavelet>
- gnuradio.fft <fft>
- gnuradio.qtgui <qtgui/index>
- gnuradio.wxgui <wxgui/index>
-
-Hardware Interfaces
+ gnuradio.channels.channel_model
+ gnuradio.channels.channel_model2
+ gnuradio.channels.fading_model
+ gnuradio.channels.selective_fading_model
+ gnuradio.channels.dynamic_channel_model
+ gnuradio.channels.cfo_model
+ gnuradio.channels.sro_model
+
+
+Coding Blocks
+-------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.additive_scrambler_bb
+ gnuradio.digital.descrambler_bb
+ gnuradio.digital.scrambler_bb
+
+
+ControlPort Blocks
+------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.ctrlport_probe2_b
+ gnuradio.blocks.ctrlport_probe2_c
+ gnuradio.blocks.ctrlport_probe2_f
+ gnuradio.blocks.ctrlport_probe2_i
+ gnuradio.blocks.ctrlport_probe2_s
+ gnuradio.blocks.ctrlport_probe_c
+ gnuradio.fft.ctrlport_probe_psd
+
+
+Debug Blocks
+------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.message_debug
+ gnuradio.blocks.message_strobe
+ gnuradio.blocks.message_strobe_random
+ gnuradio.blocks.tag_debug
+ gnuradio.blocks.tags_strobe
+ gnuradio.blocks.vector_sink_b
+ gnuradio.blocks.vector_sink_c
+ gnuradio.blocks.vector_sink_f
+ gnuradio.blocks.vector_sink_i
+ gnuradio.blocks.vector_sink_s
+ gnuradio.blocks.random_pdu
+
+
+DTV Blocks
+------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.dtv.atsc_deinterleaver
+ gnuradio.dtv.atsc_depad
+ gnuradio.dtv.atsc_derandomizer
+ gnuradio.dtv.atsc_equalizer
+ gnuradio.dtv.atsc_field_sync_mux
+ gnuradio.dtv.atsc_fpll
+ gnuradio.dtv.atsc_fs_checker
+ gnuradio.dtv.atsc_interleaver
+ gnuradio.dtv.atsc_pad
+ gnuradio.dtv.atsc_randomizer
+ gnuradio.dtv.atsc_rs_decoder
+ gnuradio.dtv.atsc_rs_encoder
+ gnuradio.dtv.atsc_sync
+ gnuradio.dtv.atsc_trellis_encoder
+ gnuradio.dtv.atsc_viterbi_decoder
+ gnuradio.dtv.dvb_bbheader_bb
+ gnuradio.dtv.dvb_bbscrambler_bb
+ gnuradio.dtv.dvb_bch_bb
+ gnuradio.dtv.dvb_ldpc_bb
+ gnuradio.dtv.dvbs2_interleaver_bb
+ gnuradio.dtv.dvbs2_modulator_bc
+ gnuradio.dtv.dvbs2_physical_cc
+ gnuradio.dtv.dvbt2_cellinterleaver_cc
+ gnuradio.dtv.dvbt2_framemapper_cc
+ gnuradio.dtv.dvbt2_freqinterleaver_cc
+ gnuradio.dtv.dvbt2_interleaver_bb
+ gnuradio.dtv.dvbt2_miso_cc
+ gnuradio.dtv.dvbt2_modulator_bc
+ gnuradio.dtv.dvbt2_p1insertion_cc
+ gnuradio.dtv.dvbt2_paprtr_cc
+ gnuradio.dtv.dvbt2_pilotgenerator_cc
+ gnuradio.dtv.dvbt_bit_inner_interleaver
+ gnuradio.dtv.dvbt_convolutional_interleaver
+ gnuradio.dtv.dvbt_energy_dispersal
+ gnuradio.dtv.dvbt_inner_coder
+ gnuradio.dtv.dvbt_map
+ gnuradio.dtv.dvbt_reed_solomon_enc
+ gnuradio.dtv.dvbt_reference_signals
+ gnuradio.dtv.dvbt_symbol_inner_interleaver
+
+
+Equalizer Blocks
+----------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.cma_equalizer_cc
+ gnuradio.digital.lms_dd_equalizer_cc
+ gnuradio.digital.kurtotic_equalizer_cc
+
+Error Coding Blocks
-------------------
.. autosummary::
:nosignatures:
- gnuradio.uhd
- gnuradio.fcd
+ gnuradio.fec.async_decoder
+ gnuradio.fec.async_encoder
+ gnuradio.fec.ber_bf
+ gnuradio.fec.conv_bit_corr_bb
+ gnuradio.fec.decode_ccsds_27_fb
+ gnuradio.fec.decoder
+ gnuradio.fec.depuncture_bb
+ gnuradio.fec.encode_ccsds_27_bb
+ gnuradio.fec.encoder
+ gnuradio.fec.generic_decoder
+ gnuradio.fec.generic_encoder
+ gnuradio.fec.puncture_bb
+ gnuradio.fec.puncture_ff
+ gnuradio.fec.tagged_decoder
+ gnuradio.fec.tagged_encoder
-.. toctree::
- :hidden:
- gnuradio.uhd <uhd>
- gnuradio.fcd <fcd>
+FCD Blocks
+----------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.fcd.source_c
-Utilities
----------
+
+File Operator Blocks
+--------------------
.. autosummary::
:nosignatures:
- gnuradio.plot_data
- gnuradio.eng_notation
- gnuradio.eng_option
+ gnuradio.blocks.file_descriptor_sink
+ gnuradio.blocks.file_descriptor_source
+ gnuradio.blocks.file_meta_sink
+ gnuradio.blocks.file_meta_source
+ gnuradio.blocks.file_sink
+ gnuradio.blocks.file_source
+ gnuradio.blocks.tagged_file_sink
+
+
+Filter Blocks
+-------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.filter.dc_blocker_cc
+ gnuradio.filter.dc_blocker_ff
+ gnuradio.filter.fft_filter_ccc
+ gnuradio.filter.fft_filter_ccf
+ gnuradio.filter.fft_filter_fff
+ gnuradio.filter.filter_delay_fc
+ gnuradio.filter.filterbank_vcvcf
+ gnuradio.filter.fir_filter_ccc
+ gnuradio.filter.fir_filter_ccf
+ gnuradio.filter.fir_filter_fcc
+ gnuradio.filter.fir_filter_fff
+ gnuradio.filter.fir_filter_fsf
+ gnuradio.filter.fir_filter_scc
+ gnuradio.filter.fractional_interpolator_cc
+ gnuradio.filter.fractional_interpolator_ff
+ gnuradio.filter.fractional_resampler_cc
+ gnuradio.filter.fractional_resampler_ff
+ gnuradio.filter.freq_xlating_fir_filter_ccc
+ gnuradio.filter.freq_xlating_fir_filter_ccf
+ gnuradio.filter.freq_xlating_fir_filter_fcc
+ gnuradio.filter.freq_xlating_fir_filter_fcf
+ gnuradio.filter.freq_xlating_fir_filter_scc
+ gnuradio.filter.freq_xlating_fir_filter_scf
+ gnuradio.filter.hilbert_fc
+ gnuradio.filter.iir_filter_ccc
+ gnuradio.filter.iir_filter_ccd
+ gnuradio.filter.iir_filter_ccf
+ gnuradio.filter.iir_filter_ccz
+ gnuradio.filter.iir_filter_ffd
+ gnuradio.filter.interp_fir_filter_ccc
+ gnuradio.filter.interp_fir_filter_ccf
+ gnuradio.filter.interp_fir_filter_fcc
+ gnuradio.filter.interp_fir_filter_fff
+ gnuradio.filter.interp_fir_filter_fsf
+ gnuradio.filter.interp_fir_filter_scc
+ gnuradio.filter.pfb_arb_resampler_ccc
+ gnuradio.filter.pfb_arb_resampler_ccf
+ gnuradio.filter.pfb_arb_resampler_fff
+ gnuradio.filter.pfb_channelizer_ccf
+ gnuradio.filter.pfb_decimator_ccf
+ gnuradio.filter.pfb_interpolator_ccf
+ gnuradio.filter.pfb_synthesizer_ccf
+ gnuradio.filter.rational_resampler_base_ccc
+ gnuradio.filter.rational_resampler_base_ccf
+ gnuradio.filter.rational_resampler_base_fcc
+ gnuradio.filter.rational_resampler_base_fff
+ gnuradio.filter.rational_resampler_base_fsf
+ gnuradio.filter.rational_resampler_base_scc
+ gnuradio.filter.single_pole_iir_filter_cc
+ gnuradio.filter.single_pole_iir_filter_ff
-.. toctree::
- :hidden:
- gnuradio.plot_data <plot_data>
- gnuradio.eng_notation <eng_notation/index>
- gnuradio.eng_option <eng_option/index>
-Framework Extensions
+Fourier Analysis
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.fft.fft_vcc
+ gnuradio.fft.fft_vfc
+ gnuradio.fft.goertzel_fc
+
+
+Impairment Model Blocks
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.channels.amp_bal
+ gnuradio.channels.conj_fs_iqcorr
+ gnuradio.channels.distortion_2_gen
+ gnuradio.channels.distortion_3_gen
+ gnuradio.channels.impairments
+ gnuradio.channels.iqbal_gen
+ gnuradio.channels.phase_bal
+ gnuradio.channels.phase_noise_gen
+ gnuradio.channels.quantizer
+
+
+Instrumentation Blocks
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.qtgui.ber_sink_b
+ gnuradio.qtgui.const_sink_c
+ gnuradio.qtgui.freq_sink_c
+ gnuradio.qtgui.freq_sink_f
+ gnuradio.qtgui.histogram_sink_f
+ gnuradio.qtgui.number_sink
+ gnuradio.qtgui.sink_c
+ gnuradio.qtgui.sink_f
+ gnuradio.qtgui.time_raster_sink_b
+ gnuradio.qtgui.time_raster_sink_f
+ gnuradio.qtgui.time_sink_c
+ gnuradio.qtgui.time_sink_f
+ gnuradio.qtgui.vector_sink_f
+ gnuradio.qtgui.waterfall_sink_c
+ gnuradio.qtgui.waterfall_sink_f
+ gnuradio.wxgui.histo_sink_f
+ gnuradio.wxgui.oscope_sink_f
+
+
+
+Level Control Blocks
--------------------
.. autosummary::
:nosignatures:
- gnuradio.noaa
- gnuradio.pager
- gnuradio.video_sdl
- gnuradio.vocoder
+ gnuradio.analog.agc2_cc
+ gnuradio.analog.agc2_ff
+ gnuradio.analog.agc3_cc
+ gnuradio.analog.agc_cc
+ gnuradio.analog.agc_ff
+ gnuradio.analog.ctcss_squelch_ff
+ gnuradio.analog.feedforward_agc_cc
+ gnuradio.blocks.moving_average_cc
+ gnuradio.blocks.moving_average_ff
+ gnuradio.blocks.moving_average_ii
+ gnuradio.blocks.moving_average_ss
+ gnuradio.blocks.mute_cc
+ gnuradio.blocks.mute_ff
+ gnuradio.blocks.mute_ii
+ gnuradio.blocks.mute_ss
+ gnuradio.analog.pwr_squelch_cc
+ gnuradio.analog.pwr_squelch_ff
+ gnuradio.analog.rail_ff
+ gnuradio.blocks.sample_and_hold_bb
+ gnuradio.blocks.sample_and_hold_ff
+ gnuradio.blocks.sample_and_hold_ii
+ gnuradio.blocks.sample_and_hold_ss
+ gnuradio.analog.simple_squelch_cc
+ gnuradio.blocks.threshold_ff
-.. toctree::
- :hidden:
- gnuradio.noaa <noaa>
- gnuradio.pager <pager/index>
- gnuradio.video_sdl <video_sdl>
- gnuradio.vocoder <vocoder/index>
+Math Operator Blocks
+--------------------
+.. autosummary::
+ :nosignatures:
-.. Use this to add to the toctree but not displayed
-.. It's mostly to get rid of warnings
+ gnuradio.blocks.abs_ff
+ gnuradio.blocks.abs_ii
+ gnuradio.blocks.abs_ss
+ gnuradio.blocks.add_cc
+ gnuradio.blocks.add_ff
+ gnuradio.blocks.add_ii
+ gnuradio.blocks.add_ss
+ gnuradio.blocks.add_const_bb
+ gnuradio.blocks.add_const_cc
+ gnuradio.blocks.add_const_ff
+ gnuradio.blocks.add_const_ii
+ gnuradio.blocks.add_const_ss
+ gnuradio.blocks.add_const_vbb
+ gnuradio.blocks.add_const_vcc
+ gnuradio.blocks.add_const_vff
+ gnuradio.blocks.add_const_vii
+ gnuradio.blocks.add_const_vss
+ gnuradio.blocks.argmax_fs
+ gnuradio.blocks.argmax_is
+ gnuradio.blocks.argmax_ss
+ gnuradio.blocks.conjugate_cc
+ gnuradio.blocks.divide_cc
+ gnuradio.blocks.divide_ff
+ gnuradio.blocks.divide_ii
+ gnuradio.blocks.divide_ss
+ gnuradio.blocks.integrate_cc
+ gnuradio.blocks.integrate_ff
+ gnuradio.blocks.integrate_ii
+ gnuradio.blocks.integrate_ss
+ gnuradio.blocks.nlog10_ff
+ gnuradio.blocks.max_ff
+ gnuradio.blocks.max_ii
+ gnuradio.blocks.max_ss
+ gnuradio.blocks.min_ff
+ gnuradio.blocks.min_ii
+ gnuradio.blocks.min_ss
+ gnuradio.blocks.multiply_cc
+ gnuradio.blocks.multiply_ff
+ gnuradio.blocks.multiply_ii
+ gnuradio.blocks.multiply_ss
+ gnuradio.blocks.multiply_matrix_ff
+ gnuradio.blocks.multiply_conjugate_cc
+ gnuradio.blocks.multiply_const_cc
+ gnuradio.blocks.multiply_const_ff
+ gnuradio.blocks.multiply_const_ii
+ gnuradio.blocks.multiply_const_ss
+ gnuradio.blocks.multiply_const_vcc
+ gnuradio.blocks.multiply_const_vff
+ gnuradio.blocks.multiply_const_vii
+ gnuradio.blocks.multiply_const_vss
+ gnuradio.blocks.rms_cf
+ gnuradio.blocks.rms_ff
+ gnuradio.blocks.rotator_cc
+ gnuradio.blocks.sub_cc
+ gnuradio.blocks.sub_ff
+ gnuradio.blocks.sub_ii
+ gnuradio.blocks.sub_ss
+ gnuradio.blocks.transcendental
-.. toctree::
- :hidden:
- runtime_contents <gr/contents>
- digital_blocks <digital/blocks>
- constellations <digital/constellations>
- ofdm <digital/ofdm>
- pkt_utils <digital/pkt_utils>
- digital_utilities <digital/utilities>
- pager_blks <pager/blks>
- pyqt_filter <pyqt_filter>
- pyqt_plot <pyqt_plot>
- trellis_blks <trellis/blks>
- trellis_objs <trellis/objs>
- vocoder_blks <vocoder/blks>
- wxgui_blks <wxgui/blks>
- blocks_modulators <blocks/modulators_blk>
- blocks_audio <blocks/audio_blk>
- blocks_networking <blocks/networking_tools_blk>
- blocks_boolean <blocks/boolean_operators_blk>
- blocks_peak_detectors <blocks/peak_detectors_blk>
- blocks_byte_operators <blocks/byte_operators_blk>
- blocks_level_controllers <blocks/level_controllers_blk>
- blocks_stream_operators <blocks/stream_operators_blk>
- blocks_controlport <blocks/controlport_blk>
- blocks_math <blocks/math_operators_blk>
- blocks_stream_tag <blocks/stream_tag_tools_blk>
- blocks_debug <blocks/debug_tools_blk>
- blocks_measurement <blocks/measurement_tools_blk>
- blocks_type_converters <blocks/type_converters_blk>
- blocks_file <blocks/file_operators_blk>
- blocks_message <blocks/message_tools_blk>
- blocks_waveform <blocks/waveform_generators_blk>
- blocks_misc <blocks/misc_blk>
- analog_level_controllers <analog/level_controllers_blk>
- analog_peak_detectors <analog/peak_detectors_blk>
- analog_measurement <analog/measurement_tools_blk>
- analog_synchronizers <analog/synchronizers_blk>
- analog_modulators <analog/modulators_blk>
- filter_channelizers <filter/channelizers_blk>
- filter_resamplers <filter/resamplers_blk>
- filter_blocks <filter/filter_blk>
- filter_design <filter/filter_design>
- pmt_any <pmt/any>
- pmt_generalfunctions <pmt/generalfunctions>
- pmt_message_accepter <pmt/message_accepter>
- pmt_readwrite <pmt/readwrite>
- pmt_tuple <pmt/tuple>
- pmt_boolean <pmt/boolean>
- pmt_misc <pmt/misc>
- pmt_real <pmt/real>
- pmt_vector <pmt/vector>
- pmt_integer <pmt/integer>
- pmt_number <pmt/number>
- pmt_serialize <pmt/serialize>
- pmt_dictionary <pmt/dictionary>
- pmt_list <pmt/list>
- pmt_pair <pmt/pair>
- pmt_symbol <pmt/symbol>
+Measurement Tool Blocks
+----------------------_
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.mpsk_snr_est_cc
+ gnuradio.digital.probe_mpsk_snr_est_c
+ gnuradio.digital.probe_density_b
+ gnuradio.blocks.probe_rate
+ gnuradio.blocks.probe_signal_b
+ gnuradio.blocks.probe_signal_c
+ gnuradio.blocks.probe_signal_f
+ gnuradio.blocks.probe_signal_i
+ gnuradio.blocks.probe_signal_s
+ gnuradio.blocks.probe_signal_vb
+ gnuradio.blocks.probe_signal_vc
+ gnuradio.blocks.probe_signal_vf
+ gnuradio.blocks.probe_signal_vi
+ gnuradio.blocks.probe_signal_vs
+
+
+Message Tool Blocks
+-------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.message_burst_source
+ gnuradio.blocks.message_debug
+ gnuradio.blocks.message_sink
+ gnuradio.blocks.message_source
+ gnuradio.blocks.message_strobe
+ gnuradio.blocks.message_strobe_random
+ gnuradio.blocks.pdu_filter
+ gnuradio.blocks.pdu_remove
+ gnuradio.blocks.pdu_set
+ gnuradio.blocks.pdu_to_tagged_stream
+ gnuradio.blocks.tagged_stream_multiply_length
+ gnuradio.blocks.tagged_stream_to_pdu
+
+
+Misc Blocks
+-----------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.copy
+ gnuradio.blocks.delay
+ gnuradio.blocks.head
+ gnuradio.blocks.nop
+ gnuradio.blocks.null_sink
+ gnuradio.blocks.null_source
+ gnuradio.blocks.skiphead
+ gnuradio.blocks.throttle
+ gnuradio.blocks.vector_source_b
+ gnuradio.blocks.vector_source_c
+ gnuradio.blocks.vector_source_f
+ gnuradio.blocks.vector_source_i
+ gnuradio.blocks.vector_source_s
+
+
+Modulator Blocks
+----------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.analog.am_demod_cf
+ gnuradio.analog.cpm
+ gnuradio.analog.cpfsk_bc
+ gnuradio.analog.frequency_modulator_fc
+ gnuradio.analog.fm_demod_cf
+ gnuradio.analog.demod_20k0f3e_cf
+ gnuradio.analog.demod_200kf3e_cf
+ gnuradio.analog.fm_deemph
+ gnuradio.analog.fm_preemph
+ gnuradio.analog.nbfm_rx
+ gnuradio.analog.nbfm_tx
+ gnuradio.analog.phase_modulator_fc
+ gnuradio.analog.quadrature_demod_cf
+ gnuradio.analog.wfm_rcv_fmdet
+ gnuradio.analog.wfm_rcv_pll
+ gnuradio.analog.wfm_rcv
+ gnuradio.analog.wfm_tx
+
+
+Networking Tools Blocks
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.socket_pdu
+ gnuradio.blocks.udp_sink
+ gnuradio.blocks.udp_source
+
+
+NOAA Blocks
+-----------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.noaa.hrpt_decoder
+ gnuradio.noaa.hrpt_deframer
+ gnuradio.noaa.hrpt_pll_cf
+
+
+OFDM Blocks
+-----------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.ofdm_carrier_allocator_cvc
+ gnuradio.digital.ofdm_chanest_vcvc
+ gnuradio.digital.ofdm_cyclic_prefixer
+ gnuradio.digital.ofdm_equalizer_base
+ gnuradio.digital.ofdm_equalizer_simpledfe
+ gnuradio.digital.ofdm_equalizer_static
+ gnuradio.digital.ofdm_frame_acquisition
+ gnuradio.digital.ofdm_frame_equalizer_vcvc
+ gnuradio.digital.ofdm_frame_sink
+ gnuradio.digital.ofdm_insert_preamble
+ gnuradio.digital.ofdm_sampler
+ gnuradio.digital.ofdm_serializer_vcc
+ gnuradio.digital.ofdm_sync_sc_cfb
+
+
+Packet Operator Blocks
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.crc32_async_bb
+ gnuradio.digital.crc32_bb
+ gnuradio.digital.correlate_access_code_bb
+ gnuradio.digital.correlate_access_code_bb_ts
+ gnuradio.digital.correlate_access_code_ff_ts
+ gnuradio.digital.correlate_access_code_tag_bb
+ gnuradio.digital.framer_sink_1
+ gnuradio.digital.hdlc_deframer_bp
+ gnuradio.digital.hdlc_framer_pb
+ gnuradio.digital.header_payload_demux
+ gnuradio.digital.packet_header_default
+ gnuradio.digital.packet_headergenerator_bb
+ gnuradio.digital.packet_sink
+ gnuradio.digital.simple_correlator
+ gnuradio.digital.simple_framer
+
+
+Pager Blocks
+------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.pager.flex_deinterleave
+ gnuradio.pager.flex_frame
+ gnuradio.pager.flex_parse
+ gnuradio.pager.flex_sync
+ gnuradio.pager.slicer_fb
+
+
+Peak Detector Blocks
+--------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.burst_tagger
+ gnuradio.blocks.peak_detector2_fb
+ gnuradio.blocks.peak_detector_fb
+ gnuradio.blocks.peak_detector_ib
+ gnuradio.blocks.peak_detector_sb
+ gnuradio.blocks.plateau_detector_fb
+
+
+Resampler Blocks
+----------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.filter.fractional_resampler_cc
+ gnuradio.filter.fractional_resampler_ff
+ gnuradio.filter.pfb.arb_resampler_ccf
+ gnuradio.filter.pfb.arb_resampler_fff
+ gnuradio.filter.pfb.arb_resampler_ccc
+ gnuradio.filter.pfb_arb_resampler_ccc
+ gnuradio.filter.pfb_arb_resampler_ccf
+ gnuradio.filter.pfb_arb_resampler_fff
+ gnuradio.filter.rational_resampler_fff
+ gnuradio.filter.rational_resampler_ccf
+ gnuradio.filter.rational_resampler_ccc
+ gnuradio.filter.rational_resampler_base_ccc
+ gnuradio.filter.rational_resampler_base_ccf
+ gnuradio.filter.rational_resampler_base_fcc
+ gnuradio.filter.rational_resampler_base_fff
+ gnuradio.filter.rational_resampler_base_fsf
+ gnuradio.filter.rational_resampler_base_scc
+
+
+Stream Operator Blocks
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.deinterleave
+ gnuradio.blocks.endian_swap
+ gnuradio.blocks.keep_m_in_n
+ gnuradio.blocks.keep_one_in_n
+ gnuradio.blocks.patterned_interleaver
+ gnuradio.blocks.regenerate_bb
+ gnuradio.blocks.repeat
+ gnuradio.blocks.stream_mux
+ gnuradio.blocks.stream_to_streams
+ gnuradio.blocks.stream_to_tagged_stream
+ gnuradio.blocks.stream_to_vector
+ gnuradio.blocks.streams_to_stream
+ gnuradio.blocks.streams_to_vector
+ gnuradio.blocks.stretch_ff
+ gnuradio.blocks.tagged_stream_mux
+ gnuradio.blocks.vector_insert_b
+ gnuradio.blocks.vector_insert_c
+ gnuradio.blocks.vector_insert_f
+ gnuradio.blocks.vector_insert_i
+ gnuradio.blocks.vector_insert_s
+ gnuradio.blocks.vector_to_stream
+ gnuradio.blocks.vector_to_streams
+
+
+Stream Tag Tool Blocks
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.stream_to_tagged_stream
+ gnuradio.blocks.tag_gate
+ gnuradio.blocks.tagged_stream_align
+ gnuradio.blocks.tagged_stream_multiply_length
+ gnuradio.blocks.tagged_stream_mux
+
+
+Symbol Coding Blocks
+--------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.binary_slicer_fb
+ gnuradio.digital.chunks_to_symbols_bc
+ gnuradio.digital.chunks_to_symbols_bf
+ gnuradio.digital.chunks_to_symbols_ic
+ gnuradio.digital.chunks_to_symbols_if
+ gnuradio.digital.chunks_to_symbols_sc
+ gnuradio.digital.chunks_to_symbols_sf
+ gnuradio.digital.constellation_decoder_cb
+ gnuradio.digital.constellation_soft_decoder_cf
+ gnuradio.digital.diff_decoder_bb
+ gnuradio.digital.diff_encoder_bb
+ gnuradio.digital.diff_phasor_cc
+ gnuradio.digital.map_bb
+
+
+Synchronizer Blocks
+--------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.clock_recovery_mm_cc
+ gnuradio.digital.clock_recovery_mm_ff
+ gnuradio.digital.correlate_and_sync_cc
+ gnuradio.digital.corr_est_cc
+ gnuradio.digital.costas_loop_cc
+ gnuradio.digital.fll_band_edge_cc
+ gnuradio.digital.mpsk_receiver_cc
+ gnuradio.digital.msk_timing_recovery_cc
+ gnuradio.analog.pll_carriertracking_cc
+ gnuradio.analog.pll_freqdet_cf
+ gnuradio.analog.pll_refout_cc
+ gnuradio.digital.pn_correlator_cc
+ gnuradio.digital.pfb_clock_sync_ccf
+ gnuradio.digital.pfb_clock_sync_fff
+
+
+Trellis Coding Blocks
+---------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.trellis.constellation_metrics_cf
+ gnuradio.trellis.encoder_bb
+ gnuradio.trellis.encoder_bi
+ gnuradio.trellis.encoder_bs
+ gnuradio.trellis.encoder_ii
+ gnuradio.trellis.encoder_si
+ gnuradio.trellis.encoder_ss
+ gnuradio.trellis.metrics_c
+ gnuradio.trellis.metrics_f
+ gnuradio.trellis.metrics_i
+ gnuradio.trellis.metrics_s
+ gnuradio.trellis.pccc_decoder_b
+ gnuradio.trellis.pccc_decoder_combined_cb
+ gnuradio.trellis.pccc_decoder_combined_ci
+ gnuradio.trellis.pccc_decoder_combined_cs
+ gnuradio.trellis.pccc_decoder_combined_fb
+ gnuradio.trellis.pccc_decoder_combined_fi
+ gnuradio.trellis.pccc_decoder_combined_fs
+ gnuradio.trellis.pccc_decoder_i
+ gnuradio.trellis.pccc_decoder_s
+ gnuradio.trellis.pccc_encoder_bb
+ gnuradio.trellis.pccc_encoder_bi
+ gnuradio.trellis.pccc_encoder_bs
+ gnuradio.trellis.pccc_encoder_ii
+ gnuradio.trellis.pccc_encoder_si
+ gnuradio.trellis.pccc_encoder_ss
+ gnuradio.trellis.permutation
+ gnuradio.trellis.sccc_decoder_b
+ gnuradio.trellis.sccc_decoder_combined_cb
+ gnuradio.trellis.sccc_decoder_combined_ci
+ gnuradio.trellis.sccc_decoder_combined_cs
+ gnuradio.trellis.sccc_decoder_combined_fb
+ gnuradio.trellis.sccc_decoder_combined_fi
+ gnuradio.trellis.sccc_decoder_combined_fs
+ gnuradio.trellis.sccc_decoder_i
+ gnuradio.trellis.sccc_decoder_s
+ gnuradio.trellis.sccc_encoder_bb
+ gnuradio.trellis.sccc_encoder_bi
+ gnuradio.trellis.sccc_encoder_bs
+ gnuradio.trellis.sccc_encoder_ii
+ gnuradio.trellis.sccc_encoder_si
+ gnuradio.trellis.sccc_encoder_ss
+ gnuradio.trellis.siso_combined_f
+ gnuradio.trellis.siso_f
+ gnuradio.trellis.viterbi_b
+ gnuradio.trellis.viterbi_combined_cb
+ gnuradio.trellis.viterbi_combined_ci
+ gnuradio.trellis.viterbi_combined_cs
+ gnuradio.trellis.viterbi_combined_fb
+ gnuradio.trellis.viterbi_combined_fi
+ gnuradio.trellis.viterbi_combined_fs
+ gnuradio.trellis.viterbi_combined_ib
+ gnuradio.trellis.viterbi_combined_ii
+ gnuradio.trellis.viterbi_combined_is
+ gnuradio.trellis.viterbi_combined_sb
+ gnuradio.trellis.viterbi_combined_si
+ gnuradio.trellis.viterbi_combined_ss
+ gnuradio.trellis.viterbi_i
+ gnuradio.trellis.viterbi_s
+
+
+
+Type Converter Blocks
+---------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.blocks.char_to_float
+ gnuradio.blocks.char_to_short
+ gnuradio.blocks.complex_to_arg
+ gnuradio.blocks.complex_to_float
+ gnuradio.blocks.complex_to_imag
+ gnuradio.blocks.complex_to_interleaved_short
+ gnuradio.blocks.complex_to_mag
+ gnuradio.blocks.complex_to_mag_squared
+ gnuradio.blocks.complex_to_real
+ gnuradio.blocks.float_to_char
+ gnuradio.blocks.float_to_complex
+ gnuradio.blocks.float_to_int
+ gnuradio.blocks.float_to_short
+ gnuradio.blocks.float_to_uchar
+ gnuradio.blocks.int_to_float
+ gnuradio.blocks.interleaved_char_to_complex
+ gnuradio.blocks.interleaved_short_to_complex
+ gnuradio.blocks.short_to_char
+ gnuradio.blocks.short_to_float
+ gnuradio.blocks.uchar_to_float
+
+
+
+UHD Blocks
+----------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.uhd.amsg_source
+ gnuradio.uhd.usrp_sink
+ gnuradio.uhd.usrp_source
+
+
+Video Blocks
+------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.video_sdl.sink_s
+ gnuradio.video_sdl.sink_uc
+
+
+
+Waveform Generator Blocks
+-------------------------
+
+ gnuradio.analog.fastnoise_source_c
+ gnuradio.analog.fastnoise_source_f
+ gnuradio.analog.fastnoise_source_i
+ gnuradio.analog.fastnoise_source_s
+ gnuradio.analog.noise_source_c
+ gnuradio.analog.noise_source_f
+ gnuradio.analog.noise_source_i
+ gnuradio.analog.noise_source_s
+ gnuradio.digital.glfsr_source_b
+ gnuradio.digital.glfsr_source_f
+ gnuradio.analog.sig_source_c
+ gnuradio.analog.sig_source_f
+ gnuradio.analog.sig_source_i
+ gnuradio.analog.sig_source_s
+
+
+ZeroMQ Interface Blocks
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.zeromq.pub_msg_sink
+ gnuradio.zeromq.pub_sink
+ gnuradio.zeromq.pull_msg_source
+ gnuradio.zeromq.pull_source
+ gnuradio.zeromq.push_msg_sink
+ gnuradio.zeromq.push_sink
+ gnuradio.zeromq.rep_msg_sink
+ gnuradio.zeromq.rep_sink
+ gnuradio.zeromq.req_msg_source
+ gnuradio.zeromq.req_source
+ gnuradio.zeromq.sub_msg_source
+ gnuradio.zeromq.sub_source
+
+
+Helper Classes: Analog
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.analog.cpm
+ gnuradio.analog.squelch_base_cc
+ gnuradio.analog.squelch_base_ff
+ gnuradio.analog.cpm
+ gnuradio.analog.squelch_base_cc
+ gnuradio.analog.squelch_base_ff
+ gnuradio.analog.am_demod_cf
+ gnuradio.analog.demod_10k0a3e_cf
+ gnuradio.analog.fm_demod_cf
+ gnuradio.analog.demod_20k0f3e_cf
+ gnuradio.analog.demod_200kf3e_cf
+ gnuradio.analog.fm_deemph
+ gnuradio.analog.fm_preemph
+ gnuradio.analog.nbfm_rx
+ gnuradio.analog.nbfm_tx
+ gnuradio.analog.ctcss_gen_f
+ gnuradio.analog.standard_squelch
+ gnuradio.analog.wfm_rcv_fmdet
+ gnuradio.analog.wfm_rcv_pll
+ gnuradio.analog.wfm_rcv
+ gnuradio.analog.wfm_tx
+
+
+Helper Classes: Digital
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.digital.constellation
+ gnuradio.digital.lfsr
+ gnuradio.digital.mpsk_snr_est
+ gnuradio.digital.simple_framer
+ gnuradio.digital.crc32
+ gnuradio.digital.update_crc32
+ gnuradio.digital.bpsk_mod
+ gnuradio.digital.bpsk_demod
+ gnuradio.digital.dbpsk_mod
+ gnuradio.digital.dbpsk_demod
+ gnuradio.digital.constellation_map_generator
+ gnuradio.digital.cpm_mod
+ gnuradio.digital.gen_and_append_crc32
+ gnuradio.digital.check_crc32
+ gnuradio.digital.generic_mod
+ gnuradio.digital.generic_demod
+ gnuradio.digital.gfsk_mod
+ gnuradio.digital.gfsk_demod
+ gnuradio.digital.gmsk_mod
+ gnuradio.digital.gmsk_demod
+ gnuradio.digital.type_1_mods
+ gnuradio.digital.add_type_1_mod
+ gnuradio.digital.type_1_demods
+ gnuradio.digital.add_type_1_demod
+ gnuradio.digital.type_1_constellations
+ gnuradio.digital.add_type_1_constellation
+ gnuradio.digital.extract_kwargs_from_options
+ gnuradio.digital.extract_kwargs_from_options_for_class
+ gnuradio.digital.ofdm_packet_utils.conv_packed_binary_string_to_1_0_string
+ gnuradio.digital.ofdm_packet_utils.conv_1_0_string_to_packed_binary_string
+ gnuradio.digital.ofdm_packet_utils.is_1_0_string
+ gnuradio.digital.ofdm_packet_utils.string_to_hex_list
+ gnuradio.digital.ofdm_packet_utils.whiten
+ gnuradio.digital.ofdm_packet_utils.dewhiten
+ gnuradio.digital.ofdm_packet_utils.make_header
+ gnuradio.digital.ofdm_packet_utils.make_packet
+ gnuradio.digital.ofdm_packet_utils.unmake_packet
+ gnuradio.digital.ofdm_mod
+ gnuradio.digital.ofdm_demod
+ gnuradio.digital.ofdm_receiver
+ gnuradio.digital.ofdm_sync_fixed
+ gnuradio.digital.ofdm_sync_ml
+ gnuradio.digital.ofdm_sync_pnac
+ gnuradio.digital.ofdm_sync_pn
+ gnuradio.digital.ofdm_tx
+ gnuradio.digital.ofdm_rx
+ gnuradio.digital.packet_utils.conv_packed_binary_string_to_1_0_string
+ gnuradio.digital.packet_utils.conv_1_0_string_to_packed_binary_string
+ gnuradio.digital.packet_utils.is_1_0_string
+ gnuradio.digital.packet_utils.string_to_hex_list
+ gnuradio.digital.packet_utils.whiten
+ gnuradio.digital.packet_utils.dewhiten
+ gnuradio.digital.packet_utils.make_header
+ gnuradio.digital.packet_utils.make_packet
+ gnuradio.digital.packet_utils.unmake_packet
+ gnuradio.digital.mod_pkts
+ gnuradio.digital.demod_pkts
+ gnuradio.digital.psk_2_0x0
+ gnuradio.digital.psk_2_0x1
+ gnuradio.digital.sd_psk_2_0x0
+ gnuradio.digital.sd_psk_2_0x1
+ gnuradio.digital.psk_4_0x0_0_1
+ gnuradio.digital.psk_4_0x1_0_1
+ gnuradio.digital.psk_4_0x2_0_1
+ gnuradio.digital.psk_4_0x3_0_1
+ gnuradio.digital.psk_4_0x0_1_0
+ gnuradio.digital.psk_4_0x1_1_0
+ gnuradio.digital.psk_4_0x2_1_0
+ gnuradio.digital.psk_4_0x3_1_0
+ gnuradio.digital.sd_psk_4_0x0_0_1
+ gnuradio.digital.sd_psk_4_0x1_0_1
+ gnuradio.digital.sd_psk_4_0x2_0_1
+ gnuradio.digital.sd_psk_4_0x3_0_1
+ gnuradio.digital.sd_psk_4_0x0_1_0
+ gnuradio.digital.sd_psk_4_0x1_1_0
+ gnuradio.digital.sd_psk_4_0x2_1_0
+ gnuradio.digital.sd_psk_4_0x3_1_0
+ gnuradio.digital.psk_constellation
+ gnuradio.digital.psk_mod
+ gnuradio.digital.psk_demod
+ gnuradio.digital.qam_16_0x0_0_1_2_3
+ gnuradio.digital.qam_16_0x1_0_1_2_3
+ gnuradio.digital.qam_16_0x2_0_1_2_3
+ gnuradio.digital.qam_16_0x3_0_1_2_3
+ gnuradio.digital.qam_16_0x0_1_0_2_3
+ gnuradio.digital.qam_16_0x1_1_0_2_3
+ gnuradio.digital.qam_16_0x2_1_0_2_3
+ gnuradio.digital.qam_16_0x3_1_0_2_3
+ gnuradio.digital.sd_qam_16_0x0_0_1_2_3
+ gnuradio.digital.sd_qam_16_0x1_0_1_2_3
+ gnuradio.digital.sd_qam_16_0x2_0_1_2_3
+ gnuradio.digital.sd_qam_16_0x3_0_1_2_3
+ gnuradio.digital.sd_qam_16_0x0_1_0_2_3
+ gnuradio.digital.sd_qam_16_0x1_1_0_2_3
+ gnuradio.digital.sd_qam_16_0x2_1_0_2_3
+ gnuradio.digital.sd_qam_16_0x3_1_0_2_3
+ gnuradio.digital.qam32_holeinside_constellation
+ gnuradio.digital.make_differential_constellation
+ gnuradio.digital.make_non_differential_constellation
+ gnuradio.digital.qam_constellation
+ gnuradio.digital.qam_mod
+ gnuradio.digital.qam_demod
+ gnuradio.digital.qpsk_constellation
+ gnuradio.digital.qpsk_mod
+ gnuradio.digital.qpsk_demod
+ gnuradio.digital.dqpsk_constellation
+ gnuradio.digital.dqpsk_mod
+ gnuradio.digital.dqpsk_demod
+ gnuradio.digital.soft_dec_table_generator
+ gnuradio.digital.soft_dec_table
+ gnuradio.digital.calc_soft_dec_from_table
+ gnuradio.digital.calc_soft_dec
+ gnuradio.digital.show_table
+
+Helper Classes: FEC
+-------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.fec.cc_decoder
+ gnuradio.fec.cc_encoder
+ gnuradio.fec.ccsds_encoder
+ gnuradio.fec.dummy_decoder
+ gnuradio.fec.dummy_encoder
+ gnuradio.fec.ldpc_decoder
+ gnuradio.fec.ldpc_encoder
+ gnuradio.fec.repetition_decoder
+ gnuradio.fec.repetition_encoder
+ gnuradio.fec.tpc_decoder
+ gnuradio.fec.tpc_encoder
+ gnuradio.fec.bercurve_generator
+ gnuradio.fec.bitreverse
+ gnuradio.fec.bitflip
+ gnuradio.fec.read_bitlist
+ gnuradio.fec.read_big_bitlist
+ gnuradio.fec.generate_symmetries
+ gnuradio.fec.capillary_threaded_decoder
+ gnuradio.fec.capillary_threaded_encoder
+ gnuradio.fec.extended_async_encoder
+ gnuradio.fec.extended_decoder
+ gnuradio.fec.extended_encoder
+ gnuradio.fec.extended_tagged_decoder
+ gnuradio.fec.extended_tagged_encoder
+ gnuradio.fec.fec_test
+ gnuradio.fec.threaded_decoder
+ gnuradio.fec.threaded_encoder
+
+Helper Classes: FFT
+-------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.fft.window
+
+
+Helper Classes: Filter
+----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.filter.filterbank.analysis_filterbank
+ gnuradio.filter.filterbank.synthesis_filterbank
+ gnuradio.filter.firdes
+ gnuradio.filter.pm_remez
+ gnuradio.filter.synthesis_filterbank
+ gnuradio.filter.analysis_filterbank
+ gnuradio.filter.freq_xlating_fft_filter_ccc
+ gnuradio.filter.optfir.low_pass
+ gnuradio.filter.optfir.band_pass
+ gnuradio.filter.optfir.complex_band_pass
+ gnuradio.filter.optfir.band_reject
+ gnuradio.filter.optfir.stopband_atten_to_dev
+ gnuradio.filter.optfir.passband_ripple_to_dev
+ gnuradio.filter.optfir.remezord
+ gnuradio.filter.optfir.lporder
+ gnuradio.filter.optfir.bporder
+ gnuradio.filter.pfb.channelizer_ccf
+ gnuradio.filter.pfb.interpolator_ccf
+ gnuradio.filter.pfb.decimator_ccf
+ gnuradio.filter.pfb.arb_resampler_ccf
+ gnuradio.filter.pfb.arb_resampler_fff
+ gnuradio.filter.pfb.arb_resampler_ccc
+ gnuradio.filter.pfb.channelizer_hier_ccf
+ gnuradio.filter.rational_resampler_fff
+ gnuradio.filter.rational_resampler_ccf
+ gnuradio.filter.rational_resampler_ccc
+
+
+Helper Classes: Trellis
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.trellis.fsm
+ gnuradio.trellis.interleaver
+
+
+Helper Classes: UHD
+-------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.uhd.usrp_block
+
+
+Helper Classes: Vocoder
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.vocoder.codec2
+ gnuradio.vocoder.cvsd_encode_fb
+ gnuradio.vocoder.cvsd_decode_bf
+
+
+Helper Classes: WXGUI
+---------------------
+
+.. autosummary::
+ :nosignatures:
+
+ gnuradio.wxgui.oscope_sink_x
+ gnuradio.wxgui.histo_sink_f
diff --git a/docs/sphinx/source/noaa.rst b/docs/sphinx/source/noaa_blocks.rst
index 06c7078130..711ce42785 100644
--- a/docs/sphinx/source/noaa.rst
+++ b/docs/sphinx/source/noaa_blocks.rst
@@ -1,5 +1,5 @@
gnuradio.noaa
-==============
+=============
.. automodule:: gnuradio.noaa
diff --git a/docs/sphinx/source/pager/index.rst b/docs/sphinx/source/pager/index.rst
deleted file mode 100644
index 36df48451d..0000000000
--- a/docs/sphinx/source/pager/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-gnuradio.pager
-==============
-
-.. automodule:: gnuradio.pager
-
-Signal Processing Blocks
-------------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.pager.flex_deinterleave
- gnuradio.pager.flex_demod
- gnuradio.pager.flex_frame
- gnuradio.pager.flex_parse
- gnuradio.pager.flex_sync
- gnuradio.pager.pager_flex_frame
- gnuradio.pager.slicer_fb
-
-Utility Functions
------------------
-
-.. autofunction:: gnuradio.pager.queue_runner
diff --git a/docs/sphinx/source/pager/blks.rst b/docs/sphinx/source/pager_blocks.rst
index 9b5a2ca70d..5eef083aa5 100644
--- a/docs/sphinx/source/pager/blks.rst
+++ b/docs/sphinx/source/pager_blocks.rst
@@ -1,8 +1,9 @@
-gnuradio.pager: Signal Processing Blocks
-========================================
+gnuradio.pager
+==============
+
+.. automodule:: gnuradio.pager
.. autoblock:: gnuradio.pager.flex_deinterleave
-.. autopyblock:: gnuradio.pager.flex_demod
.. autoblock:: gnuradio.pager.flex_frame
.. autoblock:: gnuradio.pager.flex_parse
.. autoblock:: gnuradio.pager.flex_sync
diff --git a/docs/sphinx/source/plot_data.rst b/docs/sphinx/source/plot_data.rst
deleted file mode 100644
index 1b52a083c0..0000000000
--- a/docs/sphinx/source/plot_data.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.plot_data
-==================
-
-.. automodule:: gnuradio.plot_data
-
-.. autoclass:: gnuradio.plot_data.plot_data
diff --git a/docs/sphinx/source/pmt.rst b/docs/sphinx/source/pmt.rst
new file mode 100644
index 0000000000..2520343cbd
--- /dev/null
+++ b/docs/sphinx/source/pmt.rst
@@ -0,0 +1,193 @@
+gnuradio.pmt
+============
+
+.. autofunction:: pmt.acons
+.. autofunction:: pmt.any_ref
+.. autofunction:: pmt.any_set
+.. autofunction:: pmt.assoc
+.. autofunction:: pmt.assq
+.. autofunction:: pmt.assv
+.. autofunction:: pmt.blob_data
+.. autofunction:: pmt.blob_length
+.. autofunction:: pmt.c32vector_elements
+.. autofunction:: pmt.c32vector_ref
+.. autofunction:: pmt.c32vector_set
+.. autofunction:: pmt.c64vector_elements
+.. autofunction:: pmt.c64vector_ref
+.. autofunction:: pmt.c64vector_set
+.. autofunction:: pmt.caar
+.. autofunction:: pmt.cadddr
+.. autofunction:: pmt.caddr
+.. autofunction:: pmt.cadr
+.. autofunction:: pmt.car
+.. autofunction:: pmt.cdar
+.. autofunction:: pmt.cddr
+.. autofunction:: pmt.cdr
+.. autofunction:: pmt.cons
+.. autofunction:: pmt.deserialize
+.. autofunction:: pmt.deserialize_str
+.. autofunction:: pmt.dict_add
+.. autofunction:: pmt.dict_delete
+.. autofunction:: pmt.dict_has_key
+.. autofunction:: pmt.dict_items
+.. autofunction:: pmt.dict_keys
+.. autofunction:: pmt.dict_ref
+.. autofunction:: pmt.dict_update
+.. autofunction:: pmt.dict_values
+.. autofunction:: pmt.dump_sizeof
+.. autofunction:: pmt.eq
+.. autofunction:: pmt.equal
+.. autofunction:: pmt.eqv
+.. autofunction:: pmt.f32vector_elements
+.. autofunction:: pmt.f32vector_ref
+.. autofunction:: pmt.f32vector_set
+.. autofunction:: pmt.f64vector_elements
+.. autofunction:: pmt.f64vector_ref
+.. autofunction:: pmt.f64vector_set
+.. autofunction:: pmt.from_bool
+.. autofunction:: pmt.from_complex
+.. autofunction:: pmt.from_double
+.. autofunction:: pmt.from_float
+.. autofunction:: pmt.from_long
+.. autofunction:: pmt.from_uint64
+.. autofunction:: pmt.get_PMT_EOF
+.. autofunction:: pmt.get_PMT_F
+.. autofunction:: pmt.get_PMT_NIL
+.. autofunction:: pmt.get_PMT_T
+.. autofunction:: pmt.init_c32vector
+.. autofunction:: pmt.init_c64vector
+.. autofunction:: pmt.init_f32vector
+.. autofunction:: pmt.init_f64vector
+.. autofunction:: pmt.init_s16vector
+.. autofunction:: pmt.init_s32vector
+.. autofunction:: pmt.init_s8vector
+.. autofunction:: pmt.init_u16vector
+.. autofunction:: pmt.init_u32vector
+.. autofunction:: pmt.init_u8vector
+.. autofunction:: pmt.intern
+.. autofunction:: pmt.is_any
+.. autofunction:: pmt.is_blob
+.. autofunction:: pmt.is_bool
+.. autofunction:: pmt.is_c32vector
+.. autofunction:: pmt.is_c64vector
+.. autofunction:: pmt.is_complex
+.. autofunction:: pmt.is_dict
+.. autofunction:: pmt.is_eof_object
+.. autofunction:: pmt.is_f32vector
+.. autofunction:: pmt.is_f64vector
+.. autofunction:: pmt.is_false
+.. autofunction:: pmt.is_integer
+.. autofunction:: pmt.is_msg_accepter
+.. autofunction:: pmt.is_null
+.. autofunction:: pmt.is_number
+.. autofunction:: pmt.is_pair
+.. autofunction:: pmt.is_real
+.. autofunction:: pmt.is_s16vector
+.. autofunction:: pmt.is_s32vector
+.. autofunction:: pmt.is_s64vector
+.. autofunction:: pmt.is_s8vector
+.. autofunction:: pmt.is_symbol
+.. autofunction:: pmt.is_true
+.. autofunction:: pmt.is_tuple
+.. autofunction:: pmt.is_u16vector
+.. autofunction:: pmt.is_u32vector
+.. autofunction:: pmt.is_u64vector
+.. autofunction:: pmt.is_u8vector
+.. autofunction:: pmt.is_uint64
+.. autofunction:: pmt.is_uniform_vector
+.. autofunction:: pmt.is_vector
+.. autofunction:: pmt.length
+.. autofunction:: pmt.list1
+.. autofunction:: pmt.list2
+.. autofunction:: pmt.list3
+.. autofunction:: pmt.list4
+.. autofunction:: pmt.list5
+.. autofunction:: pmt.list6
+.. autofunction:: pmt.list_add
+.. autofunction:: pmt.list_has
+.. autofunction:: pmt.list_rm
+.. autofunction:: pmt.make_any
+.. autofunction:: pmt.make_blob
+.. autofunction:: pmt.make_c32vector
+.. autofunction:: pmt.make_c64vector
+.. autofunction:: pmt.make_dict
+.. autofunction:: pmt.make_f32vector
+.. autofunction:: pmt.make_f64vector
+.. autofunction:: pmt.make_msg_accepter
+.. autofunction:: pmt.make_rectangular
+.. autofunction:: pmt.make_s16vector
+.. autofunction:: pmt.make_s32vector
+.. autofunction:: pmt.make_s64vector
+.. autofunction:: pmt.make_s8vector
+.. autofunction:: pmt.make_tuple
+.. autofunction:: pmt.make_u16vector
+.. autofunction:: pmt.make_u32vector
+.. autofunction:: pmt.make_u64vector
+.. autofunction:: pmt.make_u8vector
+.. autofunction:: pmt.make_vector
+.. autofunction:: pmt.map
+.. autofunction:: pmt.member
+.. autofunction:: pmt.memq
+.. autofunction:: pmt.memv
+.. autofunction:: pmt.msg_accepter_ref
+.. autofunction:: pmt.nth
+.. autofunction:: pmt.nthcdr
+.. autofunction:: pmt.pmt_vector_cdouble
+.. autofunction:: pmt.pmt_vector_cfloat
+.. autofunction:: pmt.pmt_vector_double
+.. autofunction:: pmt.pmt_vector_float
+.. autofunction:: pmt.pmt_vector_int16
+.. autofunction:: pmt.pmt_vector_int32
+.. autofunction:: pmt.pmt_vector_int8
+.. autofunction:: pmt.pmt_vector_uint16
+.. autofunction:: pmt.pmt_vector_uint32
+.. autofunction:: pmt.pmt_vector_uint8
+.. autofunction:: pmt.read
+.. autofunction:: pmt.reverse
+.. autofunction:: pmt.reverse_x
+.. autofunction:: pmt.s16vector_elements
+.. autofunction:: pmt.s16vector_ref
+.. autofunction:: pmt.s16vector_set
+.. autofunction:: pmt.s32vector_elements
+.. autofunction:: pmt.s32vector_ref
+.. autofunction:: pmt.s32vector_set
+.. autofunction:: pmt.s64vector_ref
+.. autofunction:: pmt.s64vector_set
+.. autofunction:: pmt.s8vector_elements
+.. autofunction:: pmt.s8vector_ref
+.. autofunction:: pmt.s8vector_set
+.. autofunction:: pmt.serialize
+.. autofunction:: pmt.serialize_str
+.. autofunction:: pmt.set_car
+.. autofunction:: pmt.set_cdr
+.. autofunction:: pmt.string_to_symbol
+.. autofunction:: pmt.subsetp
+.. autofunction:: pmt.symbol_to_string
+.. autofunction:: pmt.to_bool
+.. autofunction:: pmt.to_complex
+.. autofunction:: pmt.to_double
+.. autofunction:: pmt.to_float
+.. autofunction:: pmt.to_long
+.. autofunction:: pmt.to_pmt
+.. autofunction:: pmt.to_python
+.. autofunction:: pmt.to_tuple
+.. autofunction:: pmt.to_uint64
+.. autofunction:: pmt.tuple_ref
+.. autofunction:: pmt.u16vector_elements
+.. autofunction:: pmt.u16vector_ref
+.. autofunction:: pmt.u16vector_set
+.. autofunction:: pmt.u32vector_elements
+.. autofunction:: pmt.u32vector_ref
+.. autofunction:: pmt.u32vector_set
+.. autofunction:: pmt.u64vector_ref
+.. autofunction:: pmt.u64vector_set
+.. autofunction:: pmt.u8vector_elements
+.. autofunction:: pmt.u8vector_ref
+.. autofunction:: pmt.u8vector_set
+.. autofunction:: pmt.uniform_vector_elements
+.. autofunction:: pmt.uniform_vector_itemsize
+.. autofunction:: pmt.vector_fill
+.. autofunction:: pmt.vector_ref
+.. autofunction:: pmt.vector_set
+.. autofunction:: pmt.write
+.. autofunction:: pmt.write_string
diff --git a/docs/sphinx/source/pmt/any.rst b/docs/sphinx/source/pmt/any.rst
deleted file mode 100644
index 05c02d5363..0000000000
--- a/docs/sphinx/source/pmt/any.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pmt: Any
-========
-
-.. autofunction:: pmt.is_any
-.. autofunction:: pmt.make_any
-.. autofunction:: pmt.any_ref
-.. autofunction:: pmt.any_set
diff --git a/docs/sphinx/source/pmt/boolean.rst b/docs/sphinx/source/pmt/boolean.rst
deleted file mode 100644
index 8663daa438..0000000000
--- a/docs/sphinx/source/pmt/boolean.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-pmt: Booleans
-=============
-
-.. autofunction:: pmt.is_bool
-.. autofunction:: pmt.is_true
-.. autofunction:: pmt.is_false
-.. autofunction:: pmt.from_bool
-.. autofunction:: pmt.to_bool
diff --git a/docs/sphinx/source/pmt/dictionary.rst b/docs/sphinx/source/pmt/dictionary.rst
deleted file mode 100644
index 7909da8d9e..0000000000
--- a/docs/sphinx/source/pmt/dictionary.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-pmt: Dictionary
-===============
-
-.. autofunction:: pmt.is_dict
-.. autofunction:: pmt.make_dict
-.. autofunction:: pmt.dict_add
-.. autofunction:: pmt.dict_delete
-.. autofunction:: pmt.dict_has_key
-.. autofunction:: pmt.dict_ref
-.. autofunction:: pmt.dict_items
-.. autofunction:: pmt.dict_keys
-.. autofunction:: pmt.dict_values
diff --git a/docs/sphinx/source/pmt/generalfunctions.rst b/docs/sphinx/source/pmt/generalfunctions.rst
deleted file mode 100644
index 58b13c750d..0000000000
--- a/docs/sphinx/source/pmt/generalfunctions.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-pmt: General Functions
-======================
-
- pmt.map
- pmt.reverse
- pmt.reverse_x
- pmt.acons
- pmt.nth
- pmt.nthcdr
- pmt.memq
- pmt.memv
- pmt.member
- pmt.subsetp
- pmt.list1
- pmt.list2
- pmt.list3
- pmt.list4
- pmt.list5
- pmt.list6
- pmt.list_add
- pmt.list_rm
- pmt.list_has
-
-.. autofunction:: pmt.eq
-.. autofunction:: pmt.equal
-.. autofunction:: pmt.eqv
-.. autofunction:: pmt.length
-.. autofunction:: pmt.assq
-.. autofunction:: pmt.assv
-.. autofunction:: pmt.assoc
-
diff --git a/docs/sphinx/source/pmt/index.rst b/docs/sphinx/source/pmt/index.rst
deleted file mode 100644
index fd90a3d605..0000000000
--- a/docs/sphinx/source/pmt/index.rst
+++ /dev/null
@@ -1,347 +0,0 @@
-pmt
-===
-
-.. automodule:: pmt
-
-Boolean
--------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_bool
- pmt.is_true
- pmt.is_false
- pmt.from_bool
- pmt.to_bool
-
-Symbols
--------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_symbol
- pmt.string_to_symbol
- pmt.symbol_to_string
- pmt.intern
-
-Numbers
--------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_number
-
-Integers
---------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_integer
- pmt.to_long
- pmt.from_long
-
-uint64_t
----------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_uint64
- pmt.to_uint64
- pmt.from_uint64
-
-Reals
------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_real
- pmt.to_double
- pmt.from_double
-
-Complex
--------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_complex
- pmt.to_complex
- pmt.from_complex
- pmt.make_rectangular
-
-Pairs
------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_pair
- pmt.cons
- pmt.car
- pmt.cdr
- pmt.set_car
- pmt.set_cdr
- pmt.caar
- pmt.cadddr
- pmt.caddr
- pmt.cadr
- pmt.cdar
- pmt.cddr
-
-Tuples
-------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_tuple
- pmt.make_tuple
- pmt.tuple_ref
- pmt.to_tuple
-
-Vectors
--------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_vector
- pmt.make_vector
- pmt.vector_ref
- pmt.vector_set
- pmt.vector_fill
-
-BLOBs
------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_blob
- pmt.make_blob
- pmt.blob_data
- pmt.blob_length
-
-Uniform Numeric Vectors
------------------------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_uniform_vector
- pmt.is_u8vector
- pmt.is_u16vector
- pmt.is_u32vector
- pmt.is_u64vector
- pmt.is_s16vector
- pmt.is_s32vector
- pmt.is_s64vector
- pmt.is_s8vector
- pmt.is_c32vector
- pmt.is_c64vector
- pmt.is_f32vector
- pmt.is_f64vector
-
- pmt.make_u8vector
- pmt.make_u16vector
- pmt.make_u32vector
- pmt.make_u64vector
- pmt.make_s8vector
- pmt.make_s16vector
- pmt.make_s32vector
- pmt.make_s64vector
- pmt.make_c32vector
- pmt.make_c64vector
- pmt.make_f32vector
- pmt.make_f64vector
-
- pmt.init_u8vector
- pmt.init_u16vector
- pmt.init_u32vector
- pmt.init_u64vector
-
- pmt.init_s8vector
- pmt.init_s16vector
- pmt.init_s32vector
- pmt.init_s64vector
- pmt.init_c32vector
- pmt.init_c64vector
- pmt.init_f32vector
- pmt.init_f64vector
-
- pmt.c32vector_ref
- pmt.c64vector_ref
- pmt.f32vector_ref
- pmt.f64vector_ref
- pmt.s16vector_ref
- pmt.s32vector_ref
- pmt.s64vector_ref
- pmt.s8vector_ref
- pmt.u16vector_ref
- pmt.u32vector_ref
- pmt.u64vector_ref
- pmt.u8vector_ref
-
- pmt.c32vector_set
- pmt.c64vector_set
- pmt.f32vector_set
- pmt.f64vector_set
- pmt.s16vector_set
- pmt.s32vector_set
- pmt.s64vector_set
- pmt.s8vector_set
- pmt.u16vector_set
- pmt.u32vector_set
- pmt.u64vector_set
- pmt.u8vector_set
-
- pmt.uniform_vector_elements
-
- pmt.c32vector_elements
- pmt.c64vector_elements
- pmt.f32vector_elements
- pmt.f64vector_elements
- pmt.s16vector_elements
- pmt.s32vector_elements
- pmt.s8vector_elements
- pmt.u16vector_elements
- pmt.u32vector_elements
- pmt.u8vector_elements
-
-Dictionary
-----------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_dict
- pmt.make_dict
- pmt.dict_add
- pmt.dict_delete
- pmt.dict_has_key
- pmt.dict_ref
- pmt.dict_items
- pmt.dict_keys
- pmt.dict_values
-
-Any
----
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_any
- pmt.make_any
- pmt.any_ref
- pmt.any_set
-
-Message Accepter
-----------------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_msg_accepter
- pmt.make_msg_accepter
- pmt.msg_accepter_ref
-
-General Functions
------------------
-
-.. autosummary::
- :nosignatures:
-
- pmt.eq
- pmt.equal
- pmt.eqv
- pmt.length
- pmt.assq
- pmt.assv
- pmt_assoc
-
-Lists
------
-
-.. autosummary::
- :nosignatures:
-
- pmt.map
- pmt.reverse
- pmt.reverse_x
- pmt.acons
- pmt.nth
- pmt.nthcdr
- pmt.memq
- pmt.memv
- pmt.member
- pmt.subsetp
- pmt.list1
- pmt.list2
- pmt.list3
- pmt.list4
- pmt.list5
- pmt.list6
- pmt.list_add
- pmt.list_rm
- pmt.list_has
-
-Read/Write
-----------
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_eof_object
- pmt.read
- pmt.write
- pmt.write_string
-
-Serialize
----------
-
-.. autosummary::
- :nosignatures:
-
- pmt.serialize
- pmt.deserialize
- pmt.dump_sizeof
- pmt.serialize_str
- pmt.deserialize_str
-
-Misc
-----
-
-.. autosummary::
- :nosignatures:
-
- pmt.is_null
- pmt.cvar
-
-Generic Casts
--------------
-
-.. autosummary::
- :nosignatures:
-
- pmt.to_pmt
- pmt.to_python
- pmt.pmt_to_python.pmt_to_python
-
-Constants
---------
-
-.. autosummary::
- :nosignatures:
-
- pmt.PMT_EOF
- pmt.PMT_EOF
- pmt.PMT_F
- pmt.PMT_NIL
- pmt.PMT_T
-
diff --git a/docs/sphinx/source/pmt/integer.rst b/docs/sphinx/source/pmt/integer.rst
deleted file mode 100644
index 58e16e5aa7..0000000000
--- a/docs/sphinx/source/pmt/integer.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-pmt: Integers
-=============
-
-.. autofunction:: pmt.is_integer
-.. autofunction:: pmt.to_long
-.. autofunction:: pmt.from_long
-
-
-pmt: uint64_t
-=============
-.. autofunction:: pmt.is_uint64
-.. autofunction:: pmt.to_uint64
-.. autofunction:: pmt.from_uint64
diff --git a/docs/sphinx/source/pmt/list.rst b/docs/sphinx/source/pmt/list.rst
deleted file mode 100644
index 8b67119910..0000000000
--- a/docs/sphinx/source/pmt/list.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-pmt: Lists
-==========
-
-.. autofunction:: pmt.map
-.. autofunction:: pmt.reverse
-.. autofunction:: pmt.reverse_x
-.. autofunction:: pmt.acons
-.. autofunction:: pmt.nth
-.. autofunction:: pmt.nthcdr
-.. autofunction:: pmt.memq
-.. autofunction:: pmt.memv
-.. autofunction:: pmt.member
-.. autofunction:: pmt.subsetp
-.. autofunction:: pmt.list1
-.. autofunction:: pmt.list2
-.. autofunction:: pmt.list3
-.. autofunction:: pmt.list4
-.. autofunction:: pmt.list5
-.. autofunction:: pmt.list6
-.. autofunction:: pmt.list_add
-.. autofunction:: pmt.list_rm
-.. autofunction:: pmt.list_has
diff --git a/docs/sphinx/source/pmt/message_accepter.rst b/docs/sphinx/source/pmt/message_accepter.rst
deleted file mode 100644
index 066203c713..0000000000
--- a/docs/sphinx/source/pmt/message_accepter.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pmt: Message Accepter
-=====================
-
-.. autofunction:: pmt.is_msg_accepter
-.. autofunction:: pmt.make_msg_accepter
-.. autofunction:: pmt.msg_accepter_ref
-
diff --git a/docs/sphinx/source/pmt/misc.rst b/docs/sphinx/source/pmt/misc.rst
deleted file mode 100644
index c671540fe2..0000000000
--- a/docs/sphinx/source/pmt/misc.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-pmt: Misc
-=========
-
-.. autofunction:: pmt.is_null
-.. autofunction:: pmt.cvar
-
-pmt: Generic Casts
-==================
-
-.. autofunction:: pmt.to_pmt
-.. autofunction:: pmt.to_python
-.. autofunction:: pmt.pmt_to_python.pmt_to_python
-
-pmt: Constants
-==============
-
-.. autofunction:: pmt.PMT_EOF
-.. autofunction:: pmt.PMT_EOF
-.. autofunction:: pmt.PMT_F
-.. autofunction:: pmt.PMT_NIL
-.. autofunction:: pmt.PMT_T
-
diff --git a/docs/sphinx/source/pmt/number.rst b/docs/sphinx/source/pmt/number.rst
deleted file mode 100644
index 226195a4be..0000000000
--- a/docs/sphinx/source/pmt/number.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-pmt: Numbers
-============
-
-.. autofunction:: pmt.is_number
diff --git a/docs/sphinx/source/pmt/pair.rst b/docs/sphinx/source/pmt/pair.rst
deleted file mode 100644
index 0bcd998143..0000000000
--- a/docs/sphinx/source/pmt/pair.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-pmt: Pairs
-==========
-
-.. autofunction:: pmt.is_pair
-.. autofunction:: pmt.cons
-.. autofunction:: pmt.car
-.. autofunction:: pmt.cdr
-.. autofunction:: pmt.set_car
-.. autofunction:: pmt.set_cdr
-.. autofunction:: pmt.caar
-.. autofunction:: pmt.cadddr
-.. autofunction:: pmt.caddr
-.. autofunction:: pmt.cadr
-.. autofunction:: pmt.cdar
-.. autofunction:: pmt.cddr
diff --git a/docs/sphinx/source/pmt/readwrite.rst b/docs/sphinx/source/pmt/readwrite.rst
deleted file mode 100644
index 2e3d6ca00a..0000000000
--- a/docs/sphinx/source/pmt/readwrite.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pmt: Read/Write
-===============
-
-.. autofunction:: pmt.is_eof_object
-.. autofunction:: pmt.read
-.. autofunction:: pmt.write
-.. autofunction:: pmt.write_string
diff --git a/docs/sphinx/source/pmt/real.rst b/docs/sphinx/source/pmt/real.rst
deleted file mode 100644
index 9ec783c870..0000000000
--- a/docs/sphinx/source/pmt/real.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-pmt: Reals
-==========
-
-.. autofunction:: pmt.is_real
-.. autofunction:: pmt.to_double
-.. autofunction:: pmt.from_double
-
-
-pmt: Complex
-============
-.. autofunction:: pmt.is_complex
-.. autofunction:: pmt.to_complex
-.. autofunction:: pmt.from_complex
-.. autofunction:: pmt.make_rectangular
diff --git a/docs/sphinx/source/pmt/serialize.rst b/docs/sphinx/source/pmt/serialize.rst
deleted file mode 100644
index 506180d0df..0000000000
--- a/docs/sphinx/source/pmt/serialize.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-pmt: Serialize
-==============
-
-.. autofunction:: pmt.serialize
-.. autofunction:: pmt.deserialize
-.. autofunction:: pmt.dump_sizeof
-.. autofunction:: pmt.serialize_str
-.. autofunction:: pmt.deserialize_str
diff --git a/docs/sphinx/source/pmt/symbol.rst b/docs/sphinx/source/pmt/symbol.rst
deleted file mode 100644
index ab74b8662e..0000000000
--- a/docs/sphinx/source/pmt/symbol.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pmt: Symbols
-============
-
-.. autofunction:: pmt.is_symbol
-.. autofunction:: pmt.string_to_symbol
-.. autofunction:: pmt.symbol_to_string
-.. autofunction:: pmt.intern
diff --git a/docs/sphinx/source/pmt/tuple.rst b/docs/sphinx/source/pmt/tuple.rst
deleted file mode 100644
index 568305ae06..0000000000
--- a/docs/sphinx/source/pmt/tuple.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pmt: BLOBs
-==========
-
-.. autofunction:: pmt.is_blob
-.. autofunction:: pmt.make_blob
-.. autofunction:: pmt.blob_data
-.. autofunction:: pmt.blob_length
diff --git a/docs/sphinx/source/pmt/vector.rst b/docs/sphinx/source/pmt/vector.rst
deleted file mode 100644
index fba34a21bb..0000000000
--- a/docs/sphinx/source/pmt/vector.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-pmt: Vectors
-============
-
-.. autofunction:: pmt.is_vector
-.. autofunction:: pmt.make_vector
-.. autofunction:: pmt.vector_ref
-.. autofunction:: pmt.vector_set
-.. autofunction:: pmt.vector_fill
-
-pmt: Uniform Numeric Vectors
-============================
-
-.. autofunction:: pmt.is_uniform_vector
-.. autofunction:: pmt.is_u8vector
-.. autofunction:: pmt.is_u16vector
-.. autofunction:: pmt.is_u32vector
-.. autofunction:: pmt.is_u64vector
-.. autofunction:: pmt.is_s16vector
-.. autofunction:: pmt.is_s32vector
-.. autofunction:: pmt.is_s64vector
-.. autofunction:: pmt.is_s8vector
-.. autofunction:: pmt.is_c32vector
-.. autofunction:: pmt.is_c64vector
-.. autofunction:: pmt.is_f32vector
-.. autofunction:: pmt.is_f64vector
-
-.. autofunction:: pmt.make_u8vector
-.. autofunction:: pmt.make_u16vector
-.. autofunction:: pmt.make_u32vector
-.. autofunction:: pmt.make_u64vector
-.. autofunction:: pmt.make_s8vector
-.. autofunction:: pmt.make_s16vector
-.. autofunction:: pmt.make_s32vector
-.. autofunction:: pmt.make_s64vector
-.. autofunction:: pmt.make_c32vector
-.. autofunction:: pmt.make_c64vector
-.. autofunction:: pmt.make_f32vector
-.. autofunction:: pmt.make_f64vector
-
-.. autofunction:: pmt.init_u8vector
-.. autofunction:: pmt.init_u16vector
-.. autofunction:: pmt.init_u32vector
-.. autofunction:: pmt.init_u64vector
-
-.. autofunction:: pmt.init_s8vector
-.. autofunction:: pmt.init_s16vector
-.. autofunction:: pmt.init_s32vector
-.. autofunction:: pmt.init_s64vector
-.. autofunction:: pmt.init_c32vector
-.. autofunction:: pmt.init_c64vector
-.. autofunction:: pmt.init_f32vector
-.. autofunction:: pmt.init_f64vector
-
-.. autofunction:: pmt.c32vector_ref
-.. autofunction:: pmt.c64vector_ref
-.. autofunction:: pmt.f32vector_ref
-.. autofunction:: pmt.f64vector_ref
-.. autofunction:: pmt.s16vector_ref
-.. autofunction:: pmt.s32vector_ref
-.. autofunction:: pmt.s64vector_ref
-.. autofunction:: pmt.s8vector_ref
-.. autofunction:: pmt.u16vector_ref
-.. autofunction:: pmt.u32vector_ref
-.. autofunction:: pmt.u64vector_ref
-.. autofunction:: pmt.u8vector_ref
-
-.. autofunction:: pmt.c32vector_set
-.. autofunction:: pmt.c64vector_set
-.. autofunction:: pmt.f32vector_set
-.. autofunction:: pmt.f64vector_set
-.. autofunction:: pmt.s16vector_set
-.. autofunction:: pmt.s32vector_set
-.. autofunction:: pmt.s64vector_set
-.. autofunction:: pmt.s8vector_set
-.. autofunction:: pmt.u16vector_set
-.. autofunction:: pmt.u32vector_set
-.. autofunction:: pmt.u64vector_set
-.. autofunction:: pmt.u8vector_set
-
-.. autofunction:: pmt.uniform_vector_elements
-
-.. autofunction:: pmt.c32vector_elements
-.. autofunction:: pmt.c64vector_elements
-.. autofunction:: pmt.f32vector_elements
-.. autofunction:: pmt.f64vector_elements
-.. autofunction:: pmt.s16vector_elements
-.. autofunction:: pmt.s32vector_elements
-.. autofunction:: pmt.s8vector_elements
-.. autofunction:: pmt.u16vector_elements
-.. autofunction:: pmt.u32vector_elements
-.. autofunction:: pmt.u8vector_elements
-
diff --git a/docs/sphinx/source/pyqt_filter.rst b/docs/sphinx/source/pyqt_filter.rst
deleted file mode 100644
index cc52abfa79..0000000000
--- a/docs/sphinx/source/pyqt_filter.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.pyqt_filter
-====================
-
-.. automodule:: gnuradio.pyqt_filter
-
-.. autoclass:: gnuradio.pyqt_filter.Ui_MainWindow
diff --git a/docs/sphinx/source/pyqt_plot.rst b/docs/sphinx/source/pyqt_plot.rst
deleted file mode 100644
index 3537a080bc..0000000000
--- a/docs/sphinx/source/pyqt_plot.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-gnuradio.pyqt_plot
-==================
-
-.. automodule:: gnuradio.pyqt_plot
-
-.. autoclass:: gnuradio.pyqt_plot.Ui_MainWindow
diff --git a/docs/sphinx/source/qtgui/index.rst b/docs/sphinx/source/qtgui/index.rst
deleted file mode 100644
index c6311d381a..0000000000
--- a/docs/sphinx/source/qtgui/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-gnuradio.qtgui
-==============
-
-.. automodule:: gnuradio.qtgui
-
-.. autoblock:: gnuradio.qtgui.sink_c
-.. autoblock:: gnuradio.qtgui.sink_f
-.. autoblock:: gnuradio.qtgui.time_sink_c
-.. autoblock:: gnuradio.qtgui.time_sink_f
diff --git a/docs/sphinx/source/qtgui_blocks.rst b/docs/sphinx/source/qtgui_blocks.rst
new file mode 100644
index 0000000000..4e0910d179
--- /dev/null
+++ b/docs/sphinx/source/qtgui_blocks.rst
@@ -0,0 +1,20 @@
+gnuradio.qtgui
+==============
+
+.. automodule:: gnuradio.qtgui
+
+.. autoblock:: gnuradio.qtgui.ber_sink_b
+.. autoblock:: gnuradio.qtgui.const_sink_c
+.. autoblock:: gnuradio.qtgui.freq_sink_c
+.. autoblock:: gnuradio.qtgui.freq_sink_f
+.. autoblock:: gnuradio.qtgui.histogram_sink_f
+.. autoblock:: gnuradio.qtgui.number_sink
+.. autoblock:: gnuradio.qtgui.sink_c
+.. autoblock:: gnuradio.qtgui.sink_f
+.. autoblock:: gnuradio.qtgui.time_raster_sink_b
+.. autoblock:: gnuradio.qtgui.time_raster_sink_f
+.. autoblock:: gnuradio.qtgui.time_sink_c
+.. autoblock:: gnuradio.qtgui.time_sink_f
+.. autoblock:: gnuradio.qtgui.vector_sink_f
+.. autoblock:: gnuradio.qtgui.waterfall_sink_c
+.. autoblock:: gnuradio.qtgui.waterfall_sink_f
diff --git a/docs/sphinx/source/runtime.rst b/docs/sphinx/source/runtime.rst
new file mode 100644
index 0000000000..b94dd90d5e
--- /dev/null
+++ b/docs/sphinx/source/runtime.rst
@@ -0,0 +1,65 @@
+gnuradio.gr
+===========
+
+.. autoclass:: gnuradio.gr.top_block
+
+.. autoclass:: gnuradio.gr.basic_block
+.. autoclass:: gnuradio.gr.block
+.. autoclass:: gnuradio.gr.sync_block
+.. autoclass:: gnuradio.gr.sync_decimator
+.. autoclass:: gnuradio.gr.sync_interpolator
+.. autoclass:: gnuradio.gr.tagged_stream_block
+.. autoclass:: gnuradio.gr.hier_block2
+
+.. autofunction:: gnuradio.gr.high_res_timer_now
+.. autofunction:: gnuradio.gr.high_res_timer_now_perfmon
+.. autofunction:: gnuradio.gr.high_res_timer_epoch
+.. autofunction:: gnuradio.gr.high_res_timer_tps
+
+.. autoclass:: gnuradio.gr.io_signature
+.. autoclass:: gnuradio.gr.io_signature2
+.. autoclass:: gnuradio.gr.io_signature3
+.. autoclass:: gnuradio.gr.io_signaturev
+
+.. autofunction:: gnuradio.gr.prefix
+.. autofunction:: gnuradio.gr.prefsdir
+.. autofunction:: gnuradio.gr.sysconfdir
+.. autofunction:: gnuradio.gr.version
+.. autofunction:: gnuradio.gr.major_version
+.. autofunction:: gnuradio.gr.api_version
+.. autofunction:: gnuradio.gr.minor_version
+.. autoclass:: gnuradio.gr.prefs
+.. autoclass:: gnuradio.gr.logger
+.. autofunction:: gnuradio.gr.logger_config
+.. autofunction:: gnuradio.gr.logger_get_names
+.. autofunction:: gnuradio.gr.logger_reset_config
+
+.. autoclass:: gnuradio.gr.tag_t
+.. autofunction:: gnuradio.gr.tag_t_offset_compare
+.. autofunction:: gnuradio.gr.tag_t_offset_compare_key
+.. autofunction:: gnuradio.gr.tag_to_pmt
+.. autofunction:: gnuradio.gr.tag_to_python
+.. autoclass:: gnuradio.gr.tag_utils
+
+.. autoclass:: gnuradio.gr.sizeof_gr_complex
+.. autoclass:: gnuradio.gr.sizeof_float
+.. autoclass:: gnuradio.gr.sizeof_int
+.. autoclass:: gnuradio.gr.sizeof_short
+.. autoclass:: gnuradio.gr.sizeof_char
+.. autoclass:: gnuradio.gr.sizeof_double
+
+.. autofunction:: gnuradio.gr.branchless_binary_slicer
+.. autofunction:: gnuradio.gr.binary_slicer
+.. autofunction:: gnuradio.gr.branchless_clip
+.. autofunction:: gnuradio.gr.clip
+.. autofunction:: gnuradio.gr.branchless_quad_0deg_slicer
+.. autofunction:: gnuradio.gr.quad_0deg_slicer
+.. autofunction:: gnuradio.gr.branchless_quad_45deg_slicer
+.. autofunction:: gnuradio.gr.quad_45deg_slicer
+
+.. autoclass:: gnuradio.gr.feval
+.. autoclass:: gnuradio.gr.feval_cc
+.. autoclass:: gnuradio.gr.feval_dd
+.. autoclass:: gnuradio.gr.feval_ll
+.. autoclass:: gnuradio.gr.feval_p
+.. autoclass:: gnuradio.gr.gateway
diff --git a/docs/sphinx/source/trellis/objs.rst b/docs/sphinx/source/trellis.rst
index b3a4b7a4ae..71a37b3e88 100644
--- a/docs/sphinx/source/trellis/objs.rst
+++ b/docs/sphinx/source/trellis.rst
@@ -1,5 +1,5 @@
-gnuradio.trellis: Object Classes
---------------------------------
+gnuradio.trellis
+================
.. autoclass:: gnuradio.trellis.fsm
.. autoclass:: gnuradio.trellis.interleaver
diff --git a/docs/sphinx/source/trellis/index.rst b/docs/sphinx/source/trellis/index.rst
deleted file mode 100644
index be929e971c..0000000000
--- a/docs/sphinx/source/trellis/index.rst
+++ /dev/null
@@ -1,90 +0,0 @@
-gnuradio.trellis
-================
-
-.. automodule:: gnuradio.trellis
-
-Object Classes
---------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.trellis.fsm
- gnuradio.trellis.interleaver
-
-Signal Processing Blocks
-------------------------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.trellis.constellation_metrics_cf
- gnuradio.trellis.encoder_bb
- gnuradio.trellis.encoder_bi
- gnuradio.trellis.encoder_bs
- gnuradio.trellis.encoder_ii
- gnuradio.trellis.encoder_si
- gnuradio.trellis.encoder_ss
- gnuradio.trellis.metrics_c
- gnuradio.trellis.metrics_f
- gnuradio.trellis.metrics_i
- gnuradio.trellis.metrics_s
- gnuradio.trellis.pccc_decoder_b
- gnuradio.trellis.pccc_decoder_combined_cb
- gnuradio.trellis.pccc_decoder_combined_ci
- gnuradio.trellis.pccc_decoder_combined_cs
- gnuradio.trellis.pccc_decoder_combined_fb
- gnuradio.trellis.pccc_decoder_combined_fi
- gnuradio.trellis.pccc_decoder_combined_fs
- gnuradio.trellis.pccc_decoder_i
- gnuradio.trellis.pccc_decoder_s
- gnuradio.trellis.pccc_encoder_bb
- gnuradio.trellis.pccc_encoder_bi
- gnuradio.trellis.pccc_encoder_bs
- gnuradio.trellis.pccc_encoder_ii
- gnuradio.trellis.pccc_encoder_si
- gnuradio.trellis.pccc_encoder_ss
- gnuradio.trellis.permutation
- gnuradio.trellis.sccc_decoder_b
- gnuradio.trellis.sccc_decoder_combined_cb
- gnuradio.trellis.sccc_decoder_combined_ci
- gnuradio.trellis.sccc_decoder_combined_cs
- gnuradio.trellis.sccc_decoder_combined_fb
- gnuradio.trellis.sccc_decoder_combined_fi
- gnuradio.trellis.sccc_decoder_combined_fs
- gnuradio.trellis.sccc_decoder_i
- gnuradio.trellis.sccc_decoder_s
- gnuradio.trellis.sccc_encoder_bb
- gnuradio.trellis.sccc_encoder_bi
- gnuradio.trellis.sccc_encoder_bs
- gnuradio.trellis.sccc_encoder_ii
- gnuradio.trellis.sccc_encoder_si
- gnuradio.trellis.sccc_encoder_ss
- gnuradio.trellis.siso_combined_f
- gnuradio.trellis.siso_f
- gnuradio.trellis.viterbi_b
- gnuradio.trellis.viterbi_combined_cb
- gnuradio.trellis.viterbi_combined_ci
- gnuradio.trellis.viterbi_combined_cs
- gnuradio.trellis.viterbi_combined_fb
- gnuradio.trellis.viterbi_combined_fi
- gnuradio.trellis.viterbi_combined_fs
- gnuradio.trellis.viterbi_combined_ib
- gnuradio.trellis.viterbi_combined_ii
- gnuradio.trellis.viterbi_combined_is
- gnuradio.trellis.viterbi_combined_sb
- gnuradio.trellis.viterbi_combined_si
- gnuradio.trellis.viterbi_combined_ss
- gnuradio.trellis.viterbi_i
- gnuradio.trellis.viterbi_s
-
-Constants
----------
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.trellis.TRELLIS_MIN_SUM
- gnuradio.trellis.TRELLIS_SUM_PRODUCT
-
-
diff --git a/docs/sphinx/source/trellis/blks.rst b/docs/sphinx/source/trellis_blocks.rst
index a2eda07d61..a872894a50 100644
--- a/docs/sphinx/source/trellis/blks.rst
+++ b/docs/sphinx/source/trellis_blocks.rst
@@ -1,5 +1,7 @@
-gnuradio.trellis: Signal Processing Blocks
-==========================================
+gnuradio.trellis
+================
+
+.. automodule:: gnuradio.trellis
.. autoblock:: gnuradio.trellis.constellation_metrics_cf
.. autoblock:: gnuradio.trellis.encoder_bb
diff --git a/docs/sphinx/source/uhd.rst b/docs/sphinx/source/uhd.rst
index 1f381e23b9..a9669622c6 100644
--- a/docs/sphinx/source/uhd.rst
+++ b/docs/sphinx/source/uhd.rst
@@ -1,18 +1,4 @@
gnuradio.uhd
============
-.. automodule:: gnuradio.uhd
-
-.. autoblock:: gnuradio.uhd.usrp_sink
-.. autoblock:: gnuradio.uhd.usrp_source
-.. autoblock:: gnuradio.uhd.amsg_source
-.. autoclass:: gnuradio.uhd.stream_cmd_t
-.. autoclass:: gnuradio.uhd.time_spec_t
-.. autoclass:: gnuradio.uhd.meta_range_t
-.. autoclass:: gnuradio.uhd.stream_args_t
-.. autoclass:: gnuradio.uhd.device_addr_t
-.. autoclass:: gnuradio.uhd.tune_request_t
-.. autoclass:: gnuradio.uhd.tune_result_t
-.. autoclass:: gnuradio.uhd.sensor_value_t
-
-
+.. autoclass:: gnuradio.uhd.usrp_block
diff --git a/docs/sphinx/source/uhd_blocks.rst b/docs/sphinx/source/uhd_blocks.rst
new file mode 100644
index 0000000000..c9da6ccddb
--- /dev/null
+++ b/docs/sphinx/source/uhd_blocks.rst
@@ -0,0 +1,8 @@
+gnuradio.uhd
+============
+
+.. automodule:: gnuradio.uhd
+
+.. autoblock:: gnuradio.uhd.amsg_source
+.. autoblock:: gnuradio.uhd.usrp_sink
+.. autoblock:: gnuradio.uhd.usrp_source
diff --git a/docs/sphinx/source/video_sdl.rst b/docs/sphinx/source/video_sdl_blocks.rst
index e4fc5acac3..e4fc5acac3 100644
--- a/docs/sphinx/source/video_sdl.rst
+++ b/docs/sphinx/source/video_sdl_blocks.rst
diff --git a/docs/sphinx/source/vocoder.rst b/docs/sphinx/source/vocoder.rst
new file mode 100644
index 0000000000..9ab29759f6
--- /dev/null
+++ b/docs/sphinx/source/vocoder.rst
@@ -0,0 +1,6 @@
+gnuradio.vocoder
+================
+
+.. autoclass:: gnuradio.vocoder.codec2
+.. autoclass:: gnuradio.vocoder.cvsd_encode_fb
+.. autoclass:: gnuradio.vocoder.cvsd_decode_bf
diff --git a/docs/sphinx/source/vocoder/index.rst b/docs/sphinx/source/vocoder/index.rst
deleted file mode 100644
index 2e31809958..0000000000
--- a/docs/sphinx/source/vocoder/index.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-gnuradio.vocoder
-================
-
-.. automodule:: gnuradio.vocoder
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.vocoder.alaw_decode_bs
- gnuradio.vocoder.alaw_encode_sb
- gnuradio.vocoder.codec2_decode_ps
- gnuradio.vocoder.codec2_encode_sp
- gnuradio.vocoder.cvsd_decode_bf
- gnuradio.vocoder.cvsd_decode_bs
- gnuradio.vocoder.cvsd_encode_fb
- gnuradio.vocoder.cvsd_encode_sb
- gnuradio.vocoder.g721_decode_bs
- gnuradio.vocoder.g721_encode_sb
- gnuradio.vocoder.g723_24_decode_bs
- gnuradio.vocoder.g723_24_encode_sb
- gnuradio.vocoder.g723_40_decode_bs
- gnuradio.vocoder.g723_40_encode_sb
- gnuradio.vocoder.gsm_fr_decode_ps
- gnuradio.vocoder.gsm_fr_encode_sp
- gnuradio.vocoder.ulaw_decode_bs
- gnuradio.vocoder.ulaw_encode_sb
diff --git a/docs/sphinx/source/vocoder/blks.rst b/docs/sphinx/source/vocoder_blocks.rst
index ea20bc44be..ab8e5f650f 100644
--- a/docs/sphinx/source/vocoder/blks.rst
+++ b/docs/sphinx/source/vocoder_blocks.rst
@@ -1,6 +1,8 @@
gnuradio.vocoder
================
+.. automodule:: gnuradio.vocoder
+
.. autoblock:: gnuradio.vocoder.alaw_decode_bs
.. autoblock:: gnuradio.vocoder.alaw_encode_sb
.. autoblock:: gnuradio.vocoder.codec2_decode_ps
diff --git a/docs/sphinx/source/wavelet.rst b/docs/sphinx/source/wavelet_blocks.rst
index 679bab70c0..679bab70c0 100644
--- a/docs/sphinx/source/wavelet.rst
+++ b/docs/sphinx/source/wavelet_blocks.rst
diff --git a/docs/sphinx/source/wxgui.rst b/docs/sphinx/source/wxgui.rst
new file mode 100644
index 0000000000..dcaa4a8e4a
--- /dev/null
+++ b/docs/sphinx/source/wxgui.rst
@@ -0,0 +1,5 @@
+gnuradio.wxgui
+==============
+
+.. autoclass:: gnuradio.wxgui.oscope_sink_x
+.. autoclass:: gnuradio.wxgui.histo_sink_f
diff --git a/docs/sphinx/source/wxgui/blks.rst b/docs/sphinx/source/wxgui/blks.rst
deleted file mode 100644
index 930474ed19..0000000000
--- a/docs/sphinx/source/wxgui/blks.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-gnuradio.wxgui
-=====================
-
-.. autoblock:: gnuradio.wxgui.histo_sink_f
-.. autoblock:: gnuradio.wxgui.oscope_sink_f
-
-.. autopyblock:: gnuradio.wxgui.constsink_gl.const_sink_c
-.. autopyblock:: gnuradio.wxgui.fftsink2.fft_sink_c
-.. autopyblock:: gnuradio.wxgui.fftsink2.fft_sink_f
-.. autopyblock:: gnuradio.wxgui.histosink_gl.histo_sink_f
-.. autopyblock:: gnuradio.wxgui.numbersink2.number_sink_c
-.. autopyblock:: gnuradio.wxgui.numbersink2.number_sink_f
-.. autopyblock:: gnuradio.wxgui.scopesink2.scope_sink_c
-.. autopyblock:: gnuradio.wxgui.scopesink2.scope_sink_f
-.. autopyblock:: gnuradio.wxgui.waterfallsink2.waterfall_sink_c
-.. autopyblock:: gnuradio.wxgui.waterfallsink2.waterfall_sink_f
diff --git a/docs/sphinx/source/wxgui/index.rst b/docs/sphinx/source/wxgui/index.rst
deleted file mode 100644
index af0a34a483..0000000000
--- a/docs/sphinx/source/wxgui/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-gnuradio.wxgui
-==============
-
-.. automodule:: gnuradio.wxgui
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.wxgui.histo_sink_f
- gnuradio.wxgui.oscope_sink_f
- gnuradio.wxgui.common.const_sink_c
- gnuradio.wxgui.fftsink2.fft_sink_c
- gnuradio.wxgui.fftsink2.fft_sink_f
- gnuradio.wxgui.histosink_gl.histosink_f
- gnuradio.wxgui.numbersink2.number_sink_c
- gnuradio.wxgui.numbersink2.number_sink_f
- gnuradio.wxgui.scopesink2.scope_sink_c
- gnuradio.wxgui.scopesink2.scope_sink_f
- gnuradio.wxgui.waterfallsink2.waterfall_sink_c
- gnuradio.wxgui.waterfallsink2.waterfall_sink_f
diff --git a/docs/sphinx/source/wxgui_blocks.rst b/docs/sphinx/source/wxgui_blocks.rst
new file mode 100644
index 0000000000..ccccd854da
--- /dev/null
+++ b/docs/sphinx/source/wxgui_blocks.rst
@@ -0,0 +1,7 @@
+gnuradio.wxgui
+==============
+
+.. automodule:: gnuradio.wxgui
+
+.. autoblock:: gnuradio.wxgui.histo_sink_f
+.. autoblock:: gnuradio.wxgui.oscope_sink_f
diff --git a/docs/sphinx/source/zeromq_blocks.rst b/docs/sphinx/source/zeromq_blocks.rst
new file mode 100644
index 0000000000..add946ac1a
--- /dev/null
+++ b/docs/sphinx/source/zeromq_blocks.rst
@@ -0,0 +1,17 @@
+gnuradio.zeromq
+===============
+
+.. automodule:: gnuradio.zeromq
+
+.. autoblock:: gnuradio.zeromq.pub_msg_sink
+.. autoblock:: gnuradio.zeromq.pub_sink
+.. autoblock:: gnuradio.zeromq.pull_msg_source
+.. autoblock:: gnuradio.zeromq.pull_source
+.. autoblock:: gnuradio.zeromq.push_msg_sink
+.. autoblock:: gnuradio.zeromq.push_sink
+.. autoblock:: gnuradio.zeromq.rep_msg_sink
+.. autoblock:: gnuradio.zeromq.rep_sink
+.. autoblock:: gnuradio.zeromq.req_msg_source
+.. autoblock:: gnuradio.zeromq.req_source
+.. autoblock:: gnuradio.zeromq.sub_msg_source
+.. autoblock:: gnuradio.zeromq.sub_source
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
index a05ea3a28e..bb53e02cc4 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
@@ -20,18 +20,23 @@
# Boston, MA 02110-1301, USA.
#
+import sys, time, re, pprint
import random,math,operator
-import networkx as nx
-import matplotlib
-matplotlib.use("QT4Agg")
-import matplotlib.pyplot as plt
-from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
-from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
-from matplotlib.figure import Figure
+try:
+ import networkx as nx
+ import matplotlib
+ matplotlib.use("QT4Agg")
+ import matplotlib.pyplot as plt
+ from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
+ from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
+ from matplotlib.figure import Figure
+except ImportError:
+ print sys.argv[0], "requires networkx and matplotlib.", \
+ "Please check that they are installed and try again."
+ sys.exit(1)
from PyQt4 import QtCore,Qt,Qwt5
import PyQt4.QtGui as QtGui
-import sys, time, re, pprint
import itertools
from gnuradio import gr, ctrlport
@@ -582,7 +587,7 @@ class MForm(QtGui.QWidget):
def pauseFlowgraph(self):
knobs = [self.radioclient.Knob(self.top_block + "::lock"),
- self.radioclient.Knob(self.top_block + "::stop")]
+ self.radioclient.Knob(self.top_block + "::stop")]
k = self.radioclient.setKnobs(knobs)
def unpauseFlowgraph(self):
diff --git a/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h b/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h
index cdaaeb285a..4d489d1534 100644
--- a/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h
+++ b/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h
@@ -319,7 +319,7 @@ namespace gr {
* \brief Returns the current error of the control loop.
*/
virtual float error() const = 0;
-
+
/*!
* \brief Returns the current rate of the control loop.
*/
diff --git a/gr-digital/python/digital/ofdm_packet_utils.py b/gr-digital/python/digital/ofdm_packet_utils.py
index c49dfe4f8e..e9ca641c7a 100644
--- a/gr-digital/python/digital/ofdm_packet_utils.py
+++ b/gr-digital/python/digital/ofdm_packet_utils.py
@@ -1,23 +1,23 @@
#
# Copyright 2007 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
import struct
import numpy
@@ -47,7 +47,7 @@ def conv_1_0_string_to_packed_binary_string(s):
"""
if not is_1_0_string(s):
raise ValueError, "Input must be a string containing only 0's and 1's"
-
+
# pad to multiple of 8
padded = False
rem = len(s) % 8
@@ -67,7 +67,7 @@ def conv_1_0_string_to_packed_binary_string(s):
r.append(chr(t))
i += 8
return (''.join(r), padded)
-
+
def is_1_0_string(s):
if not isinstance(s, str):
@@ -107,7 +107,7 @@ def make_packet(payload, samples_per_symbol, bits_per_symbol,
bits_per_symbol: (needed for padding calculation) (int)
whitener_offset: offset into whitener string to use [0-16)
whitening: Turn whitener on or off (bool)
-
+
Packet will have access code at the beginning, followed by length, payload
and finally CRC-32.
"""
@@ -162,7 +162,7 @@ def _npadding_bytes(pkt_byte_len, samples_per_symbol, bits_per_symbol):
if r == 0:
return 0
return byte_modulus - r
-
+
def unmake_packet(whitened_payload_with_crc, whitener_offset=0, dewhitening=1):
"""
@@ -191,262 +191,261 @@ def unmake_packet(whitened_payload_with_crc, whitener_offset=0, dewhitening=1):
# FYI, this PN code is the output of a 15-bit LFSR
random_mask_tuple = (
- 255, 63, 0, 16, 0, 12, 0, 5, 192, 3, 16, 1, 204, 0, 85, 192,
- 63, 16, 16, 12, 12, 5, 197, 195, 19, 17, 205, 204, 85, 149, 255, 47,
- 0, 28, 0, 9, 192, 6, 208, 2, 220, 1, 153, 192, 106, 208, 47, 28,
- 28, 9, 201, 198, 214, 210, 222, 221, 152, 89, 170, 186, 255, 51, 0, 21,
- 192, 15, 16, 4, 12, 3, 69, 193, 243, 16, 69, 204, 51, 21, 213, 207,
- 31, 20, 8, 15, 70, 132, 50, 227, 85, 137, 255, 38, 192, 26, 208, 11,
- 28, 7, 73, 194, 182, 209, 182, 220, 118, 217, 230, 218, 202, 219, 23, 27,
- 78, 139, 116, 103, 103, 106, 170, 175, 63, 60, 16, 17, 204, 12, 85, 197,
- 255, 19, 0, 13, 192, 5, 144, 3, 44, 1, 221, 192, 89, 144, 58, 236,
- 19, 13, 205, 197, 149, 147, 47, 45, 220, 29, 153, 201, 170, 214, 255, 30,
- 192, 8, 80, 6, 188, 2, 241, 193, 132, 80, 99, 124, 41, 225, 222, 200,
- 88, 86, 186, 190, 243, 48, 69, 212, 51, 31, 85, 200, 63, 22, 144, 14,
- 236, 4, 77, 195, 117, 145, 231, 44, 74, 157, 247, 41, 134, 158, 226, 232,
- 73, 142, 182, 228, 118, 203, 102, 215, 106, 222, 175, 24, 124, 10, 161, 199,
- 56, 82, 146, 189, 173, 177, 189, 180, 113, 183, 100, 118, 171, 102, 255, 106,
- 192, 47, 16, 28, 12, 9, 197, 198, 211, 18, 221, 205, 153, 149, 170, 239,
- 63, 12, 16, 5, 204, 3, 21, 193, 207, 16, 84, 12, 63, 69, 208, 51,
- 28, 21, 201, 207, 22, 212, 14, 223, 68, 88, 51, 122, 149, 227, 47, 9,
- 220, 6, 217, 194, 218, 209, 155, 28, 107, 73, 239, 118, 204, 38, 213, 218,
- 223, 27, 24, 11, 74, 135, 119, 34, 166, 153, 186, 234, 243, 15, 5, 196,
- 3, 19, 65, 205, 240, 85, 132, 63, 35, 80, 25, 252, 10, 193, 199, 16,
- 82, 140, 61, 165, 209, 187, 28, 115, 73, 229, 246, 203, 6, 215, 66, 222,
- 177, 152, 116, 106, 167, 111, 58, 172, 19, 61, 205, 209, 149, 156, 111, 41,
- 236, 30, 205, 200, 85, 150, 191, 46, 240, 28, 68, 9, 243, 70, 197, 242,
- 211, 5, 157, 195, 41, 145, 222, 236, 88, 77, 250, 181, 131, 55, 33, 214,
- 152, 94, 234, 184, 79, 50, 180, 21, 183, 79, 54, 180, 22, 247, 78, 198,
- 180, 82, 247, 125, 134, 161, 162, 248, 121, 130, 162, 225, 185, 136, 114, 230,
- 165, 138, 251, 39, 3, 90, 129, 251, 32, 67, 88, 49, 250, 148, 67, 47,
- 113, 220, 36, 89, 219, 122, 219, 99, 27, 105, 203, 110, 215, 108, 94, 173,
- 248, 125, 130, 161, 161, 184, 120, 114, 162, 165, 185, 187, 50, 243, 85, 133,
- 255, 35, 0, 25, 192, 10, 208, 7, 28, 2, 137, 193, 166, 208, 122, 220,
- 35, 25, 217, 202, 218, 215, 27, 30, 139, 72, 103, 118, 170, 166, 255, 58,
- 192, 19, 16, 13, 204, 5, 149, 195, 47, 17, 220, 12, 89, 197, 250, 211,
- 3, 29, 193, 201, 144, 86, 236, 62, 205, 208, 85, 156, 63, 41, 208, 30,
- 220, 8, 89, 198, 186, 210, 243, 29, 133, 201, 163, 22, 249, 206, 194, 212,
- 81, 159, 124, 104, 33, 238, 152, 76, 106, 181, 239, 55, 12, 22, 133, 206,
- 227, 20, 73, 207, 118, 212, 38, 223, 90, 216, 59, 26, 147, 75, 45, 247,
- 93, 134, 185, 162, 242, 249, 133, 130, 227, 33, 137, 216, 102, 218, 170, 219,
- 63, 27, 80, 11, 124, 7, 97, 194, 168, 81, 190, 188, 112, 113, 228, 36,
- 75, 91, 119, 123, 102, 163, 106, 249, 239, 2, 204, 1, 149, 192, 111, 16,
- 44, 12, 29, 197, 201, 147, 22, 237, 206, 205, 148, 85, 175, 127, 60, 32,
- 17, 216, 12, 90, 133, 251, 35, 3, 89, 193, 250, 208, 67, 28, 49, 201,
- 212, 86, 223, 126, 216, 32, 90, 152, 59, 42, 147, 95, 45, 248, 29, 130,
- 137, 161, 166, 248, 122, 194, 163, 17, 185, 204, 114, 213, 229, 159, 11, 40,
- 7, 94, 130, 184, 97, 178, 168, 117, 190, 167, 48, 122, 148, 35, 47, 89,
- 220, 58, 217, 211, 26, 221, 203, 25, 151, 74, 238, 183, 12, 118, 133, 230,
- 227, 10, 201, 199, 22, 210, 142, 221, 164, 89, 187, 122, 243, 99, 5, 233,
- 195, 14, 209, 196, 92, 83, 121, 253, 226, 193, 137, 144, 102, 236, 42, 205,
- 223, 21, 152, 15, 42, 132, 31, 35, 72, 25, 246, 138, 198, 231, 18, 202,
- 141, 151, 37, 174, 155, 60, 107, 81, 239, 124, 76, 33, 245, 216, 71, 26,
- 178, 139, 53, 167, 87, 58, 190, 147, 48, 109, 212, 45, 159, 93, 168, 57,
- 190, 146, 240, 109, 132, 45, 163, 93, 185, 249, 178, 194, 245, 145, 135, 44,
- 98, 157, 233, 169, 142, 254, 228, 64, 75, 112, 55, 100, 22, 171, 78, 255,
- 116, 64, 39, 112, 26, 164, 11, 59, 71, 83, 114, 189, 229, 177, 139, 52,
- 103, 87, 106, 190, 175, 48, 124, 20, 33, 207, 88, 84, 58, 191, 83, 48,
- 61, 212, 17, 159, 76, 104, 53, 238, 151, 12, 110, 133, 236, 99, 13, 233,
- 197, 142, 211, 36, 93, 219, 121, 155, 98, 235, 105, 143, 110, 228, 44, 75,
- 93, 247, 121, 134, 162, 226, 249, 137, 130, 230, 225, 138, 200, 103, 22, 170,
- 142, 255, 36, 64, 27, 112, 11, 100, 7, 107, 66, 175, 113, 188, 36, 113,
- 219, 100, 91, 107, 123, 111, 99, 108, 41, 237, 222, 205, 152, 85, 170, 191,
- 63, 48, 16, 20, 12, 15, 69, 196, 51, 19, 85, 205, 255, 21, 128, 15,
- 32, 4, 24, 3, 74, 129, 247, 32, 70, 152, 50, 234, 149, 143, 47, 36,
- 28, 27, 73, 203, 118, 215, 102, 222, 170, 216, 127, 26, 160, 11, 56, 7,
- 82, 130, 189, 161, 177, 184, 116, 114, 167, 101, 186, 171, 51, 63, 85, 208,
- 63, 28, 16, 9, 204, 6, 213, 194, 223, 17, 152, 12, 106, 133, 239, 35,
- 12, 25, 197, 202, 211, 23, 29, 206, 137, 148, 102, 239, 106, 204, 47, 21,
- 220, 15, 25, 196, 10, 211, 71, 29, 242, 137, 133, 166, 227, 58, 201, 211,
- 22, 221, 206, 217, 148, 90, 239, 123, 12, 35, 69, 217, 243, 26, 197, 203,
- 19, 23, 77, 206, 181, 148, 119, 47, 102, 156, 42, 233, 223, 14, 216, 4,
- 90, 131, 123, 33, 227, 88, 73, 250, 182, 195, 54, 209, 214, 220, 94, 217,
- 248, 90, 194, 187, 17, 179, 76, 117, 245, 231, 7, 10, 130, 135, 33, 162,
- 152, 121, 170, 162, 255, 57, 128, 18, 224, 13, 136, 5, 166, 131, 58, 225,
- 211, 8, 93, 198, 185, 146, 242, 237, 133, 141, 163, 37, 185, 219, 50, 219,
- 85, 155, 127, 43, 96, 31, 104, 8, 46, 134, 156, 98, 233, 233, 142, 206,
- 228, 84, 75, 127, 119, 96, 38, 168, 26, 254, 139, 0, 103, 64, 42, 176,
- 31, 52, 8, 23, 70, 142, 178, 228, 117, 139, 103, 39, 106, 154, 175, 43,
- 60, 31, 81, 200, 60, 86, 145, 254, 236, 64, 77, 240, 53, 132, 23, 35,
- 78, 153, 244, 106, 199, 111, 18, 172, 13, 189, 197, 177, 147, 52, 109, 215,
- 109, 158, 173, 168, 125, 190, 161, 176, 120, 116, 34, 167, 89, 186, 186, 243,
- 51, 5, 213, 195, 31, 17, 200, 12, 86, 133, 254, 227, 0, 73, 192, 54,
- 208, 22, 220, 14, 217, 196, 90, 211, 123, 29, 227, 73, 137, 246, 230, 198,
- 202, 210, 215, 29, 158, 137, 168, 102, 254, 170, 192, 127, 16, 32, 12, 24,
- 5, 202, 131, 23, 33, 206, 152, 84, 106, 191, 111, 48, 44, 20, 29, 207,
- 73, 148, 54, 239, 86, 204, 62, 213, 208, 95, 28, 56, 9, 210, 134, 221,
- 162, 217, 185, 154, 242, 235, 5, 143, 67, 36, 49, 219, 84, 91, 127, 123,
- 96, 35, 104, 25, 238, 138, 204, 103, 21, 234, 143, 15, 36, 4, 27, 67,
- 75, 113, 247, 100, 70, 171, 114, 255, 101, 128, 43, 32, 31, 88, 8, 58,
- 134, 147, 34, 237, 217, 141, 154, 229, 171, 11, 63, 71, 80, 50, 188, 21,
- 177, 207, 52, 84, 23, 127, 78, 160, 52, 120, 23, 98, 142, 169, 164, 126,
- 251, 96, 67, 104, 49, 238, 148, 76, 111, 117, 236, 39, 13, 218, 133, 155,
- 35, 43, 89, 223, 122, 216, 35, 26, 153, 203, 42, 215, 95, 30, 184, 8,
- 114, 134, 165, 162, 251, 57, 131, 82, 225, 253, 136, 65, 166, 176, 122, 244,
- 35, 7, 89, 194, 186, 209, 179, 28, 117, 201, 231, 22, 202, 142, 215, 36,
- 94, 155, 120, 107, 98, 175, 105, 188, 46, 241, 220, 68, 89, 243, 122, 197,
- 227, 19, 9, 205, 198, 213, 146, 223, 45, 152, 29, 170, 137, 191, 38, 240,
- 26, 196, 11, 19, 71, 77, 242, 181, 133, 183, 35, 54, 153, 214, 234, 222,
- 207, 24, 84, 10, 191, 71, 48, 50, 148, 21, 175, 79, 60, 52, 17, 215,
- 76, 94, 181, 248, 119, 2, 166, 129, 186, 224, 115, 8, 37, 198, 155, 18,
- 235, 77, 143, 117, 164, 39, 59, 90, 147, 123, 45, 227, 93, 137, 249, 166,
- 194, 250, 209, 131, 28, 97, 201, 232, 86, 206, 190, 212, 112, 95, 100, 56,
- 43, 82, 159, 125, 168, 33, 190, 152, 112, 106, 164, 47, 59, 92, 19, 121,
- 205, 226, 213, 137, 159, 38, 232, 26, 206, 139, 20, 103, 79, 106, 180, 47,
- 55, 92, 22, 185, 206, 242, 212, 69, 159, 115, 40, 37, 222, 155, 24, 107,
- 74, 175, 119, 60, 38, 145, 218, 236, 91, 13, 251, 69, 131, 115, 33, 229,
- 216, 75, 26, 183, 75, 54, 183, 86, 246, 190, 198, 240, 82, 196, 61, 147,
- 81, 173, 252, 125, 129, 225, 160, 72, 120, 54, 162, 150, 249, 174, 194, 252,
- 81, 129, 252, 96, 65, 232, 48, 78, 148, 52, 111, 87, 108, 62, 173, 208,
- 125, 156, 33, 169, 216, 126, 218, 160, 91, 56, 59, 82, 147, 125, 173, 225,
- 189, 136, 113, 166, 164, 122, 251, 99, 3, 105, 193, 238, 208, 76, 92, 53,
- 249, 215, 2, 222, 129, 152, 96, 106, 168, 47, 62, 156, 16, 105, 204, 46,
- 213, 220, 95, 25, 248, 10, 194, 135, 17, 162, 140, 121, 165, 226, 251, 9,
- 131, 70, 225, 242, 200, 69, 150, 179, 46, 245, 220, 71, 25, 242, 138, 197,
- 167, 19, 58, 141, 211, 37, 157, 219, 41, 155, 94, 235, 120, 79, 98, 180,
- 41, 183, 94, 246, 184, 70, 242, 178, 197, 181, 147, 55, 45, 214, 157, 158,
- 233, 168, 78, 254, 180, 64, 119, 112, 38, 164, 26, 251, 75, 3, 119, 65,
- 230, 176, 74, 244, 55, 7, 86, 130, 190, 225, 176, 72, 116, 54, 167, 86,
- 250, 190, 195, 48, 81, 212, 60, 95, 81, 248, 60, 66, 145, 241, 172, 68,
- 125, 243, 97, 133, 232, 99, 14, 169, 196, 126, 211, 96, 93, 232, 57, 142,
- 146, 228, 109, 139, 109, 167, 109, 186, 173, 179, 61, 181, 209, 183, 28, 118,
- 137, 230, 230, 202, 202, 215, 23, 30, 142, 136, 100, 102, 171, 106, 255, 111,
- 0, 44, 0, 29, 192, 9, 144, 6, 236, 2, 205, 193, 149, 144, 111, 44,
- 44, 29, 221, 201, 153, 150, 234, 238, 207, 12, 84, 5, 255, 67, 0, 49,
- 192, 20, 80, 15, 124, 4, 33, 195, 88, 81, 250, 188, 67, 49, 241, 212,
- 68, 95, 115, 120, 37, 226, 155, 9, 171, 70, 255, 114, 192, 37, 144, 27,
- 44, 11, 93, 199, 121, 146, 162, 237, 185, 141, 178, 229, 181, 139, 55, 39,
- 86, 154, 190, 235, 48, 79, 84, 52, 63, 87, 80, 62, 188, 16, 113, 204,
- 36, 85, 219, 127, 27, 96, 11, 104, 7, 110, 130, 172, 97, 189, 232, 113,
- 142, 164, 100, 123, 107, 99, 111, 105, 236, 46, 205, 220, 85, 153, 255, 42,
- 192, 31, 16, 8, 12, 6, 133, 194, 227, 17, 137, 204, 102, 213, 234, 223,
- 15, 24, 4, 10, 131, 71, 33, 242, 152, 69, 170, 179, 63, 53, 208, 23,
- 28, 14, 137, 196, 102, 211, 106, 221, 239, 25, 140, 10, 229, 199, 11, 18,
- 135, 77, 162, 181, 185, 183, 50, 246, 149, 134, 239, 34, 204, 25, 149, 202,
- 239, 23, 12, 14, 133, 196, 99, 19, 105, 205, 238, 213, 140, 95, 37, 248,
- 27, 2, 139, 65, 167, 112, 122, 164, 35, 59, 89, 211, 122, 221, 227, 25,
- 137, 202, 230, 215, 10, 222, 135, 24, 98, 138, 169, 167, 62, 250, 144, 67,
- 44, 49, 221, 212, 89, 159, 122, 232, 35, 14, 153, 196, 106, 211, 111, 29,
- 236, 9, 141, 198, 229, 146, 203, 45, 151, 93, 174, 185, 188, 114, 241, 229,
- 132, 75, 35, 119, 89, 230, 186, 202, 243, 23, 5, 206, 131, 20, 97, 207,
- 104, 84, 46, 191, 92, 112, 57, 228, 18, 203, 77, 151, 117, 174, 167, 60,
- 122, 145, 227, 44, 73, 221, 246, 217, 134, 218, 226, 219, 9, 155, 70, 235,
- 114, 207, 101, 148, 43, 47, 95, 92, 56, 57, 210, 146, 221, 173, 153, 189,
- 170, 241, 191, 4, 112, 3, 100, 1, 235, 64, 79, 112, 52, 36, 23, 91,
- 78, 187, 116, 115, 103, 101, 234, 171, 15, 63, 68, 16, 51, 76, 21, 245,
- 207, 7, 20, 2, 143, 65, 164, 48, 123, 84, 35, 127, 89, 224, 58, 200,
- 19, 22, 141, 206, 229, 148, 75, 47, 119, 92, 38, 185, 218, 242, 219, 5,
- 155, 67, 43, 113, 223, 100, 88, 43, 122, 159, 99, 40, 41, 222, 158, 216,
- 104, 90, 174, 187, 60, 115, 81, 229, 252, 75, 1, 247, 64, 70, 176, 50,
- 244, 21, 135, 79, 34, 180, 25, 183, 74, 246, 183, 6, 246, 130, 198, 225,
- 146, 200, 109, 150, 173, 174, 253, 188, 65, 177, 240, 116, 68, 39, 115, 90,
- 165, 251, 59, 3, 83, 65, 253, 240, 65, 132, 48, 99, 84, 41, 255, 94,
- 192, 56, 80, 18, 188, 13, 177, 197, 180, 83, 55, 125, 214, 161, 158, 248,
- 104, 66, 174, 177, 188, 116, 113, 231, 100, 74, 171, 119, 63, 102, 144, 42,
- 236, 31, 13, 200, 5, 150, 131, 46, 225, 220, 72, 89, 246, 186, 198, 243,
- 18, 197, 205, 147, 21, 173, 207, 61, 148, 17, 175, 76, 124, 53, 225, 215,
- 8, 94, 134, 184, 98, 242, 169, 133, 190, 227, 48, 73, 212, 54, 223, 86,
- 216, 62, 218, 144, 91, 44, 59, 93, 211, 121, 157, 226, 233, 137, 142, 230,
- 228, 74, 203, 119, 23, 102, 142, 170, 228, 127, 11, 96, 7, 104, 2, 174,
- 129, 188, 96, 113, 232, 36, 78, 155, 116, 107, 103, 111, 106, 172, 47, 61,
- 220, 17, 153, 204, 106, 213, 239, 31, 12, 8, 5, 198, 131, 18, 225, 205,
- 136, 85, 166, 191, 58, 240, 19, 4, 13, 195, 69, 145, 243, 44, 69, 221,
- 243, 25, 133, 202, 227, 23, 9, 206, 134, 212, 98, 223, 105, 152, 46, 234,
- 156, 79, 41, 244, 30, 199, 72, 82, 182, 189, 182, 241, 182, 196, 118, 211,
- 102, 221, 234, 217, 143, 26, 228, 11, 11, 71, 71, 114, 178, 165, 181, 187,
- 55, 51, 86, 149, 254, 239, 0, 76, 0, 53, 192, 23, 16, 14, 140, 4,
- 101, 195, 107, 17, 239, 76, 76, 53, 245, 215, 7, 30, 130, 136, 97, 166,
- 168, 122, 254, 163, 0, 121, 192, 34, 208, 25, 156, 10, 233, 199, 14, 210,
- 132, 93, 163, 121, 185, 226, 242, 201, 133, 150, 227, 46, 201, 220, 86, 217,
- 254, 218, 192, 91, 16, 59, 76, 19, 117, 205, 231, 21, 138, 143, 39, 36,
- 26, 155, 75, 43, 119, 95, 102, 184, 42, 242, 159, 5, 168, 3, 62, 129,
- 208, 96, 92, 40, 57, 222, 146, 216, 109, 154, 173, 171, 61, 191, 81, 176,
- 60, 116, 17, 231, 76, 74, 181, 247, 55, 6, 150, 130, 238, 225, 140, 72,
- 101, 246, 171, 6, 255, 66, 192, 49, 144, 20, 108, 15, 109, 196, 45, 147,
- 93, 173, 249, 189, 130, 241, 161, 132, 120, 99, 98, 169, 233, 190, 206, 240,
- 84, 68, 63, 115, 80, 37, 252, 27, 1, 203, 64, 87, 112, 62, 164, 16,
- 123, 76, 35, 117, 217, 231, 26, 202, 139, 23, 39, 78, 154, 180, 107, 55,
- 111, 86, 172, 62, 253, 208, 65, 156, 48, 105, 212, 46, 223, 92, 88, 57,
- 250, 146, 195, 45, 145, 221, 172, 89, 189, 250, 241, 131, 4, 97, 195, 104,
- 81, 238, 188, 76, 113, 245, 228, 71, 11, 114, 135, 101, 162, 171, 57, 191,
- 82, 240, 61, 132, 17, 163, 76, 121, 245, 226, 199, 9, 146, 134, 237, 162,
- 205, 185, 149, 178, 239, 53, 140, 23, 37, 206, 155, 20, 107, 79, 111, 116,
- 44, 39, 93, 218, 185, 155, 50, 235, 85, 143, 127, 36, 32, 27, 88, 11,
- 122, 135, 99, 34, 169, 217, 190, 218, 240, 91, 4, 59, 67, 83, 113, 253,
- 228, 65, 139, 112, 103, 100, 42, 171, 95, 63, 120, 16, 34, 140, 25, 165,
- 202, 251, 23, 3, 78, 129, 244, 96, 71, 104, 50, 174, 149, 188, 111, 49,
- 236, 20, 77, 207, 117, 148, 39, 47, 90, 156, 59, 41, 211, 94, 221, 248,
- 89, 130, 186, 225, 179, 8, 117, 198, 167, 18, 250, 141, 131, 37, 161, 219,
- 56, 91, 82, 187, 125, 179, 97, 181, 232, 119, 14, 166, 132, 122, 227, 99,
- 9, 233, 198, 206, 210, 212, 93, 159, 121, 168, 34, 254, 153, 128, 106, 224,
- 47, 8, 28, 6, 137, 194, 230, 209, 138, 220, 103, 25, 234, 138, 207, 39,
- 20, 26, 143, 75, 36, 55, 91, 86, 187, 126, 243, 96, 69, 232, 51, 14,
- 149, 196, 111, 19, 108, 13, 237, 197, 141, 147, 37, 173, 219, 61, 155, 81,
- 171, 124, 127, 97, 224, 40, 72, 30, 182, 136, 118, 230, 166, 202, 250, 215,
- 3, 30, 129, 200, 96, 86, 168, 62, 254, 144, 64, 108, 48, 45, 212, 29,
- 159, 73, 168, 54, 254, 150, 192, 110, 208, 44, 92, 29, 249, 201, 130, 214,
- 225, 158, 200, 104, 86, 174, 190, 252, 112, 65, 228, 48, 75, 84, 55, 127,
- 86, 160, 62, 248, 16, 66, 140, 49, 165, 212, 123, 31, 99, 72, 41, 246,
- 158, 198, 232, 82, 206, 189, 148, 113, 175, 100, 124, 43, 97, 223, 104, 88,
- 46, 186, 156, 115, 41, 229, 222, 203, 24, 87, 74, 190, 183, 48, 118, 148,
- 38, 239, 90, 204, 59, 21, 211, 79, 29, 244, 9, 135, 70, 226, 178, 201,
- 181, 150, 247, 46, 198, 156, 82, 233, 253, 142, 193, 164, 80, 123, 124, 35,
- 97, 217, 232, 90, 206, 187, 20, 115, 79, 101, 244, 43, 7, 95, 66, 184,
- 49, 178, 148, 117, 175, 103, 60, 42, 145, 223, 44, 88, 29, 250, 137, 131,
- 38, 225, 218, 200, 91, 22, 187, 78, 243, 116, 69, 231, 115, 10, 165, 199,
- 59, 18, 147, 77, 173, 245, 189, 135, 49, 162, 148, 121, 175, 98, 252, 41,
- 129, 222, 224, 88, 72, 58, 182, 147, 54, 237, 214, 205, 158, 213, 168, 95,
- 62, 184, 16, 114, 140, 37, 165, 219, 59, 27, 83, 75, 125, 247, 97, 134,
- 168, 98, 254, 169, 128, 126, 224, 32, 72, 24, 54, 138, 150, 231, 46, 202,
- 156, 87, 41, 254, 158, 192, 104, 80, 46, 188, 28, 113, 201, 228, 86, 203,
- 126, 215, 96, 94, 168, 56, 126, 146, 160, 109, 184, 45, 178, 157, 181, 169,
- 183, 62, 246, 144, 70, 236, 50, 205, 213, 149, 159, 47, 40, 28, 30, 137,
- 200, 102, 214, 170, 222, 255, 24, 64, 10, 176, 7, 52, 2, 151, 65, 174,
- 176, 124, 116, 33, 231, 88, 74, 186, 183, 51, 54, 149, 214, 239, 30, 204,
- 8, 85, 198, 191, 18, 240, 13, 132, 5, 163, 67, 57, 241, 210, 196, 93,
- 147, 121, 173, 226, 253, 137, 129, 166, 224, 122, 200, 35, 22, 153, 206, 234,
- 212, 79, 31, 116, 8, 39, 70, 154, 178, 235, 53, 143, 87, 36, 62, 155,
- 80, 107, 124, 47, 97, 220, 40, 89, 222, 186, 216, 115, 26, 165, 203, 59,
- 23, 83, 78, 189, 244, 113, 135, 100, 98, 171, 105, 191, 110, 240, 44, 68,
- 29, 243, 73, 133, 246, 227, 6, 201, 194, 214, 209, 158, 220, 104, 89, 238,
- 186, 204, 115, 21, 229, 207, 11, 20, 7, 79, 66, 180, 49, 183, 84, 118,
- 191, 102, 240, 42, 196, 31, 19, 72, 13, 246, 133, 134, 227, 34, 201, 217,
- 150, 218, 238, 219, 12, 91, 69, 251, 115, 3, 101, 193, 235, 16, 79, 76,
- 52, 53, 215, 87, 30, 190, 136, 112, 102, 164, 42, 251, 95, 3, 120, 1,
- 226, 128, 73, 160, 54, 248, 22, 194, 142, 209, 164, 92, 123, 121, 227, 98,
- 201, 233, 150, 206, 238, 212, 76, 95, 117, 248, 39, 2, 154, 129, 171, 32,
- 127, 88, 32, 58, 152, 19, 42, 141, 223, 37, 152, 27, 42, 139, 95, 39,
- 120, 26, 162, 139, 57, 167, 82, 250, 189, 131, 49, 161, 212, 120, 95, 98,
- 184, 41, 178, 158, 245, 168, 71, 62, 178, 144, 117, 172, 39, 61, 218, 145,
- 155, 44, 107, 93, 239, 121, 140, 34, 229, 217, 139, 26, 231, 75, 10, 183,
- 71, 54, 178, 150, 245, 174, 199, 60, 82, 145, 253, 172, 65, 189, 240, 113,
- 132, 36, 99, 91, 105, 251, 110, 195, 108, 81, 237, 252, 77, 129, 245, 160,
- 71, 56, 50, 146, 149, 173, 175, 61, 188, 17, 177, 204, 116, 85, 231, 127,
- 10, 160, 7, 56, 2, 146, 129, 173, 160, 125, 184, 33, 178, 152, 117, 170,
- 167, 63, 58, 144, 19, 44, 13, 221, 197, 153, 147, 42, 237, 223, 13, 152,
- 5, 170, 131, 63, 33, 208, 24, 92, 10, 185, 199, 50, 210, 149, 157, 175,
- 41, 188, 30, 241, 200, 68, 86, 179, 126, 245, 224, 71, 8, 50, 134, 149,
- 162, 239, 57, 140, 18, 229, 205, 139, 21, 167, 79, 58, 180, 19, 55, 77,
- 214, 181, 158, 247, 40, 70, 158, 178, 232, 117, 142, 167, 36, 122, 155, 99,
- 43, 105, 223, 110, 216, 44, 90, 157, 251, 41, 131, 94, 225, 248, 72, 66,
- 182, 177, 182, 244, 118, 199, 102, 210, 170, 221, 191, 25, 176, 10, 244, 7,
- 7, 66, 130, 177, 161, 180, 120, 119, 98, 166, 169, 186, 254, 243, 0, 69,
- 192, 51, 16, 21, 204, 15, 21, 196, 15, 19, 68, 13, 243, 69, 133, 243,
- 35, 5, 217, 195, 26, 209, 203, 28, 87, 73, 254, 182, 192, 118, 208, 38,
- 220, 26, 217, 203, 26, 215, 75, 30, 183, 72, 118, 182, 166, 246, 250, 198,
- 195, 18, 209, 205, 156, 85, 169, 255, 62, 192, 16, 80, 12, 60, 5, 209,
- 195, 28, 81, 201, 252, 86, 193, 254, 208, 64, 92, 48, 57, 212, 18, 223,
- 77, 152, 53, 170, 151, 63, 46, 144, 28, 108, 9, 237, 198, 205, 146, 213,
- 173, 159, 61, 168, 17, 190, 140, 112, 101, 228, 43, 11, 95, 71, 120, 50,
- 162, 149, 185, 175, 50, 252, 21, 129, 207, 32, 84, 24, 63, 74, 144, 55,
- 44, 22, 157, 206, 233, 148, 78, 239, 116, 76, 39, 117, 218, 167, 27, 58,
- 139, 83, 39, 125, 218, 161, 155, 56, 107, 82, 175, 125, 188, 33, 177, 216,
- 116, 90, 167, 123, 58, 163, 83, 57, 253, 210, 193, 157, 144, 105, 172, 46,
- 253, 220, 65, 153, 240, 106, 196, 47, 19, 92, 13, 249, 197, 130, 211, 33,
- 157, 216, 105, 154, 174, 235, 60, 79, 81, 244, 60, 71, 81, 242, 188, 69,
- 177, 243, 52, 69, 215, 115, 30, 165, 200, 123, 22, 163, 78, 249, 244, 66,
- 199, 113, 146, 164, 109, 187, 109, 179, 109, 181, 237, 183, 13, 182, 133, 182,
+ 255, 63, 0, 16, 0, 12, 0, 5, 192, 3, 16, 1, 204, 0, 85, 192,
+ 63, 16, 16, 12, 12, 5, 197, 195, 19, 17, 205, 204, 85, 149, 255, 47,
+ 0, 28, 0, 9, 192, 6, 208, 2, 220, 1, 153, 192, 106, 208, 47, 28,
+ 28, 9, 201, 198, 214, 210, 222, 221, 152, 89, 170, 186, 255, 51, 0, 21,
+ 192, 15, 16, 4, 12, 3, 69, 193, 243, 16, 69, 204, 51, 21, 213, 207,
+ 31, 20, 8, 15, 70, 132, 50, 227, 85, 137, 255, 38, 192, 26, 208, 11,
+ 28, 7, 73, 194, 182, 209, 182, 220, 118, 217, 230, 218, 202, 219, 23, 27,
+ 78, 139, 116, 103, 103, 106, 170, 175, 63, 60, 16, 17, 204, 12, 85, 197,
+ 255, 19, 0, 13, 192, 5, 144, 3, 44, 1, 221, 192, 89, 144, 58, 236,
+ 19, 13, 205, 197, 149, 147, 47, 45, 220, 29, 153, 201, 170, 214, 255, 30,
+ 192, 8, 80, 6, 188, 2, 241, 193, 132, 80, 99, 124, 41, 225, 222, 200,
+ 88, 86, 186, 190, 243, 48, 69, 212, 51, 31, 85, 200, 63, 22, 144, 14,
+ 236, 4, 77, 195, 117, 145, 231, 44, 74, 157, 247, 41, 134, 158, 226, 232,
+ 73, 142, 182, 228, 118, 203, 102, 215, 106, 222, 175, 24, 124, 10, 161, 199,
+ 56, 82, 146, 189, 173, 177, 189, 180, 113, 183, 100, 118, 171, 102, 255, 106,
+ 192, 47, 16, 28, 12, 9, 197, 198, 211, 18, 221, 205, 153, 149, 170, 239,
+ 63, 12, 16, 5, 204, 3, 21, 193, 207, 16, 84, 12, 63, 69, 208, 51,
+ 28, 21, 201, 207, 22, 212, 14, 223, 68, 88, 51, 122, 149, 227, 47, 9,
+ 220, 6, 217, 194, 218, 209, 155, 28, 107, 73, 239, 118, 204, 38, 213, 218,
+ 223, 27, 24, 11, 74, 135, 119, 34, 166, 153, 186, 234, 243, 15, 5, 196,
+ 3, 19, 65, 205, 240, 85, 132, 63, 35, 80, 25, 252, 10, 193, 199, 16,
+ 82, 140, 61, 165, 209, 187, 28, 115, 73, 229, 246, 203, 6, 215, 66, 222,
+ 177, 152, 116, 106, 167, 111, 58, 172, 19, 61, 205, 209, 149, 156, 111, 41,
+ 236, 30, 205, 200, 85, 150, 191, 46, 240, 28, 68, 9, 243, 70, 197, 242,
+ 211, 5, 157, 195, 41, 145, 222, 236, 88, 77, 250, 181, 131, 55, 33, 214,
+ 152, 94, 234, 184, 79, 50, 180, 21, 183, 79, 54, 180, 22, 247, 78, 198,
+ 180, 82, 247, 125, 134, 161, 162, 248, 121, 130, 162, 225, 185, 136, 114, 230,
+ 165, 138, 251, 39, 3, 90, 129, 251, 32, 67, 88, 49, 250, 148, 67, 47,
+ 113, 220, 36, 89, 219, 122, 219, 99, 27, 105, 203, 110, 215, 108, 94, 173,
+ 248, 125, 130, 161, 161, 184, 120, 114, 162, 165, 185, 187, 50, 243, 85, 133,
+ 255, 35, 0, 25, 192, 10, 208, 7, 28, 2, 137, 193, 166, 208, 122, 220,
+ 35, 25, 217, 202, 218, 215, 27, 30, 139, 72, 103, 118, 170, 166, 255, 58,
+ 192, 19, 16, 13, 204, 5, 149, 195, 47, 17, 220, 12, 89, 197, 250, 211,
+ 3, 29, 193, 201, 144, 86, 236, 62, 205, 208, 85, 156, 63, 41, 208, 30,
+ 220, 8, 89, 198, 186, 210, 243, 29, 133, 201, 163, 22, 249, 206, 194, 212,
+ 81, 159, 124, 104, 33, 238, 152, 76, 106, 181, 239, 55, 12, 22, 133, 206,
+ 227, 20, 73, 207, 118, 212, 38, 223, 90, 216, 59, 26, 147, 75, 45, 247,
+ 93, 134, 185, 162, 242, 249, 133, 130, 227, 33, 137, 216, 102, 218, 170, 219,
+ 63, 27, 80, 11, 124, 7, 97, 194, 168, 81, 190, 188, 112, 113, 228, 36,
+ 75, 91, 119, 123, 102, 163, 106, 249, 239, 2, 204, 1, 149, 192, 111, 16,
+ 44, 12, 29, 197, 201, 147, 22, 237, 206, 205, 148, 85, 175, 127, 60, 32,
+ 17, 216, 12, 90, 133, 251, 35, 3, 89, 193, 250, 208, 67, 28, 49, 201,
+ 212, 86, 223, 126, 216, 32, 90, 152, 59, 42, 147, 95, 45, 248, 29, 130,
+ 137, 161, 166, 248, 122, 194, 163, 17, 185, 204, 114, 213, 229, 159, 11, 40,
+ 7, 94, 130, 184, 97, 178, 168, 117, 190, 167, 48, 122, 148, 35, 47, 89,
+ 220, 58, 217, 211, 26, 221, 203, 25, 151, 74, 238, 183, 12, 118, 133, 230,
+ 227, 10, 201, 199, 22, 210, 142, 221, 164, 89, 187, 122, 243, 99, 5, 233,
+ 195, 14, 209, 196, 92, 83, 121, 253, 226, 193, 137, 144, 102, 236, 42, 205,
+ 223, 21, 152, 15, 42, 132, 31, 35, 72, 25, 246, 138, 198, 231, 18, 202,
+ 141, 151, 37, 174, 155, 60, 107, 81, 239, 124, 76, 33, 245, 216, 71, 26,
+ 178, 139, 53, 167, 87, 58, 190, 147, 48, 109, 212, 45, 159, 93, 168, 57,
+ 190, 146, 240, 109, 132, 45, 163, 93, 185, 249, 178, 194, 245, 145, 135, 44,
+ 98, 157, 233, 169, 142, 254, 228, 64, 75, 112, 55, 100, 22, 171, 78, 255,
+ 116, 64, 39, 112, 26, 164, 11, 59, 71, 83, 114, 189, 229, 177, 139, 52,
+ 103, 87, 106, 190, 175, 48, 124, 20, 33, 207, 88, 84, 58, 191, 83, 48,
+ 61, 212, 17, 159, 76, 104, 53, 238, 151, 12, 110, 133, 236, 99, 13, 233,
+ 197, 142, 211, 36, 93, 219, 121, 155, 98, 235, 105, 143, 110, 228, 44, 75,
+ 93, 247, 121, 134, 162, 226, 249, 137, 130, 230, 225, 138, 200, 103, 22, 170,
+ 142, 255, 36, 64, 27, 112, 11, 100, 7, 107, 66, 175, 113, 188, 36, 113,
+ 219, 100, 91, 107, 123, 111, 99, 108, 41, 237, 222, 205, 152, 85, 170, 191,
+ 63, 48, 16, 20, 12, 15, 69, 196, 51, 19, 85, 205, 255, 21, 128, 15,
+ 32, 4, 24, 3, 74, 129, 247, 32, 70, 152, 50, 234, 149, 143, 47, 36,
+ 28, 27, 73, 203, 118, 215, 102, 222, 170, 216, 127, 26, 160, 11, 56, 7,
+ 82, 130, 189, 161, 177, 184, 116, 114, 167, 101, 186, 171, 51, 63, 85, 208,
+ 63, 28, 16, 9, 204, 6, 213, 194, 223, 17, 152, 12, 106, 133, 239, 35,
+ 12, 25, 197, 202, 211, 23, 29, 206, 137, 148, 102, 239, 106, 204, 47, 21,
+ 220, 15, 25, 196, 10, 211, 71, 29, 242, 137, 133, 166, 227, 58, 201, 211,
+ 22, 221, 206, 217, 148, 90, 239, 123, 12, 35, 69, 217, 243, 26, 197, 203,
+ 19, 23, 77, 206, 181, 148, 119, 47, 102, 156, 42, 233, 223, 14, 216, 4,
+ 90, 131, 123, 33, 227, 88, 73, 250, 182, 195, 54, 209, 214, 220, 94, 217,
+ 248, 90, 194, 187, 17, 179, 76, 117, 245, 231, 7, 10, 130, 135, 33, 162,
+ 152, 121, 170, 162, 255, 57, 128, 18, 224, 13, 136, 5, 166, 131, 58, 225,
+ 211, 8, 93, 198, 185, 146, 242, 237, 133, 141, 163, 37, 185, 219, 50, 219,
+ 85, 155, 127, 43, 96, 31, 104, 8, 46, 134, 156, 98, 233, 233, 142, 206,
+ 228, 84, 75, 127, 119, 96, 38, 168, 26, 254, 139, 0, 103, 64, 42, 176,
+ 31, 52, 8, 23, 70, 142, 178, 228, 117, 139, 103, 39, 106, 154, 175, 43,
+ 60, 31, 81, 200, 60, 86, 145, 254, 236, 64, 77, 240, 53, 132, 23, 35,
+ 78, 153, 244, 106, 199, 111, 18, 172, 13, 189, 197, 177, 147, 52, 109, 215,
+ 109, 158, 173, 168, 125, 190, 161, 176, 120, 116, 34, 167, 89, 186, 186, 243,
+ 51, 5, 213, 195, 31, 17, 200, 12, 86, 133, 254, 227, 0, 73, 192, 54,
+ 208, 22, 220, 14, 217, 196, 90, 211, 123, 29, 227, 73, 137, 246, 230, 198,
+ 202, 210, 215, 29, 158, 137, 168, 102, 254, 170, 192, 127, 16, 32, 12, 24,
+ 5, 202, 131, 23, 33, 206, 152, 84, 106, 191, 111, 48, 44, 20, 29, 207,
+ 73, 148, 54, 239, 86, 204, 62, 213, 208, 95, 28, 56, 9, 210, 134, 221,
+ 162, 217, 185, 154, 242, 235, 5, 143, 67, 36, 49, 219, 84, 91, 127, 123,
+ 96, 35, 104, 25, 238, 138, 204, 103, 21, 234, 143, 15, 36, 4, 27, 67,
+ 75, 113, 247, 100, 70, 171, 114, 255, 101, 128, 43, 32, 31, 88, 8, 58,
+ 134, 147, 34, 237, 217, 141, 154, 229, 171, 11, 63, 71, 80, 50, 188, 21,
+ 177, 207, 52, 84, 23, 127, 78, 160, 52, 120, 23, 98, 142, 169, 164, 126,
+ 251, 96, 67, 104, 49, 238, 148, 76, 111, 117, 236, 39, 13, 218, 133, 155,
+ 35, 43, 89, 223, 122, 216, 35, 26, 153, 203, 42, 215, 95, 30, 184, 8,
+ 114, 134, 165, 162, 251, 57, 131, 82, 225, 253, 136, 65, 166, 176, 122, 244,
+ 35, 7, 89, 194, 186, 209, 179, 28, 117, 201, 231, 22, 202, 142, 215, 36,
+ 94, 155, 120, 107, 98, 175, 105, 188, 46, 241, 220, 68, 89, 243, 122, 197,
+ 227, 19, 9, 205, 198, 213, 146, 223, 45, 152, 29, 170, 137, 191, 38, 240,
+ 26, 196, 11, 19, 71, 77, 242, 181, 133, 183, 35, 54, 153, 214, 234, 222,
+ 207, 24, 84, 10, 191, 71, 48, 50, 148, 21, 175, 79, 60, 52, 17, 215,
+ 76, 94, 181, 248, 119, 2, 166, 129, 186, 224, 115, 8, 37, 198, 155, 18,
+ 235, 77, 143, 117, 164, 39, 59, 90, 147, 123, 45, 227, 93, 137, 249, 166,
+ 194, 250, 209, 131, 28, 97, 201, 232, 86, 206, 190, 212, 112, 95, 100, 56,
+ 43, 82, 159, 125, 168, 33, 190, 152, 112, 106, 164, 47, 59, 92, 19, 121,
+ 205, 226, 213, 137, 159, 38, 232, 26, 206, 139, 20, 103, 79, 106, 180, 47,
+ 55, 92, 22, 185, 206, 242, 212, 69, 159, 115, 40, 37, 222, 155, 24, 107,
+ 74, 175, 119, 60, 38, 145, 218, 236, 91, 13, 251, 69, 131, 115, 33, 229,
+ 216, 75, 26, 183, 75, 54, 183, 86, 246, 190, 198, 240, 82, 196, 61, 147,
+ 81, 173, 252, 125, 129, 225, 160, 72, 120, 54, 162, 150, 249, 174, 194, 252,
+ 81, 129, 252, 96, 65, 232, 48, 78, 148, 52, 111, 87, 108, 62, 173, 208,
+ 125, 156, 33, 169, 216, 126, 218, 160, 91, 56, 59, 82, 147, 125, 173, 225,
+ 189, 136, 113, 166, 164, 122, 251, 99, 3, 105, 193, 238, 208, 76, 92, 53,
+ 249, 215, 2, 222, 129, 152, 96, 106, 168, 47, 62, 156, 16, 105, 204, 46,
+ 213, 220, 95, 25, 248, 10, 194, 135, 17, 162, 140, 121, 165, 226, 251, 9,
+ 131, 70, 225, 242, 200, 69, 150, 179, 46, 245, 220, 71, 25, 242, 138, 197,
+ 167, 19, 58, 141, 211, 37, 157, 219, 41, 155, 94, 235, 120, 79, 98, 180,
+ 41, 183, 94, 246, 184, 70, 242, 178, 197, 181, 147, 55, 45, 214, 157, 158,
+ 233, 168, 78, 254, 180, 64, 119, 112, 38, 164, 26, 251, 75, 3, 119, 65,
+ 230, 176, 74, 244, 55, 7, 86, 130, 190, 225, 176, 72, 116, 54, 167, 86,
+ 250, 190, 195, 48, 81, 212, 60, 95, 81, 248, 60, 66, 145, 241, 172, 68,
+ 125, 243, 97, 133, 232, 99, 14, 169, 196, 126, 211, 96, 93, 232, 57, 142,
+ 146, 228, 109, 139, 109, 167, 109, 186, 173, 179, 61, 181, 209, 183, 28, 118,
+ 137, 230, 230, 202, 202, 215, 23, 30, 142, 136, 100, 102, 171, 106, 255, 111,
+ 0, 44, 0, 29, 192, 9, 144, 6, 236, 2, 205, 193, 149, 144, 111, 44,
+ 44, 29, 221, 201, 153, 150, 234, 238, 207, 12, 84, 5, 255, 67, 0, 49,
+ 192, 20, 80, 15, 124, 4, 33, 195, 88, 81, 250, 188, 67, 49, 241, 212,
+ 68, 95, 115, 120, 37, 226, 155, 9, 171, 70, 255, 114, 192, 37, 144, 27,
+ 44, 11, 93, 199, 121, 146, 162, 237, 185, 141, 178, 229, 181, 139, 55, 39,
+ 86, 154, 190, 235, 48, 79, 84, 52, 63, 87, 80, 62, 188, 16, 113, 204,
+ 36, 85, 219, 127, 27, 96, 11, 104, 7, 110, 130, 172, 97, 189, 232, 113,
+ 142, 164, 100, 123, 107, 99, 111, 105, 236, 46, 205, 220, 85, 153, 255, 42,
+ 192, 31, 16, 8, 12, 6, 133, 194, 227, 17, 137, 204, 102, 213, 234, 223,
+ 15, 24, 4, 10, 131, 71, 33, 242, 152, 69, 170, 179, 63, 53, 208, 23,
+ 28, 14, 137, 196, 102, 211, 106, 221, 239, 25, 140, 10, 229, 199, 11, 18,
+ 135, 77, 162, 181, 185, 183, 50, 246, 149, 134, 239, 34, 204, 25, 149, 202,
+ 239, 23, 12, 14, 133, 196, 99, 19, 105, 205, 238, 213, 140, 95, 37, 248,
+ 27, 2, 139, 65, 167, 112, 122, 164, 35, 59, 89, 211, 122, 221, 227, 25,
+ 137, 202, 230, 215, 10, 222, 135, 24, 98, 138, 169, 167, 62, 250, 144, 67,
+ 44, 49, 221, 212, 89, 159, 122, 232, 35, 14, 153, 196, 106, 211, 111, 29,
+ 236, 9, 141, 198, 229, 146, 203, 45, 151, 93, 174, 185, 188, 114, 241, 229,
+ 132, 75, 35, 119, 89, 230, 186, 202, 243, 23, 5, 206, 131, 20, 97, 207,
+ 104, 84, 46, 191, 92, 112, 57, 228, 18, 203, 77, 151, 117, 174, 167, 60,
+ 122, 145, 227, 44, 73, 221, 246, 217, 134, 218, 226, 219, 9, 155, 70, 235,
+ 114, 207, 101, 148, 43, 47, 95, 92, 56, 57, 210, 146, 221, 173, 153, 189,
+ 170, 241, 191, 4, 112, 3, 100, 1, 235, 64, 79, 112, 52, 36, 23, 91,
+ 78, 187, 116, 115, 103, 101, 234, 171, 15, 63, 68, 16, 51, 76, 21, 245,
+ 207, 7, 20, 2, 143, 65, 164, 48, 123, 84, 35, 127, 89, 224, 58, 200,
+ 19, 22, 141, 206, 229, 148, 75, 47, 119, 92, 38, 185, 218, 242, 219, 5,
+ 155, 67, 43, 113, 223, 100, 88, 43, 122, 159, 99, 40, 41, 222, 158, 216,
+ 104, 90, 174, 187, 60, 115, 81, 229, 252, 75, 1, 247, 64, 70, 176, 50,
+ 244, 21, 135, 79, 34, 180, 25, 183, 74, 246, 183, 6, 246, 130, 198, 225,
+ 146, 200, 109, 150, 173, 174, 253, 188, 65, 177, 240, 116, 68, 39, 115, 90,
+ 165, 251, 59, 3, 83, 65, 253, 240, 65, 132, 48, 99, 84, 41, 255, 94,
+ 192, 56, 80, 18, 188, 13, 177, 197, 180, 83, 55, 125, 214, 161, 158, 248,
+ 104, 66, 174, 177, 188, 116, 113, 231, 100, 74, 171, 119, 63, 102, 144, 42,
+ 236, 31, 13, 200, 5, 150, 131, 46, 225, 220, 72, 89, 246, 186, 198, 243,
+ 18, 197, 205, 147, 21, 173, 207, 61, 148, 17, 175, 76, 124, 53, 225, 215,
+ 8, 94, 134, 184, 98, 242, 169, 133, 190, 227, 48, 73, 212, 54, 223, 86,
+ 216, 62, 218, 144, 91, 44, 59, 93, 211, 121, 157, 226, 233, 137, 142, 230,
+ 228, 74, 203, 119, 23, 102, 142, 170, 228, 127, 11, 96, 7, 104, 2, 174,
+ 129, 188, 96, 113, 232, 36, 78, 155, 116, 107, 103, 111, 106, 172, 47, 61,
+ 220, 17, 153, 204, 106, 213, 239, 31, 12, 8, 5, 198, 131, 18, 225, 205,
+ 136, 85, 166, 191, 58, 240, 19, 4, 13, 195, 69, 145, 243, 44, 69, 221,
+ 243, 25, 133, 202, 227, 23, 9, 206, 134, 212, 98, 223, 105, 152, 46, 234,
+ 156, 79, 41, 244, 30, 199, 72, 82, 182, 189, 182, 241, 182, 196, 118, 211,
+ 102, 221, 234, 217, 143, 26, 228, 11, 11, 71, 71, 114, 178, 165, 181, 187,
+ 55, 51, 86, 149, 254, 239, 0, 76, 0, 53, 192, 23, 16, 14, 140, 4,
+ 101, 195, 107, 17, 239, 76, 76, 53, 245, 215, 7, 30, 130, 136, 97, 166,
+ 168, 122, 254, 163, 0, 121, 192, 34, 208, 25, 156, 10, 233, 199, 14, 210,
+ 132, 93, 163, 121, 185, 226, 242, 201, 133, 150, 227, 46, 201, 220, 86, 217,
+ 254, 218, 192, 91, 16, 59, 76, 19, 117, 205, 231, 21, 138, 143, 39, 36,
+ 26, 155, 75, 43, 119, 95, 102, 184, 42, 242, 159, 5, 168, 3, 62, 129,
+ 208, 96, 92, 40, 57, 222, 146, 216, 109, 154, 173, 171, 61, 191, 81, 176,
+ 60, 116, 17, 231, 76, 74, 181, 247, 55, 6, 150, 130, 238, 225, 140, 72,
+ 101, 246, 171, 6, 255, 66, 192, 49, 144, 20, 108, 15, 109, 196, 45, 147,
+ 93, 173, 249, 189, 130, 241, 161, 132, 120, 99, 98, 169, 233, 190, 206, 240,
+ 84, 68, 63, 115, 80, 37, 252, 27, 1, 203, 64, 87, 112, 62, 164, 16,
+ 123, 76, 35, 117, 217, 231, 26, 202, 139, 23, 39, 78, 154, 180, 107, 55,
+ 111, 86, 172, 62, 253, 208, 65, 156, 48, 105, 212, 46, 223, 92, 88, 57,
+ 250, 146, 195, 45, 145, 221, 172, 89, 189, 250, 241, 131, 4, 97, 195, 104,
+ 81, 238, 188, 76, 113, 245, 228, 71, 11, 114, 135, 101, 162, 171, 57, 191,
+ 82, 240, 61, 132, 17, 163, 76, 121, 245, 226, 199, 9, 146, 134, 237, 162,
+ 205, 185, 149, 178, 239, 53, 140, 23, 37, 206, 155, 20, 107, 79, 111, 116,
+ 44, 39, 93, 218, 185, 155, 50, 235, 85, 143, 127, 36, 32, 27, 88, 11,
+ 122, 135, 99, 34, 169, 217, 190, 218, 240, 91, 4, 59, 67, 83, 113, 253,
+ 228, 65, 139, 112, 103, 100, 42, 171, 95, 63, 120, 16, 34, 140, 25, 165,
+ 202, 251, 23, 3, 78, 129, 244, 96, 71, 104, 50, 174, 149, 188, 111, 49,
+ 236, 20, 77, 207, 117, 148, 39, 47, 90, 156, 59, 41, 211, 94, 221, 248,
+ 89, 130, 186, 225, 179, 8, 117, 198, 167, 18, 250, 141, 131, 37, 161, 219,
+ 56, 91, 82, 187, 125, 179, 97, 181, 232, 119, 14, 166, 132, 122, 227, 99,
+ 9, 233, 198, 206, 210, 212, 93, 159, 121, 168, 34, 254, 153, 128, 106, 224,
+ 47, 8, 28, 6, 137, 194, 230, 209, 138, 220, 103, 25, 234, 138, 207, 39,
+ 20, 26, 143, 75, 36, 55, 91, 86, 187, 126, 243, 96, 69, 232, 51, 14,
+ 149, 196, 111, 19, 108, 13, 237, 197, 141, 147, 37, 173, 219, 61, 155, 81,
+ 171, 124, 127, 97, 224, 40, 72, 30, 182, 136, 118, 230, 166, 202, 250, 215,
+ 3, 30, 129, 200, 96, 86, 168, 62, 254, 144, 64, 108, 48, 45, 212, 29,
+ 159, 73, 168, 54, 254, 150, 192, 110, 208, 44, 92, 29, 249, 201, 130, 214,
+ 225, 158, 200, 104, 86, 174, 190, 252, 112, 65, 228, 48, 75, 84, 55, 127,
+ 86, 160, 62, 248, 16, 66, 140, 49, 165, 212, 123, 31, 99, 72, 41, 246,
+ 158, 198, 232, 82, 206, 189, 148, 113, 175, 100, 124, 43, 97, 223, 104, 88,
+ 46, 186, 156, 115, 41, 229, 222, 203, 24, 87, 74, 190, 183, 48, 118, 148,
+ 38, 239, 90, 204, 59, 21, 211, 79, 29, 244, 9, 135, 70, 226, 178, 201,
+ 181, 150, 247, 46, 198, 156, 82, 233, 253, 142, 193, 164, 80, 123, 124, 35,
+ 97, 217, 232, 90, 206, 187, 20, 115, 79, 101, 244, 43, 7, 95, 66, 184,
+ 49, 178, 148, 117, 175, 103, 60, 42, 145, 223, 44, 88, 29, 250, 137, 131,
+ 38, 225, 218, 200, 91, 22, 187, 78, 243, 116, 69, 231, 115, 10, 165, 199,
+ 59, 18, 147, 77, 173, 245, 189, 135, 49, 162, 148, 121, 175, 98, 252, 41,
+ 129, 222, 224, 88, 72, 58, 182, 147, 54, 237, 214, 205, 158, 213, 168, 95,
+ 62, 184, 16, 114, 140, 37, 165, 219, 59, 27, 83, 75, 125, 247, 97, 134,
+ 168, 98, 254, 169, 128, 126, 224, 32, 72, 24, 54, 138, 150, 231, 46, 202,
+ 156, 87, 41, 254, 158, 192, 104, 80, 46, 188, 28, 113, 201, 228, 86, 203,
+ 126, 215, 96, 94, 168, 56, 126, 146, 160, 109, 184, 45, 178, 157, 181, 169,
+ 183, 62, 246, 144, 70, 236, 50, 205, 213, 149, 159, 47, 40, 28, 30, 137,
+ 200, 102, 214, 170, 222, 255, 24, 64, 10, 176, 7, 52, 2, 151, 65, 174,
+ 176, 124, 116, 33, 231, 88, 74, 186, 183, 51, 54, 149, 214, 239, 30, 204,
+ 8, 85, 198, 191, 18, 240, 13, 132, 5, 163, 67, 57, 241, 210, 196, 93,
+ 147, 121, 173, 226, 253, 137, 129, 166, 224, 122, 200, 35, 22, 153, 206, 234,
+ 212, 79, 31, 116, 8, 39, 70, 154, 178, 235, 53, 143, 87, 36, 62, 155,
+ 80, 107, 124, 47, 97, 220, 40, 89, 222, 186, 216, 115, 26, 165, 203, 59,
+ 23, 83, 78, 189, 244, 113, 135, 100, 98, 171, 105, 191, 110, 240, 44, 68,
+ 29, 243, 73, 133, 246, 227, 6, 201, 194, 214, 209, 158, 220, 104, 89, 238,
+ 186, 204, 115, 21, 229, 207, 11, 20, 7, 79, 66, 180, 49, 183, 84, 118,
+ 191, 102, 240, 42, 196, 31, 19, 72, 13, 246, 133, 134, 227, 34, 201, 217,
+ 150, 218, 238, 219, 12, 91, 69, 251, 115, 3, 101, 193, 235, 16, 79, 76,
+ 52, 53, 215, 87, 30, 190, 136, 112, 102, 164, 42, 251, 95, 3, 120, 1,
+ 226, 128, 73, 160, 54, 248, 22, 194, 142, 209, 164, 92, 123, 121, 227, 98,
+ 201, 233, 150, 206, 238, 212, 76, 95, 117, 248, 39, 2, 154, 129, 171, 32,
+ 127, 88, 32, 58, 152, 19, 42, 141, 223, 37, 152, 27, 42, 139, 95, 39,
+ 120, 26, 162, 139, 57, 167, 82, 250, 189, 131, 49, 161, 212, 120, 95, 98,
+ 184, 41, 178, 158, 245, 168, 71, 62, 178, 144, 117, 172, 39, 61, 218, 145,
+ 155, 44, 107, 93, 239, 121, 140, 34, 229, 217, 139, 26, 231, 75, 10, 183,
+ 71, 54, 178, 150, 245, 174, 199, 60, 82, 145, 253, 172, 65, 189, 240, 113,
+ 132, 36, 99, 91, 105, 251, 110, 195, 108, 81, 237, 252, 77, 129, 245, 160,
+ 71, 56, 50, 146, 149, 173, 175, 61, 188, 17, 177, 204, 116, 85, 231, 127,
+ 10, 160, 7, 56, 2, 146, 129, 173, 160, 125, 184, 33, 178, 152, 117, 170,
+ 167, 63, 58, 144, 19, 44, 13, 221, 197, 153, 147, 42, 237, 223, 13, 152,
+ 5, 170, 131, 63, 33, 208, 24, 92, 10, 185, 199, 50, 210, 149, 157, 175,
+ 41, 188, 30, 241, 200, 68, 86, 179, 126, 245, 224, 71, 8, 50, 134, 149,
+ 162, 239, 57, 140, 18, 229, 205, 139, 21, 167, 79, 58, 180, 19, 55, 77,
+ 214, 181, 158, 247, 40, 70, 158, 178, 232, 117, 142, 167, 36, 122, 155, 99,
+ 43, 105, 223, 110, 216, 44, 90, 157, 251, 41, 131, 94, 225, 248, 72, 66,
+ 182, 177, 182, 244, 118, 199, 102, 210, 170, 221, 191, 25, 176, 10, 244, 7,
+ 7, 66, 130, 177, 161, 180, 120, 119, 98, 166, 169, 186, 254, 243, 0, 69,
+ 192, 51, 16, 21, 204, 15, 21, 196, 15, 19, 68, 13, 243, 69, 133, 243,
+ 35, 5, 217, 195, 26, 209, 203, 28, 87, 73, 254, 182, 192, 118, 208, 38,
+ 220, 26, 217, 203, 26, 215, 75, 30, 183, 72, 118, 182, 166, 246, 250, 198,
+ 195, 18, 209, 205, 156, 85, 169, 255, 62, 192, 16, 80, 12, 60, 5, 209,
+ 195, 28, 81, 201, 252, 86, 193, 254, 208, 64, 92, 48, 57, 212, 18, 223,
+ 77, 152, 53, 170, 151, 63, 46, 144, 28, 108, 9, 237, 198, 205, 146, 213,
+ 173, 159, 61, 168, 17, 190, 140, 112, 101, 228, 43, 11, 95, 71, 120, 50,
+ 162, 149, 185, 175, 50, 252, 21, 129, 207, 32, 84, 24, 63, 74, 144, 55,
+ 44, 22, 157, 206, 233, 148, 78, 239, 116, 76, 39, 117, 218, 167, 27, 58,
+ 139, 83, 39, 125, 218, 161, 155, 56, 107, 82, 175, 125, 188, 33, 177, 216,
+ 116, 90, 167, 123, 58, 163, 83, 57, 253, 210, 193, 157, 144, 105, 172, 46,
+ 253, 220, 65, 153, 240, 106, 196, 47, 19, 92, 13, 249, 197, 130, 211, 33,
+ 157, 216, 105, 154, 174, 235, 60, 79, 81, 244, 60, 71, 81, 242, 188, 69,
+ 177, 243, 52, 69, 215, 115, 30, 165, 200, 123, 22, 163, 78, 249, 244, 66,
+ 199, 113, 146, 164, 109, 187, 109, 179, 109, 181, 237, 183, 13, 182, 133, 182,
227, 54, 201, 214, 214, 222, 222, 216, 88, 90, 186, 187, 51, 51, 255, 63 )
random_mask_vec8 = numpy.array(random_mask_tuple, numpy.uint8)
-
diff --git a/gr-digital/python/digital/ofdm_txrx.py b/gr-digital/python/digital/ofdm_txrx.py
index b04c42cbfa..1c3bcc34e4 100644
--- a/gr-digital/python/digital/ofdm_txrx.py
+++ b/gr-digital/python/digital/ofdm_txrx.py
@@ -1,23 +1,23 @@
#
# Copyright 2013 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.
-#
+#
"""
OFDM Transmitter / Receiver hier blocks.
@@ -116,7 +116,7 @@ def _get_constellation(bps):
exit(1)
class ofdm_tx(gr.hier_block2):
- """ Hierarchical block for OFDM modulation.
+ """Hierarchical block for OFDM modulation.
The input is a byte stream (unsigned char) and the
output is the complex modulated signal at baseband.
@@ -130,13 +130,16 @@ class ofdm_tx(gr.hier_block2):
pilot_symbols: The pilot symbols.
bps_header: Bits per symbol (header).
bps_payload: Bits per symbol (payload).
- sync_word1: The first sync preamble symbol. This has to be with zeros on alternating carriers.
- Used for fine and coarse frequency offset and timing estimation.
- sync_word2: The second sync preamble symbol. This has to be filled entirely. Also used for
- coarse frequency offset and channel estimation.
+ sync_word1: The first sync preamble symbol. This has to be with
+ | zeros on alternating carriers. Used for fine and
+ | coarse frequency offset and timing estimation.
+ sync_word2: The second sync preamble symbol. This has to be filled
+ | entirely. Also used for coarse frequency offset and
+ | channel estimation.
rolloff: The rolloff length in samples. Must be smaller than the CP.
debug_log: Write output into log files (Warning: creates lots of data!)
scramble_bits: Activates the scramblers (set this to True unless debugging)
+
"""
def __init__(self, fft_len=_def_fft_len, cp_len=_def_cp_len,
packet_length_tag_key=_def_packet_length_tag_key,
@@ -259,7 +262,7 @@ class ofdm_tx(gr.hier_block2):
class ofdm_rx(gr.hier_block2):
- """ Hierarchical block for OFDM demodulation.
+ """Hierarchical block for OFDM demodulation.
The input is a complex baseband signal (e.g. from a UHD source).
The detected packets are output as a stream of packed bits on the output.
@@ -274,10 +277,12 @@ class ofdm_rx(gr.hier_block2):
pilot_symbols: The pilot symbols.
bps_header: Bits per symbol (header).
bps_payload: Bits per symbol (payload).
- sync_word1: The first sync preamble symbol. This has to be with zeros on alternating carriers.
- Used for fine and coarse frequency offset and timing estimation.
- sync_word2: The second sync preamble symbol. This has to be filled entirely. Also used for
- coarse frequency offset and channel estimation.
+ sync_word1: The first sync preamble symbol. This has to be with
+ | zeros on alternating carriers. Used for fine and
+ | coarse frequency offset and timing estimation.
+ sync_word2: The second sync preamble symbol. This has to be filled
+ | entirely. Also used for coarse frequency offset and
+ | channel estimation.
"""
def __init__(self, fft_len=_def_fft_len, cp_len=_def_cp_len,
frame_length_tag_key=_def_frame_length_tag_key,
@@ -371,7 +376,7 @@ class ofdm_rx(gr.hier_block2):
occupied_carriers, 1,
packet_length_tag_key,
frame_length_tag_key,
- packet_num_tag_key,
+ packet_nu_tag_key,
bps_header,
bps_payload,
scramble_header=scramble_bits
@@ -447,5 +452,3 @@ class ofdm_rx(gr.hier_block2):
self.connect(payload_demod, blocks.file_sink(1, 'post-payload-demod.dat'))
self.connect(payload_pack, blocks.file_sink(1, 'post-payload-pack.dat'))
self.connect(crc, blocks.file_sink(1, 'post-payload-crc.dat'))
-
-
diff --git a/gr-digital/python/digital/psk_constellations.py b/gr-digital/python/digital/psk_constellations.py
index 3f28ca5843..d2db4e848b 100755
--- a/gr-digital/python/digital/psk_constellations.py
+++ b/gr-digital/python/digital/psk_constellations.py
@@ -114,9 +114,9 @@ sd_psk_2_1 = sd_psk_2_0x1
def psk_4_0x0_0_1():
'''
- 10 | 11
- -------
- 00 | 01
+ | 10 | 11
+ | -------
+ | 00 | 01
'''
const_points = [-1-1j, 1-1j,
-1+1j, 1+1j]
@@ -127,9 +127,9 @@ psk_4_0 = psk_4
def psk_4_0x1_0_1():
'''
- 11 | 10
- -------
- 01 | 00
+ | 11 | 10
+ | -------
+ | 01 | 00
'''
k = 0x1
pi = [0, 1]
@@ -138,9 +138,9 @@ psk_4_1 = psk_4_0x1_0_1
def psk_4_0x2_0_1():
'''
- 00 | 01
- -------
- 10 | 11
+ | 00 | 01
+ | -------
+ | 10 | 11
'''
k = 0x2
pi = [0, 1]
@@ -149,9 +149,9 @@ psk_4_2 = psk_4_0x2_0_1
def psk_4_0x3_0_1():
'''
- 01 | 00
- -------
- 11 | 10
+ | 01 | 00
+ | -------
+ | 11 | 10
'''
k = 0x3
pi = [0, 1]
@@ -160,9 +160,9 @@ psk_4_3 = psk_4_0x3_0_1
def psk_4_0x0_1_0():
'''
- 01 | 11
- -------
- 00 | 10
+ | 01 | 11
+ | -------
+ | 00 | 10
'''
k = 0x0
pi = [1, 0]
@@ -171,9 +171,9 @@ psk_4_4 = psk_4_0x0_1_0
def psk_4_0x1_1_0():
'''
- 00 | 10
- -------
- 01 | 11
+ | 00 | 10
+ | -------
+ | 01 | 11
'''
k = 0x1
pi = [1, 0]
@@ -182,9 +182,9 @@ psk_4_5 = psk_4_0x1_1_0
def psk_4_0x2_1_0():
'''
- 11 | 01
- -------
- 10 | 00
+ | 11 | 01
+ | -------
+ | 10 | 00
'''
k = 0x2
pi = [1, 0]
@@ -193,9 +193,9 @@ psk_4_6 = psk_4_0x2_1_0
def psk_4_0x3_1_0():
'''
- 10 | 00
- -------
- 11 | 01
+ | 10 | 00
+ | -------
+ | 11 | 01
'''
k = 0x3
pi = [1, 0]
@@ -210,9 +210,9 @@ psk_4_7 = psk_4_0x3_1_0
def sd_psk_4_0x0_0_1(x, Es=1):
'''
- 10 | 11
- -------
- 00 | 01
+ | 10 | 11
+ | -------
+ | 00 | 01
'''
x_re = x.real
x_im = x.imag
@@ -223,9 +223,9 @@ sd_psk_4_0 = sd_psk_4
def sd_psk_4_0x1_0_1(x, Es=1):
'''
- 11 | 10
- -------
- 01 | 00
+ | 11 | 10
+ | -------
+ | 01 | 00
'''
x_re = x.real
x_im = x.imag
@@ -235,9 +235,9 @@ sd_psk_4_1 = sd_psk_4_0x1_0_1
def sd_psk_4_0x2_0_1(x, Es=1):
'''
- 00 | 01
- -------
- 10 | 11
+ | 00 | 01
+ | -------
+ | 10 | 11
'''
x_re = x.real
x_im = x.imag
@@ -247,9 +247,9 @@ sd_psk_4_2 = sd_psk_4_0x2_0_1
def sd_psk_4_0x3_0_1(x, Es=1):
'''
- 01 | 00
- -------
- 11 | 10
+ | 01 | 00
+ | -------
+ | 11 | 10
'''
x_re = x.real
x_im = x.imag
@@ -259,9 +259,9 @@ sd_psk_4_3 = sd_psk_4_0x3_0_1
def sd_psk_4_0x0_1_0(x, Es=1):
'''
- 01 | 11
- -------
- 00 | 10
+ | 01 | 11
+ | -------
+ | 00 | 10
'''
x_re = x.real
x_im = x.imag
@@ -271,9 +271,9 @@ sd_psk_4_4 = sd_psk_4_0x0_1_0
def sd_psk_4_0x1_1_0(x, Es=1):
'''
- 00 | 10
- -------
- 01 | 11
+ | 00 | 10
+ | -------
+ | 01 | 11
'''
x_re = x.real
x_im = x.imag
@@ -284,9 +284,9 @@ sd_psk_4_5 = sd_psk_4_0x1_1_0
def sd_psk_4_0x2_1_0(x, Es=1):
'''
- 11 | 01
- -------
- 10 | 00
+ | 11 | 01
+ | -------
+ | 10 | 00
'''
x_re = x.real
x_im = x.imag
@@ -296,9 +296,9 @@ sd_psk_4_6 = sd_psk_4_0x2_1_0
def sd_psk_4_0x3_1_0(x, Es=1):
'''
- 10 | 00
- -------
- 11 | 01
+ | 10 | 00
+ | -------
+ | 11 | 01
'''
x_re = x.real
x_im = x.imag
diff --git a/gr-digital/python/digital/qam_constellations.py b/gr-digital/python/digital/qam_constellations.py
index ed86d7e1e3..ab58916384 100755
--- a/gr-digital/python/digital/qam_constellations.py
+++ b/gr-digital/python/digital/qam_constellations.py
@@ -99,13 +99,13 @@ For 16QAM:
def qam_16_0x0_0_1_2_3():
'''
- 0010 0110 | 1110 1010
-
- 0011 0111 | 1111 1011
- -----------------------
- 0001 0101 | 1101 1001
-
- 0000 0100 | 1100 1000
+ | 0010 0110 | 1110 1010
+ |
+ | 0011 0111 | 1111 1011
+ | -----------------------
+ | 0001 0101 | 1101 1001
+ |
+ | 0000 0100 | 1100 1000
'''
const_points = [-3-3j, -1-3j, 1-3j, 3-3j,
-3-1j, -1-1j, 1-1j, 3-1j,
@@ -121,13 +121,13 @@ qam_16_0 = qam_16
def qam_16_0x1_0_1_2_3():
'''
- 0011 0111 | 1111 1011
-
- 0010 0110 | 1110 1010
- -----------------------
- 0000 0100 | 1100 1000
-
- 0001 0101 | 1101 1001
+ | 0011 0111 | 1111 1011
+ |
+ | 0010 0110 | 1110 1010
+ | -----------------------
+ | 0000 0100 | 1100 1000
+ |
+ | 0001 0101 | 1101 1001
'''
k = 0x1
pi = [0, 1, 2, 3]
@@ -136,13 +136,13 @@ qam_16_1 = qam_16_0x1_0_1_2_3
def qam_16_0x2_0_1_2_3():
'''
- 0000 0100 | 1100 1000
-
- 0001 0101 | 1101 1001
- -----------------------
- 0011 0111 | 1111 1011
-
- 0010 0110 | 1110 1010
+ | 0000 0100 | 1100 1000
+ |
+ | 0001 0101 | 1101 1001
+ | -----------------------
+ | 0011 0111 | 1111 1011
+ |
+ | 0010 0110 | 1110 1010
'''
k = 0x2
pi = [0, 1, 2, 3]
@@ -151,13 +151,13 @@ qam_16_2 = qam_16_0x2_0_1_2_3
def qam_16_0x3_0_1_2_3():
'''
- 0001 0101 | 1101 1001
-
- 0000 0100 | 1100 1000
- -----------------------
- 0010 0110 | 1110 1010
-
- 0011 0111 | 1111 1011
+ | 0001 0101 | 1101 1001
+ |
+ | 0000 0100 | 1100 1000
+ | -----------------------
+ | 0010 0110 | 1110 1010
+ |
+ | 0011 0111 | 1111 1011
'''
k = 0x3
pi = [0, 1, 2, 3]
@@ -167,13 +167,13 @@ qam_16_3 = qam_16_0x3_0_1_2_3
def qam_16_0x0_1_0_2_3():
'''
- 0001 0101 | 1101 1001
-
- 0011 0111 | 1111 1011
- -----------------------
- 0010 0110 | 1110 1010
-
- 0000 0100 | 1100 1000
+ | 0001 0101 | 1101 1001
+ |
+ | 0011 0111 | 1111 1011
+ | -----------------------
+ | 0010 0110 | 1110 1010
+ |
+ | 0000 0100 | 1100 1000
'''
k = 0x0
pi = [1, 0, 2, 3]
@@ -182,13 +182,13 @@ qam_16_4 = qam_16_0x0_1_0_2_3
def qam_16_0x1_1_0_2_3():
'''
- 0000 0100 | 1100 1000
-
- 0010 0110 | 1110 1010
- -----------------------
- 0011 0111 | 1111 1011
-
- 0001 0101 | 1101 1001
+ | 0000 0100 | 1100 1000
+ |
+ | 0010 0110 | 1110 1010
+ | -----------------------
+ | 0011 0111 | 1111 1011
+ |
+ | 0001 0101 | 1101 1001
'''
k = 0x1
pi = [1, 0, 2, 3]
@@ -197,13 +197,13 @@ qam_16_5 = qam_16_0x1_1_0_2_3
def qam_16_0x2_1_0_2_3():
'''
- 0011 0111 | 1111 1011
-
- 0001 0101 | 1101 1001
- -----------------------
- 0000 0100 | 1100 1000
-
- 0010 0110 | 1110 1010
+ | 0011 0111 | 1111 1011
+ |
+ | 0001 0101 | 1101 1001
+ | -----------------------
+ | 0000 0100 | 1100 1000
+ |
+ | 0010 0110 | 1110 1010
'''
k = 0x2
pi = [1, 0, 2, 3]
@@ -212,13 +212,13 @@ qam_16_6 = qam_16_0x2_1_0_2_3
def qam_16_0x3_1_0_2_3():
'''
- 0010 0110 | 1110 1010
-
- 0000 0100 | 1100 1000
- -----------------------
- 0001 0101 | 1101 1001
-
- 0011 0111 | 1111 1011
+ | 0010 0110 | 1110 1010
+ |
+ | 0000 0100 | 1100 1000
+ | -----------------------
+ | 0001 0101 | 1101 1001
+ |
+ | 0011 0111 | 1111 1011
'''
k = 0x3
pi = [1, 0, 2, 3]
@@ -230,15 +230,15 @@ qam_16_7 = qam_16_0x3_1_0_2_3
def sd_qam_16_0x0_0_1_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0010 0110 | 1110 1010
-
- 0011 0111 | 1111 1011
- -----------------------
- 0001 0101 | 1101 1001
-
- 0000 0100 | 1100 1000
+ | Soft bit LUT generator for constellation:
+ |
+ | 0010 0110 | 1110 1010
+ |
+ | 0011 0111 | 1111 1011
+ | -----------------------
+ | 0001 0101 | 1101 1001
+ |
+ | 0000 0100 | 1100 1000
'''
dist = Es*numpy.sqrt(2)
@@ -276,15 +276,15 @@ sd_qam_16_0 = sd_qam_16
def sd_qam_16_0x1_0_1_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0011 0111 | 1111 1011
-
- 0010 0110 | 1110 1010
- -----------------------
- 0000 0100 | 1100 1000
-
- 0001 0101 | 1101 1001
+ | Soft bit LUT generator for constellation:
+ |
+ | 0011 0111 | 1111 1011
+ |
+ | 0010 0110 | 1110 1010
+ | -----------------------
+ | 0000 0100 | 1100 1000
+ |
+ | 0001 0101 | 1101 1001
'''
x_re = 3*x.real
x_im = 3*x.imag
@@ -311,15 +311,15 @@ sd_qam_16_1 = sd_qam_16_0x1_0_1_2_3
def sd_qam_16_0x2_0_1_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0000 0100 | 1100 1000
-
- 0001 0101 | 1101 1001
- -----------------------
- 0011 0111 | 1111 1011
-
- 0010 0110 | 1110 1010
+ | Soft bit LUT generator for constellation:
+ |
+ | 0000 0100 | 1100 1000
+ |
+ | 0001 0101 | 1101 1001
+ | -----------------------
+ | 0011 0111 | 1111 1011
+ |
+ | 0010 0110 | 1110 1010
'''
x_re = 3*x.real
@@ -347,15 +347,15 @@ sd_qam_16_2 = sd_qam_16_0x2_0_1_2_3
def sd_qam_16_0x3_0_1_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0001 0101 | 1101 1001
-
- 0000 0100 | 1100 1000
- -----------------------
- 0010 0110 | 1110 1010
-
- 0011 0111 | 1111 1011
+ | Soft bit LUT generator for constellation:
+ |
+ | 0001 0101 | 1101 1001
+ |
+ | 0000 0100 | 1100 1000
+ | -----------------------
+ | 0010 0110 | 1110 1010
+ |
+ | 0011 0111 | 1111 1011
'''
x_re = 3*x.real
x_im = 3*x.imag
@@ -382,15 +382,15 @@ sd_qam_16_3 = sd_qam_16_0x3_0_1_2_3
def sd_qam_16_0x0_1_0_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0001 0101 | 1101 1001
-
- 0011 0111 | 1111 1011
- -----------------------
- 0010 0110 | 1110 1010
-
- 0000 0100 | 1100 1000
+ | Soft bit LUT generator for constellation:
+ |
+ | 0001 0101 | 1101 1001
+ |
+ | 0011 0111 | 1111 1011
+ | -----------------------
+ | 0010 0110 | 1110 1010
+ |
+ | 0000 0100 | 1100 1000
'''
x_re = 3*x.real
x_im = 3*x.imag
@@ -417,15 +417,15 @@ sd_qam_16_4 = sd_qam_16_0x0_1_0_2_3
def sd_qam_16_0x1_1_0_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0000 0100 | 1100 1000
-
- 0010 0110 | 1110 1010
- -----------------------
- 0011 0111 | 1111 1011
-
- 0001 0101 | 1101 1001
+ | Soft bit LUT generator for constellation:
+ |
+ | 0000 0100 | 1100 1000
+ |
+ | 0010 0110 | 1110 1010
+ | -----------------------
+ | 0011 0111 | 1111 1011
+ |
+ | 0001 0101 | 1101 1001
'''
x_re = 3*x.real
x_im = 3*x.imag
@@ -452,15 +452,15 @@ sd_qam_16_5 = sd_qam_16_0x1_1_0_2_3
def sd_qam_16_0x2_1_0_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0011 0111 | 1111 1011
-
- 0001 0101 | 1101 1001
- -----------------------
- 0000 0100 | 1100 1000
-
- 0010 0110 | 1110 1010
+ | Soft bit LUT generator for constellation:
+ |
+ | 0011 0111 | 1111 1011
+ |
+ | 0001 0101 | 1101 1001
+ | -----------------------
+ | 0000 0100 | 1100 1000
+ |
+ | 0010 0110 | 1110 1010
'''
x_re = 3*x.real
x_im = 3*x.imag
@@ -487,15 +487,15 @@ sd_qam_16_6 = sd_qam_16_0x2_1_0_2_3
def sd_qam_16_0x3_1_0_2_3(x, Es=1):
'''
- Soft bit LUT generator for constellation:
-
- 0010 0110 | 1110 1010
-
- 0000 0100 | 1100 1000
- -----------------------
- 0001 0101 | 1101 1001
-
- 0011 0111 | 1111 1011
+ | Soft bit LUT generator for constellation:
+ |
+ | 0010 0110 | 1110 1010
+ |
+ | 0000 0100 | 1100 1000
+ | -----------------------
+ | 0001 0101 | 1101 1001
+ |
+ | 0011 0111 | 1111 1011
'''
x_re = 3*x.real
x_im = 3*x.imag
diff --git a/gr-digital/python/digital/soft_dec_lut_gen.py b/gr-digital/python/digital/soft_dec_lut_gen.py
index 5bea27f843..f517277702 100644
--- a/gr-digital/python/digital/soft_dec_lut_gen.py
+++ b/gr-digital/python/digital/soft_dec_lut_gen.py
@@ -23,60 +23,61 @@
import numpy
def soft_dec_table_generator(soft_dec_gen, prec, Es=1):
- '''Builds a LUT that is a list of tuples. The tuple represents the
- soft decisions for the constellation/bit mapping at any given
- point in the complex space, (x,y).
-
- The table is built to a precision specified by the 'prec'
- argument. There are (2x2)^prec samples in the sample space, so we
- get the precision of 2^prec samples in both the real and imaginary
- axes.
-
- The space is represented where index 0 is the bottom left corner
- and the maximum index is the upper left. The table index for a
- surface space with 4 bits of precision looks like the following:
-
- 240 241 242 243 244 245 246 247 | 248 249 250 251 252 253 254 255
- 224 225 226 227 228 229 230 231 | 232 233 234 235 236 237 238 239
- 208 209 210 211 212 213 214 215 | 216 217 218 219 220 221 222 223
- 192 193 194 195 196 197 198 199 | 200 201 202 203 204 205 206 207
- 176 177 178 179 180 181 182 183 | 184 185 186 187 188 189 190 191
- 160 161 162 163 164 165 166 167 | 168 169 170 171 172 173 174 175
- 144 145 146 147 148 149 150 151 | 152 153 154 155 156 157 158 159
- 128 129 130 131 132 133 134 135 | 136 137 138 139 140 141 142 143
- -----------------------------------------------------------------
- 112 113 114 115 116 117 118 119 | 120 121 122 123 124 125 126 127
- 96 97 98 99 100 101 102 103 | 104 105 106 107 108 109 110 111
- 80 81 82 83 84 85 86 87 | 88 89 90 91 92 93 94 95
- 64 65 66 67 68 69 70 71 | 72 73 74 75 76 77 78 79
- 48 49 50 51 52 53 54 55 | 56 57 58 59 60 61 62 63
- 32 33 34 35 36 37 38 39 | 40 41 42 43 44 45 46 47
- 16 17 18 19 20 21 22 23 | 24 25 26 27 28 29 30 31
- 0 1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 15
-
- We then calculate coordinates from -1 to 1 with 2^prec points for
- both the x and y axes. We then sample starting at (-1, -1) and
- move left to right on the x-axis and then move up a row on the
- y-axis. For every point in this sampled space, we calculate the
- soft decisions for the given constellation/mapping. This is done
- by passing in the function 'soft_dec_gen' as an argument to this
- function. This takes in the x/y coordinates and outputs the soft
- decisions. These soft decisions are stored into the list at the
- index from the above table as a tuple.
-
- The function 'calc_from_table' takes in a point and reverses this
- operation. It converts the point from the coordinates (-1,-1) to
- (1,1) into an index value in the table and returns the tuple of
- soft decisions at that index.
-
- Es is the maximum energy per symbol. This is passed to the
- function to provide the bounds when calling the generator function
- since they don't know how the constellation was normalized. Using
- the (maximum) energy per symbol for constellation allows us to
- provide any scaling of the constellation (normalized to sum to 1,
- normalized so the outside points sit on +/-1, etc.) but still
- calculate the soft decisions as we would given the full
- constellation.
+ '''
+ | Builds a LUT that is a list of tuples. The tuple represents the
+ | soft decisions for the constellation/bit mapping at any given
+ | point in the complex space, (x,y).
+ |
+ | The table is built to a precision specified by the 'prec'
+ | argument. There are (2x2)^prec samples in the sample space, so we
+ | get the precision of 2^prec samples in both the real and imaginary
+ | axes.
+ |
+ | The space is represented where index 0 is the bottom left corner
+ | and the maximum index is the upper left. The table index for a
+ | surface space with 4 bits of precision looks like the following:
+ |
+ | 240 241 242 243 244 245 246 247 | 248 249 250 251 252 253 254 255
+ | 224 225 226 227 228 229 230 231 | 232 233 234 235 236 237 238 239
+ | 208 209 210 211 212 213 214 215 | 216 217 218 219 220 221 222 223
+ | 192 193 194 195 196 197 198 199 | 200 201 202 203 204 205 206 207
+ | 176 177 178 179 180 181 182 183 | 184 185 186 187 188 189 190 191
+ | 160 161 162 163 164 165 166 167 | 168 169 170 171 172 173 174 175
+ | 144 145 146 147 148 149 150 151 | 152 153 154 155 156 157 158 159
+ | 128 129 130 131 132 133 134 135 | 136 137 138 139 140 141 142 143
+ | -----------------------------------------------------------------
+ | 112 113 114 115 116 117 118 119 | 120 121 122 123 124 125 126 127
+ | 96 97 98 99 100 101 102 103 | 104 105 106 107 108 109 110 111
+ | 80 81 82 83 84 85 86 87 | 88 89 90 91 92 93 94 95
+ | 64 65 66 67 68 69 70 71 | 72 73 74 75 76 77 78 79
+ | 48 49 50 51 52 53 54 55 | 56 57 58 59 60 61 62 63
+ | 32 33 34 35 36 37 38 39 | 40 41 42 43 44 45 46 47
+ | 16 17 18 19 20 21 22 23 | 24 25 26 27 28 29 30 31
+ | 0 1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 15
+ |
+ | We then calculate coordinates from -1 to 1 with 2^prec points for
+ | both the x and y axes. We then sample starting at (-1, -1) and
+ | move left to right on the x-axis and then move up a row on the
+ | y-axis. For every point in this sampled space, we calculate the
+ | soft decisions for the given constellation/mapping. This is done
+ | by passing in the function 'soft_dec_gen' as an argument to this
+ | function. This takes in the x/y coordinates and outputs the soft
+ | decisions. These soft decisions are stored into the list at the
+ | index from the above table as a tuple.
+ |
+ | The function 'calc_from_table' takes in a point and reverses this
+ | operation. It converts the point from the coordinates (-1,-1) to
+ | (1,1) into an index value in the table and returns the tuple of
+ | soft decisions at that index.
+ |
+ | Es is the maximum energy per symbol. This is passed to the
+ | function to provide the bounds when calling the generator function
+ | since they don't know how the constellation was normalized. Using
+ | the (maximum) energy per symbol for constellation allows us to
+ | provide any scaling of the constellation (normalized to sum to 1,
+ | normalized so the outside points sit on +/-1, etc.) but still
+ | calculate the soft decisions as we would given the full
+ | constellation.
'''
diff --git a/gr-fec/examples/tpc_ber_curve_gen.py b/gr-fec/examples/tpc_ber_curve_gen.py
new file mode 100755
index 0000000000..004f9f8988
--- /dev/null
+++ b/gr-fec/examples/tpc_ber_curve_gen.py
@@ -0,0 +1,457 @@
+#!/usr/bin/env python2
+##################################################
+# GNU Radio Python Flow Graph
+# Title: Tpc Ber Curve Gen
+# Generated: Thu Jul 23 09:27:33 2015
+##################################################
+
+if __name__ == '__main__':
+ import ctypes
+ import sys
+ if sys.platform.startswith('linux'):
+ try:
+ x11 = ctypes.cdll.LoadLibrary('libX11.so')
+ x11.XInitThreads()
+ except:
+ print "Warning: failed to XInitThreads()"
+
+from PyQt4 import Qt
+from gnuradio import eng_notation
+from gnuradio import fec
+from gnuradio import gr
+from gnuradio import qtgui
+from gnuradio.eng_option import eng_option
+from gnuradio.filter import firdes
+from optparse import OptionParser
+import numpy
+import sip
+import sys
+
+from distutils.version import StrictVersion
+class tpc_ber_curve_gen(gr.top_block, Qt.QWidget):
+
+ def __init__(self):
+ gr.top_block.__init__(self, "Tpc Ber Curve Gen")
+ Qt.QWidget.__init__(self)
+ self.setWindowTitle("Tpc Ber Curve Gen")
+ try:
+ self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
+ except:
+ pass
+ self.top_scroll_layout = Qt.QVBoxLayout()
+ self.setLayout(self.top_scroll_layout)
+ self.top_scroll = Qt.QScrollArea()
+ self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
+ self.top_scroll_layout.addWidget(self.top_scroll)
+ self.top_scroll.setWidgetResizable(True)
+ self.top_widget = Qt.QWidget()
+ self.top_scroll.setWidget(self.top_widget)
+ self.top_layout = Qt.QVBoxLayout(self.top_widget)
+ self.top_grid_layout = Qt.QGridLayout()
+ self.top_layout.addLayout(self.top_grid_layout)
+
+ self.settings = Qt.QSettings("GNU Radio", "tpc_ber_curve_gen")
+ self.restoreGeometry(self.settings.value("geometry").toByteArray())
+
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.esno_0 = esno_0 = numpy.arange(0, 8, .5)
+ self.samp_rate_0 = samp_rate_0 = 35000000
+ self.rate = rate = 2
+ self.polys = polys = [79, 109]
+ self.k = k = 7
+ self.framebits = framebits = 4096
+
+ self.enc_tpc_4 = enc_tpc_4 = map( (lambda b: map( ( lambda a: fec.tpc_encoder_make(([3]), ([43]), 26, 6, 9, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.enc_tpc_3 = enc_tpc_3 = map( (lambda b: map( ( lambda a: fec.tpc_encoder_make(([3]), ([43]), 26, 6, 9, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.enc_tpc_2 = enc_tpc_2 = map( (lambda b: map( ( lambda a: fec.tpc_encoder_make(([3]), ([43]), 26, 6, 9, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.enc_tpc_1 = enc_tpc_1 = map( (lambda b: map( ( lambda a: fec.tpc_encoder_make(([3]), ([43]), 26, 6, 9, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.enc_tpc_0 = enc_tpc_0 = map( (lambda b: map( ( lambda a: fec.tpc_encoder_make(([3]), ([43]), 26, 6, 9, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.dec_tpc_4 = dec_tpc_4 = map( (lambda b: map( ( lambda a: fec.tpc_decoder_make(([3]), ([43]), 26, 6, 9, 3, 6, 4)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.dec_tpc_3 = dec_tpc_3 = map( (lambda b: map( ( lambda a: fec.tpc_decoder_make(([3]), ([43]), 26, 6, 9, 3, 6, 3)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.dec_tpc_2 = dec_tpc_2 = map( (lambda b: map( ( lambda a: fec.tpc_decoder_make(([3]), ([43]), 26, 6, 9, 3, 6, 2)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.dec_tpc_1 = dec_tpc_1 = map( (lambda b: map( ( lambda a: fec.tpc_decoder_make(([3]), ([43]), 26, 6, 9, 3, 6, 1)), range(0,1) ) ), range(0,len(esno_0)));
+
+ self.dec_tpc_0 = dec_tpc_0 = map( (lambda b: map( ( lambda a: fec.tpc_decoder_make(([3]), ([43]), 26, 6, 9, 3, 6, 0)), range(0,1) ) ), range(0,len(esno_0)));
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.qtgui_bercurve_sink_0 = qtgui.ber_sink_b(
+ esno_0, #range of esnos
+ 5, #number of curves
+ 1000, #ensure at least
+ -10, #cutoff
+ [], #indiv. curve names
+ )
+ self.qtgui_bercurve_sink_0.set_update_time(0.10)
+ self.qtgui_bercurve_sink_0.set_y_axis(-10, 0)
+ self.qtgui_bercurve_sink_0.set_x_axis(esno_0[0], esno_0[-1])
+
+ labels = ["Linear LOG-MAP", "MAX LOG-MAP", "Constant LOG-MAP", "LOG-MAP (LUT)", "LOG-MAP (C Correction)",
+ "", "", "", "", ""]
+ widths = [2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1]
+ colors = ["blue", "red", "magenta", "dark red", "Dark Blue",
+ "red", "red", "red", "red", "red"]
+ styles = [1, 2, 5, 5, 4,
+ 0, 0, 0, 0, 0]
+ markers = [0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0]
+ alphas = [1, 1, 1, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0]
+ for i in xrange(5):
+ if len(labels[i]) == 0:
+ self.qtgui_bercurve_sink_0.set_line_label(i, "Data {0}".format(i))
+ else:
+ self.qtgui_bercurve_sink_0.set_line_label(i, labels[i])
+ self.qtgui_bercurve_sink_0.set_line_width(i, widths[i])
+ self.qtgui_bercurve_sink_0.set_line_color(i, colors[i])
+ self.qtgui_bercurve_sink_0.set_line_style(i, styles[i])
+ self.qtgui_bercurve_sink_0.set_line_marker(i, markers[i])
+ self.qtgui_bercurve_sink_0.set_line_alpha(i, alphas[i])
+
+ self._qtgui_bercurve_sink_0_win = sip.wrapinstance(self.qtgui_bercurve_sink_0.pyqwidget(), Qt.QWidget)
+ self.top_layout.addWidget(self._qtgui_bercurve_sink_0_win)
+ self.fec_bercurve_generator_0_1_0 = fec.bercurve_generator(
+ enc_tpc_4, #size
+ dec_tpc_4, #name
+ esno_0, #range of esnos
+ samp_rate_0, #throttle
+ "capillary", #threading mode
+ '11', #puncture pattern
+ -100 # noise gen. seed
+ )
+
+ self.fec_bercurve_generator_0_1 = fec.bercurve_generator(
+ enc_tpc_3, #size
+ dec_tpc_3, #name
+ esno_0, #range of esnos
+ samp_rate_0, #throttle
+ "capillary", #threading mode
+ '11', #puncture pattern
+ -100 # noise gen. seed
+ )
+
+ self.fec_bercurve_generator_0_0_0 = fec.bercurve_generator(
+ enc_tpc_0, #size
+ dec_tpc_0, #name
+ esno_0, #range of esnos
+ samp_rate_0, #throttle
+ "capillary", #threading mode
+ '11', #puncture pattern
+ -100 # noise gen. seed
+ )
+
+ self.fec_bercurve_generator_0_0 = fec.bercurve_generator(
+ enc_tpc_1, #size
+ dec_tpc_1, #name
+ esno_0, #range of esnos
+ samp_rate_0, #throttle
+ "capillary", #threading mode
+ '11', #puncture pattern
+ -100 # noise gen. seed
+ )
+
+ self.fec_bercurve_generator_0 = fec.bercurve_generator(
+ enc_tpc_2, #size
+ dec_tpc_2, #name
+ esno_0, #range of esnos
+ samp_rate_0, #throttle
+ "capillary", #threading mode
+ '11', #puncture pattern
+ -100 # noise gen. seed
+ )
+
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.fec_bercurve_generator_0, 0), (self.qtgui_bercurve_sink_0, 64))
+ self.connect((self.fec_bercurve_generator_0, 1), (self.qtgui_bercurve_sink_0, 65))
+ self.connect((self.fec_bercurve_generator_0, 2), (self.qtgui_bercurve_sink_0, 66))
+ self.connect((self.fec_bercurve_generator_0, 3), (self.qtgui_bercurve_sink_0, 67))
+ self.connect((self.fec_bercurve_generator_0, 4), (self.qtgui_bercurve_sink_0, 68))
+ self.connect((self.fec_bercurve_generator_0, 5), (self.qtgui_bercurve_sink_0, 69))
+ self.connect((self.fec_bercurve_generator_0, 6), (self.qtgui_bercurve_sink_0, 70))
+ self.connect((self.fec_bercurve_generator_0, 7), (self.qtgui_bercurve_sink_0, 71))
+ self.connect((self.fec_bercurve_generator_0, 8), (self.qtgui_bercurve_sink_0, 72))
+ self.connect((self.fec_bercurve_generator_0, 9), (self.qtgui_bercurve_sink_0, 73))
+ self.connect((self.fec_bercurve_generator_0, 10), (self.qtgui_bercurve_sink_0, 74))
+ self.connect((self.fec_bercurve_generator_0, 11), (self.qtgui_bercurve_sink_0, 75))
+ self.connect((self.fec_bercurve_generator_0, 12), (self.qtgui_bercurve_sink_0, 76))
+ self.connect((self.fec_bercurve_generator_0, 13), (self.qtgui_bercurve_sink_0, 77))
+ self.connect((self.fec_bercurve_generator_0, 14), (self.qtgui_bercurve_sink_0, 78))
+ self.connect((self.fec_bercurve_generator_0, 15), (self.qtgui_bercurve_sink_0, 79))
+ self.connect((self.fec_bercurve_generator_0, 16), (self.qtgui_bercurve_sink_0, 80))
+ self.connect((self.fec_bercurve_generator_0, 17), (self.qtgui_bercurve_sink_0, 81))
+ self.connect((self.fec_bercurve_generator_0, 18), (self.qtgui_bercurve_sink_0, 82))
+ self.connect((self.fec_bercurve_generator_0, 19), (self.qtgui_bercurve_sink_0, 83))
+ self.connect((self.fec_bercurve_generator_0, 20), (self.qtgui_bercurve_sink_0, 84))
+ self.connect((self.fec_bercurve_generator_0, 21), (self.qtgui_bercurve_sink_0, 85))
+ self.connect((self.fec_bercurve_generator_0, 22), (self.qtgui_bercurve_sink_0, 86))
+ self.connect((self.fec_bercurve_generator_0, 23), (self.qtgui_bercurve_sink_0, 87))
+ self.connect((self.fec_bercurve_generator_0, 24), (self.qtgui_bercurve_sink_0, 88))
+ self.connect((self.fec_bercurve_generator_0, 25), (self.qtgui_bercurve_sink_0, 89))
+ self.connect((self.fec_bercurve_generator_0, 26), (self.qtgui_bercurve_sink_0, 90))
+ self.connect((self.fec_bercurve_generator_0, 27), (self.qtgui_bercurve_sink_0, 91))
+ self.connect((self.fec_bercurve_generator_0, 28), (self.qtgui_bercurve_sink_0, 92))
+ self.connect((self.fec_bercurve_generator_0, 29), (self.qtgui_bercurve_sink_0, 93))
+ self.connect((self.fec_bercurve_generator_0, 30), (self.qtgui_bercurve_sink_0, 94))
+ self.connect((self.fec_bercurve_generator_0, 31), (self.qtgui_bercurve_sink_0, 95))
+ self.connect((self.fec_bercurve_generator_0_0, 0), (self.qtgui_bercurve_sink_0, 32))
+ self.connect((self.fec_bercurve_generator_0_0, 1), (self.qtgui_bercurve_sink_0, 33))
+ self.connect((self.fec_bercurve_generator_0_0, 2), (self.qtgui_bercurve_sink_0, 34))
+ self.connect((self.fec_bercurve_generator_0_0, 3), (self.qtgui_bercurve_sink_0, 35))
+ self.connect((self.fec_bercurve_generator_0_0, 4), (self.qtgui_bercurve_sink_0, 36))
+ self.connect((self.fec_bercurve_generator_0_0, 5), (self.qtgui_bercurve_sink_0, 37))
+ self.connect((self.fec_bercurve_generator_0_0, 6), (self.qtgui_bercurve_sink_0, 38))
+ self.connect((self.fec_bercurve_generator_0_0, 7), (self.qtgui_bercurve_sink_0, 39))
+ self.connect((self.fec_bercurve_generator_0_0, 8), (self.qtgui_bercurve_sink_0, 40))
+ self.connect((self.fec_bercurve_generator_0_0, 9), (self.qtgui_bercurve_sink_0, 41))
+ self.connect((self.fec_bercurve_generator_0_0, 10), (self.qtgui_bercurve_sink_0, 42))
+ self.connect((self.fec_bercurve_generator_0_0, 11), (self.qtgui_bercurve_sink_0, 43))
+ self.connect((self.fec_bercurve_generator_0_0, 12), (self.qtgui_bercurve_sink_0, 44))
+ self.connect((self.fec_bercurve_generator_0_0, 13), (self.qtgui_bercurve_sink_0, 45))
+ self.connect((self.fec_bercurve_generator_0_0, 14), (self.qtgui_bercurve_sink_0, 46))
+ self.connect((self.fec_bercurve_generator_0_0, 15), (self.qtgui_bercurve_sink_0, 47))
+ self.connect((self.fec_bercurve_generator_0_0, 16), (self.qtgui_bercurve_sink_0, 48))
+ self.connect((self.fec_bercurve_generator_0_0, 17), (self.qtgui_bercurve_sink_0, 49))
+ self.connect((self.fec_bercurve_generator_0_0, 18), (self.qtgui_bercurve_sink_0, 50))
+ self.connect((self.fec_bercurve_generator_0_0, 19), (self.qtgui_bercurve_sink_0, 51))
+ self.connect((self.fec_bercurve_generator_0_0, 20), (self.qtgui_bercurve_sink_0, 52))
+ self.connect((self.fec_bercurve_generator_0_0, 21), (self.qtgui_bercurve_sink_0, 53))
+ self.connect((self.fec_bercurve_generator_0_0, 22), (self.qtgui_bercurve_sink_0, 54))
+ self.connect((self.fec_bercurve_generator_0_0, 23), (self.qtgui_bercurve_sink_0, 55))
+ self.connect((self.fec_bercurve_generator_0_0, 24), (self.qtgui_bercurve_sink_0, 56))
+ self.connect((self.fec_bercurve_generator_0_0, 25), (self.qtgui_bercurve_sink_0, 57))
+ self.connect((self.fec_bercurve_generator_0_0, 26), (self.qtgui_bercurve_sink_0, 58))
+ self.connect((self.fec_bercurve_generator_0_0, 27), (self.qtgui_bercurve_sink_0, 59))
+ self.connect((self.fec_bercurve_generator_0_0, 28), (self.qtgui_bercurve_sink_0, 60))
+ self.connect((self.fec_bercurve_generator_0_0, 29), (self.qtgui_bercurve_sink_0, 61))
+ self.connect((self.fec_bercurve_generator_0_0, 30), (self.qtgui_bercurve_sink_0, 62))
+ self.connect((self.fec_bercurve_generator_0_0, 31), (self.qtgui_bercurve_sink_0, 63))
+ self.connect((self.fec_bercurve_generator_0_0_0, 0), (self.qtgui_bercurve_sink_0, 0))
+ self.connect((self.fec_bercurve_generator_0_0_0, 1), (self.qtgui_bercurve_sink_0, 1))
+ self.connect((self.fec_bercurve_generator_0_0_0, 2), (self.qtgui_bercurve_sink_0, 2))
+ self.connect((self.fec_bercurve_generator_0_0_0, 3), (self.qtgui_bercurve_sink_0, 3))
+ self.connect((self.fec_bercurve_generator_0_0_0, 4), (self.qtgui_bercurve_sink_0, 4))
+ self.connect((self.fec_bercurve_generator_0_0_0, 5), (self.qtgui_bercurve_sink_0, 5))
+ self.connect((self.fec_bercurve_generator_0_0_0, 6), (self.qtgui_bercurve_sink_0, 6))
+ self.connect((self.fec_bercurve_generator_0_0_0, 7), (self.qtgui_bercurve_sink_0, 7))
+ self.connect((self.fec_bercurve_generator_0_0_0, 8), (self.qtgui_bercurve_sink_0, 8))
+ self.connect((self.fec_bercurve_generator_0_0_0, 9), (self.qtgui_bercurve_sink_0, 9))
+ self.connect((self.fec_bercurve_generator_0_0_0, 10), (self.qtgui_bercurve_sink_0, 10))
+ self.connect((self.fec_bercurve_generator_0_0_0, 11), (self.qtgui_bercurve_sink_0, 11))
+ self.connect((self.fec_bercurve_generator_0_0_0, 12), (self.qtgui_bercurve_sink_0, 12))
+ self.connect((self.fec_bercurve_generator_0_0_0, 13), (self.qtgui_bercurve_sink_0, 13))
+ self.connect((self.fec_bercurve_generator_0_0_0, 14), (self.qtgui_bercurve_sink_0, 14))
+ self.connect((self.fec_bercurve_generator_0_0_0, 15), (self.qtgui_bercurve_sink_0, 15))
+ self.connect((self.fec_bercurve_generator_0_0_0, 16), (self.qtgui_bercurve_sink_0, 16))
+ self.connect((self.fec_bercurve_generator_0_0_0, 17), (self.qtgui_bercurve_sink_0, 17))
+ self.connect((self.fec_bercurve_generator_0_0_0, 18), (self.qtgui_bercurve_sink_0, 18))
+ self.connect((self.fec_bercurve_generator_0_0_0, 19), (self.qtgui_bercurve_sink_0, 19))
+ self.connect((self.fec_bercurve_generator_0_0_0, 20), (self.qtgui_bercurve_sink_0, 20))
+ self.connect((self.fec_bercurve_generator_0_0_0, 21), (self.qtgui_bercurve_sink_0, 21))
+ self.connect((self.fec_bercurve_generator_0_0_0, 22), (self.qtgui_bercurve_sink_0, 22))
+ self.connect((self.fec_bercurve_generator_0_0_0, 23), (self.qtgui_bercurve_sink_0, 23))
+ self.connect((self.fec_bercurve_generator_0_0_0, 24), (self.qtgui_bercurve_sink_0, 24))
+ self.connect((self.fec_bercurve_generator_0_0_0, 25), (self.qtgui_bercurve_sink_0, 25))
+ self.connect((self.fec_bercurve_generator_0_0_0, 26), (self.qtgui_bercurve_sink_0, 26))
+ self.connect((self.fec_bercurve_generator_0_0_0, 27), (self.qtgui_bercurve_sink_0, 27))
+ self.connect((self.fec_bercurve_generator_0_0_0, 28), (self.qtgui_bercurve_sink_0, 28))
+ self.connect((self.fec_bercurve_generator_0_0_0, 29), (self.qtgui_bercurve_sink_0, 29))
+ self.connect((self.fec_bercurve_generator_0_0_0, 30), (self.qtgui_bercurve_sink_0, 30))
+ self.connect((self.fec_bercurve_generator_0_0_0, 31), (self.qtgui_bercurve_sink_0, 31))
+ self.connect((self.fec_bercurve_generator_0_1, 0), (self.qtgui_bercurve_sink_0, 96))
+ self.connect((self.fec_bercurve_generator_0_1, 1), (self.qtgui_bercurve_sink_0, 97))
+ self.connect((self.fec_bercurve_generator_0_1, 2), (self.qtgui_bercurve_sink_0, 98))
+ self.connect((self.fec_bercurve_generator_0_1, 3), (self.qtgui_bercurve_sink_0, 99))
+ self.connect((self.fec_bercurve_generator_0_1, 4), (self.qtgui_bercurve_sink_0, 100))
+ self.connect((self.fec_bercurve_generator_0_1, 5), (self.qtgui_bercurve_sink_0, 101))
+ self.connect((self.fec_bercurve_generator_0_1, 6), (self.qtgui_bercurve_sink_0, 102))
+ self.connect((self.fec_bercurve_generator_0_1, 7), (self.qtgui_bercurve_sink_0, 103))
+ self.connect((self.fec_bercurve_generator_0_1, 8), (self.qtgui_bercurve_sink_0, 104))
+ self.connect((self.fec_bercurve_generator_0_1, 9), (self.qtgui_bercurve_sink_0, 105))
+ self.connect((self.fec_bercurve_generator_0_1, 10), (self.qtgui_bercurve_sink_0, 106))
+ self.connect((self.fec_bercurve_generator_0_1, 11), (self.qtgui_bercurve_sink_0, 107))
+ self.connect((self.fec_bercurve_generator_0_1, 12), (self.qtgui_bercurve_sink_0, 108))
+ self.connect((self.fec_bercurve_generator_0_1, 13), (self.qtgui_bercurve_sink_0, 109))
+ self.connect((self.fec_bercurve_generator_0_1, 14), (self.qtgui_bercurve_sink_0, 110))
+ self.connect((self.fec_bercurve_generator_0_1, 15), (self.qtgui_bercurve_sink_0, 111))
+ self.connect((self.fec_bercurve_generator_0_1, 16), (self.qtgui_bercurve_sink_0, 112))
+ self.connect((self.fec_bercurve_generator_0_1, 17), (self.qtgui_bercurve_sink_0, 113))
+ self.connect((self.fec_bercurve_generator_0_1, 18), (self.qtgui_bercurve_sink_0, 114))
+ self.connect((self.fec_bercurve_generator_0_1, 19), (self.qtgui_bercurve_sink_0, 115))
+ self.connect((self.fec_bercurve_generator_0_1, 20), (self.qtgui_bercurve_sink_0, 116))
+ self.connect((self.fec_bercurve_generator_0_1, 21), (self.qtgui_bercurve_sink_0, 117))
+ self.connect((self.fec_bercurve_generator_0_1, 22), (self.qtgui_bercurve_sink_0, 118))
+ self.connect((self.fec_bercurve_generator_0_1, 23), (self.qtgui_bercurve_sink_0, 119))
+ self.connect((self.fec_bercurve_generator_0_1, 24), (self.qtgui_bercurve_sink_0, 120))
+ self.connect((self.fec_bercurve_generator_0_1, 25), (self.qtgui_bercurve_sink_0, 121))
+ self.connect((self.fec_bercurve_generator_0_1, 26), (self.qtgui_bercurve_sink_0, 122))
+ self.connect((self.fec_bercurve_generator_0_1, 27), (self.qtgui_bercurve_sink_0, 123))
+ self.connect((self.fec_bercurve_generator_0_1, 28), (self.qtgui_bercurve_sink_0, 124))
+ self.connect((self.fec_bercurve_generator_0_1, 29), (self.qtgui_bercurve_sink_0, 125))
+ self.connect((self.fec_bercurve_generator_0_1, 30), (self.qtgui_bercurve_sink_0, 126))
+ self.connect((self.fec_bercurve_generator_0_1, 31), (self.qtgui_bercurve_sink_0, 127))
+ self.connect((self.fec_bercurve_generator_0_1_0, 0), (self.qtgui_bercurve_sink_0, 128))
+ self.connect((self.fec_bercurve_generator_0_1_0, 1), (self.qtgui_bercurve_sink_0, 129))
+ self.connect((self.fec_bercurve_generator_0_1_0, 2), (self.qtgui_bercurve_sink_0, 130))
+ self.connect((self.fec_bercurve_generator_0_1_0, 3), (self.qtgui_bercurve_sink_0, 131))
+ self.connect((self.fec_bercurve_generator_0_1_0, 4), (self.qtgui_bercurve_sink_0, 132))
+ self.connect((self.fec_bercurve_generator_0_1_0, 5), (self.qtgui_bercurve_sink_0, 133))
+ self.connect((self.fec_bercurve_generator_0_1_0, 6), (self.qtgui_bercurve_sink_0, 134))
+ self.connect((self.fec_bercurve_generator_0_1_0, 7), (self.qtgui_bercurve_sink_0, 135))
+ self.connect((self.fec_bercurve_generator_0_1_0, 8), (self.qtgui_bercurve_sink_0, 136))
+ self.connect((self.fec_bercurve_generator_0_1_0, 9), (self.qtgui_bercurve_sink_0, 137))
+ self.connect((self.fec_bercurve_generator_0_1_0, 10), (self.qtgui_bercurve_sink_0, 138))
+ self.connect((self.fec_bercurve_generator_0_1_0, 11), (self.qtgui_bercurve_sink_0, 139))
+ self.connect((self.fec_bercurve_generator_0_1_0, 12), (self.qtgui_bercurve_sink_0, 140))
+ self.connect((self.fec_bercurve_generator_0_1_0, 13), (self.qtgui_bercurve_sink_0, 141))
+ self.connect((self.fec_bercurve_generator_0_1_0, 14), (self.qtgui_bercurve_sink_0, 142))
+ self.connect((self.fec_bercurve_generator_0_1_0, 15), (self.qtgui_bercurve_sink_0, 143))
+ self.connect((self.fec_bercurve_generator_0_1_0, 16), (self.qtgui_bercurve_sink_0, 144))
+ self.connect((self.fec_bercurve_generator_0_1_0, 17), (self.qtgui_bercurve_sink_0, 145))
+ self.connect((self.fec_bercurve_generator_0_1_0, 18), (self.qtgui_bercurve_sink_0, 146))
+ self.connect((self.fec_bercurve_generator_0_1_0, 19), (self.qtgui_bercurve_sink_0, 147))
+ self.connect((self.fec_bercurve_generator_0_1_0, 20), (self.qtgui_bercurve_sink_0, 148))
+ self.connect((self.fec_bercurve_generator_0_1_0, 21), (self.qtgui_bercurve_sink_0, 149))
+ self.connect((self.fec_bercurve_generator_0_1_0, 22), (self.qtgui_bercurve_sink_0, 150))
+ self.connect((self.fec_bercurve_generator_0_1_0, 23), (self.qtgui_bercurve_sink_0, 151))
+ self.connect((self.fec_bercurve_generator_0_1_0, 24), (self.qtgui_bercurve_sink_0, 152))
+ self.connect((self.fec_bercurve_generator_0_1_0, 25), (self.qtgui_bercurve_sink_0, 153))
+ self.connect((self.fec_bercurve_generator_0_1_0, 26), (self.qtgui_bercurve_sink_0, 154))
+ self.connect((self.fec_bercurve_generator_0_1_0, 27), (self.qtgui_bercurve_sink_0, 155))
+ self.connect((self.fec_bercurve_generator_0_1_0, 28), (self.qtgui_bercurve_sink_0, 156))
+ self.connect((self.fec_bercurve_generator_0_1_0, 29), (self.qtgui_bercurve_sink_0, 157))
+ self.connect((self.fec_bercurve_generator_0_1_0, 30), (self.qtgui_bercurve_sink_0, 158))
+ self.connect((self.fec_bercurve_generator_0_1_0, 31), (self.qtgui_bercurve_sink_0, 159))
+
+ def closeEvent(self, event):
+ self.settings = Qt.QSettings("GNU Radio", "tpc_ber_curve_gen")
+ self.settings.setValue("geometry", self.saveGeometry())
+ event.accept()
+
+ def get_esno_0(self):
+ return self.esno_0
+
+ def set_esno_0(self, esno_0):
+ self.esno_0 = esno_0
+
+ def get_samp_rate_0(self):
+ return self.samp_rate_0
+
+ def set_samp_rate_0(self, samp_rate_0):
+ self.samp_rate_0 = samp_rate_0
+
+ def get_rate(self):
+ return self.rate
+
+ def set_rate(self, rate):
+ self.rate = rate
+
+ def get_polys(self):
+ return self.polys
+
+ def set_polys(self, polys):
+ self.polys = polys
+
+ def get_k(self):
+ return self.k
+
+ def set_k(self, k):
+ self.k = k
+
+ def get_framebits(self):
+ return self.framebits
+
+ def set_framebits(self, framebits):
+ self.framebits = framebits
+
+ def get_enc_tpc_4(self):
+ return self.enc_tpc_4
+
+ def set_enc_tpc_4(self, enc_tpc_4):
+ self.enc_tpc_4 = enc_tpc_4
+
+ def get_enc_tpc_3(self):
+ return self.enc_tpc_3
+
+ def set_enc_tpc_3(self, enc_tpc_3):
+ self.enc_tpc_3 = enc_tpc_3
+
+ def get_enc_tpc_2(self):
+ return self.enc_tpc_2
+
+ def set_enc_tpc_2(self, enc_tpc_2):
+ self.enc_tpc_2 = enc_tpc_2
+
+ def get_enc_tpc_1(self):
+ return self.enc_tpc_1
+
+ def set_enc_tpc_1(self, enc_tpc_1):
+ self.enc_tpc_1 = enc_tpc_1
+
+ def get_enc_tpc_0(self):
+ return self.enc_tpc_0
+
+ def set_enc_tpc_0(self, enc_tpc_0):
+ self.enc_tpc_0 = enc_tpc_0
+
+ def get_dec_tpc_4(self):
+ return self.dec_tpc_4
+
+ def set_dec_tpc_4(self, dec_tpc_4):
+ self.dec_tpc_4 = dec_tpc_4
+
+ def get_dec_tpc_3(self):
+ return self.dec_tpc_3
+
+ def set_dec_tpc_3(self, dec_tpc_3):
+ self.dec_tpc_3 = dec_tpc_3
+
+ def get_dec_tpc_2(self):
+ return self.dec_tpc_2
+
+ def set_dec_tpc_2(self, dec_tpc_2):
+ self.dec_tpc_2 = dec_tpc_2
+
+ def get_dec_tpc_1(self):
+ return self.dec_tpc_1
+
+ def set_dec_tpc_1(self, dec_tpc_1):
+ self.dec_tpc_1 = dec_tpc_1
+
+ def get_dec_tpc_0(self):
+ return self.dec_tpc_0
+
+ def set_dec_tpc_0(self, dec_tpc_0):
+ self.dec_tpc_0 = dec_tpc_0
+
+
+if __name__ == '__main__':
+ parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ (options, args) = parser.parse_args()
+ if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")):
+ Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
+ qapp = Qt.QApplication(sys.argv)
+ tb = tpc_ber_curve_gen()
+ tb.start()
+ tb.show()
+ def quitting():
+ tb.stop()
+ tb.wait()
+ qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
+ qapp.exec_()
+ tb = None #to clean up Qt widgets
diff --git a/gr-filter/lib/pfb_arb_resampler_fff_impl.cc b/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
index e82ef31625..8602a2f0fa 100644
--- a/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
+++ b/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
@@ -33,20 +33,19 @@ namespace gr {
pfb_arb_resampler_fff::sptr
pfb_arb_resampler_fff::make(float rate,
- const std::vector<float> &taps,
- unsigned int filter_size)
+ const std::vector<float> &taps,
+ unsigned int filter_size)
{
- return gnuradio::get_initial_sptr
- (new pfb_arb_resampler_fff_impl(rate, taps, filter_size));
+ return gnuradio::get_initial_sptr(new pfb_arb_resampler_fff_impl(rate, taps, filter_size));
}
pfb_arb_resampler_fff_impl::pfb_arb_resampler_fff_impl(float rate,
- const std::vector<float> &taps,
- unsigned int filter_size)
- : block("pfb_arb_resampler_fff",
- io_signature::make(1, 1, sizeof(float)),
- io_signature::make(1, 1, sizeof(float)))
+ const std::vector<float> &taps,
+ unsigned int filter_size)
+ : block("pfb_arb_resampler_fff",
+ io_signature::make(1, 1, sizeof(float)),
+ io_signature::make(1, 1, sizeof(float)))
{
d_updated = false;
@@ -68,7 +67,7 @@ namespace gr {
unsigned ninputs = ninput_items_required.size();
if(noutput_items / relative_rate() < 1) {
for(unsigned i = 0; i < ninputs; i++)
- ninput_items_required[i] = max_output_buffer(i)-1;
+ ninput_items_required[i] = relative_rate() + history() - 1;
}
else {
for(unsigned i = 0; i < ninputs; i++)
@@ -158,9 +157,9 @@ namespace gr {
int
pfb_arb_resampler_fff_impl::general_work(int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
+ gr_vector_int &ninput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items)
{
gr::thread::scoped_lock guard(d_mutex);
@@ -168,8 +167,8 @@ namespace gr {
float *out = (float*)output_items[0];
if(d_updated) {
- d_updated = false;
- return 0; // history requirements may have changed.
+ d_updated = false;
+ return 0; // history requirements may have changed.
}
int nitems_read;
diff --git a/gr-filter/python/filter/pfb.py b/gr-filter/python/filter/pfb.py
index 22270589e8..9f23d1061b 100644
--- a/gr-filter/python/filter/pfb.py
+++ b/gr-filter/python/filter/pfb.py
@@ -405,14 +405,14 @@ class channelizer_hier_ccf(gr.hier_block2):
Make a Polyphase Filter channelizer (complex in, complex out, floating-point taps)
Args:
- n_chans - The number of channels to split into.
- n_filterbanks - The number of filterbank blocks to use (default=2).
- taps: The taps to use. If this is `None` then taps are generated using optfir.low_pass.
- outchans - Which channels to output streams for (a list of integers) (default is all channels).
- atten: Stop band attenuation.
- bw: The fraction of the channel you want to keep.
- tb: Transition band with as fraction of channel width.
- ripple: Pass band ripple in dB.
+ n_chans: The number of channels to split into.
+ n_filterbanks: The number of filterbank blocks to use (default=2).
+ taps: The taps to use. If this is `None` then taps are generated using optfir.low_pass.
+ outchans: Which channels to output streams for (a list of integers) (default is all channels).
+ atten: Stop band attenuation.
+ bw: The fraction of the channel you want to keep.
+ tb: Transition band with as fraction of channel width.
+ ripple: Pass band ripple in dB.
"""
def __init__(self, n_chans, n_filterbanks=1, taps=None, outchans=None,
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml b/gr-qtgui/grc/qtgui_const_sink_x.xml
index a7e1ba11c5..c17ceff8cc 100644
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
@@ -55,6 +55,7 @@ $(gui_hint()($win))</make>
<callback>set_update_time($update_time)</callback>
<callback>set_title($which, $title)</callback>
<callback>set_color($which, $color)</callback>
+ <callback>self.$(id).set_trigger_mode($tr_mode, $tr_slope, $tr_level, $tr_chan, $tr_tag)</callback>
<param_tab_order>
<tab>General</tab>
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml b/gr-qtgui/grc/qtgui_freq_sink_x.xml
index 96a9fd053d..67e852ce24 100644
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
@@ -58,6 +58,7 @@ $(gui_hint()($win))</make>
<callback>set_title($which, $title)</callback>
<callback>set_color($which, $color)</callback>
<callback>set_y_axis($ymin, $ymax)</callback>
+ <callback>self.$(id).set_trigger_mode($tr_mode, $tr_level, $tr_chan, $tr_tag)</callback>
<param_tab_order>
<tab>General</tab>
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml b/gr-qtgui/grc/qtgui_time_sink_x.xml
index 9344ef4de2..0d77c4f7e9 100644
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
@@ -80,6 +80,7 @@ $(gui_hint()($win))</make>
<callback>set_color($which, $color)</callback>
<callback>set_y_axis($ymin, $ymax)</callback>
<callback>set_samp_rate($srate)</callback>
+ <callback>self.$(id).set_trigger_mode($tr_mode, $tr_slope, $tr_level, $tr_delay, $tr_chan, $tr_tag)</callback>
<param_tab_order>
<tab>General</tab>
diff --git a/gr-qtgui/include/gnuradio/qtgui/TimeRasterDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/TimeRasterDisplayPlot.h
index 7ef1ad2d75..88a64a9910 100644
--- a/gr-qtgui/include/gnuradio/qtgui/TimeRasterDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/TimeRasterDisplayPlot.h
@@ -47,6 +47,7 @@ class TimeRasterDisplayPlot: public DisplayPlot
Q_OBJECT
Q_PROPERTY(int intensity_color_map_type1 READ getIntensityColorMapType1 WRITE setIntensityColorMapType1)
+ Q_PROPERTY(int color_map_title_font_size READ getColorMapTitleFontSize WRITE setColorMapTitleFontSize)
public:
TimeRasterDisplayPlot(int nplots,
@@ -85,6 +86,8 @@ public:
int getIntensityColorMapType1() const;
void setIntensityColorMapType(const int, const int, const QColor, const QColor);
void setIntensityColorMapType1(int);
+ int getColorMapTitleFontSize() const;
+ void setColorMapTitleFontSize(int tfs);
const QColor getUserDefinedLowIntensityColor() const;
const QColor getUserDefinedHighIntensityColor() const;
@@ -107,6 +110,8 @@ private:
std::vector<int> d_color_map_type;
QColor d_low_intensity;
QColor d_high_intensity;
+
+ int d_color_bar_title_font_size;
};
#endif /* TIMERASTER_DISPLAY_PLOT_H */
diff --git a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
index 287f1cf01d..e4db145517 100644
--- a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
@@ -48,6 +48,7 @@ class WaterfallDisplayPlot: public DisplayPlot
Q_PROPERTY ( int intensity_color_map_type1 READ getIntensityColorMapType1 WRITE setIntensityColorMapType1 )
Q_PROPERTY ( QColor low_intensity_color READ getUserDefinedLowIntensityColor WRITE setUserDefinedLowIntensityColor )
Q_PROPERTY ( QColor high_intensity_color READ getUserDefinedHighIntensityColor WRITE setUserDefinedHighIntensityColor )
+ Q_PROPERTY(int color_map_title_font_size READ getColorMapTitleFontSize WRITE setColorMapTitleFontSize)
public:
@@ -84,6 +85,7 @@ public:
int getIntensityColorMapType(int) const;
int getIntensityColorMapType1() const;
+ int getColorMapTitleFontSize() const;
const QColor getUserDefinedLowIntensityColor() const;
const QColor getUserDefinedHighIntensityColor() const;
@@ -95,6 +97,7 @@ public:
public slots:
void setIntensityColorMapType(const int, const int, const QColor, const QColor);
void setIntensityColorMapType1(int);
+ void setColorMapTitleFontSize(int tfs);
void setUserDefinedLowIntensityColor(QColor);
void setUserDefinedHighIntensityColor(QColor);
void setPlotPosHalf(bool half);
@@ -129,6 +132,7 @@ private:
std::vector<int> d_intensity_color_map_type;
QColor d_user_defined_low_intensity_color;
QColor d_user_defined_high_intensity_color;
+ int d_color_bar_title_font_size;
};
#endif /* WATERFALL_DISPLAY_PLOT_H */
diff --git a/gr-qtgui/lib/TimeRasterDisplayPlot.cc b/gr-qtgui/lib/TimeRasterDisplayPlot.cc
index 5cf736d389..e5e18b769f 100644
--- a/gr-qtgui/lib/TimeRasterDisplayPlot.cc
+++ b/gr-qtgui/lib/TimeRasterDisplayPlot.cc
@@ -205,6 +205,7 @@ TimeRasterDisplayPlot::TimeRasterDisplayPlot(int nplots,
d_cols = cols;
d_rows = rows;
d_numPoints = d_cols;
+ d_color_bar_title_font_size = 18;
setAxisScaleDraw(QwtPlot::xBottom, new QwtXScaleDraw());
setAxisScaleDraw(QwtPlot::yLeft, new QwtYScaleDraw());
@@ -474,6 +475,18 @@ TimeRasterDisplayPlot::getIntensityColorMapType1() const
return getIntensityColorMapType(0);
}
+int
+TimeRasterDisplayPlot::getColorMapTitleFontSize() const
+{
+ return d_color_bar_title_font_size;
+}
+
+void
+TimeRasterDisplayPlot::setColorMapTitleFontSize(int tfs)
+{
+ d_color_bar_title_font_size = tfs;
+}
+
void
TimeRasterDisplayPlot::setIntensityColorMapType(const int which,
const int newType,
@@ -556,7 +569,9 @@ void
TimeRasterDisplayPlot::_updateIntensityRangeDisplay()
{
QwtScaleWidget *rightAxis = axisWidget(QwtPlot::yRight);
- rightAxis->setTitle("Intensity");
+ QwtText colorBarTitle("Intensity");
+ colorBarTitle.setFont(QFont("Arial",d_color_bar_title_font_size));
+ rightAxis->setTitle(colorBarTitle);
rightAxis->setColorBarEnabled(true);
for(int i = 0; i < d_nplots; i++) {
diff --git a/gr-qtgui/lib/WaterfallDisplayPlot.cc b/gr-qtgui/lib/WaterfallDisplayPlot.cc
index d023bc1786..4b7f34ad7c 100644
--- a/gr-qtgui/lib/WaterfallDisplayPlot.cc
+++ b/gr-qtgui/lib/WaterfallDisplayPlot.cc
@@ -400,6 +400,18 @@ WaterfallDisplayPlot::getMaxIntensity(int which) const
return r.maxValue();
}
+int
+WaterfallDisplayPlot::getColorMapTitleFontSize() const
+{
+ return d_color_bar_title_font_size;
+}
+
+void
+WaterfallDisplayPlot::setColorMapTitleFontSize(int tfs)
+{
+ d_color_bar_title_font_size = tfs;
+}
+
void
WaterfallDisplayPlot::replot()
{
@@ -590,7 +602,9 @@ void
WaterfallDisplayPlot::_updateIntensityRangeDisplay()
{
QwtScaleWidget *rightAxis = axisWidget(QwtPlot::yRight);
- rightAxis->setTitle("Intensity (dB)");
+ QwtText colorBarTitle("Intensity (dB)");
+ colorBarTitle.setFont(QFont("Arial",d_color_bar_title_font_size));
+ rightAxis->setTitle(colorBarTitle);
rightAxis->setColorBarEnabled(true);
for(int i = 0; i < d_nplots; i++) {
diff --git a/gr-zeromq/examples/python/client.py b/gr-zeromq/examples/python/client.py
index 7663f9a056..a63a77aa0d 100755
--- a/gr-zeromq/examples/python/client.py
+++ b/gr-zeromq/examples/python/client.py
@@ -53,8 +53,8 @@ class top_block(gr.top_block):
#self.zmq_source = zeromq.req_source(gr.sizeof_float, 1, source_adr)
#self.zmq_source = zeromq.pull_source(gr.sizeof_float, 1, source_adr)
self.zmq_source = zeromq.sub_source(gr.sizeof_float, 1, source_adr)
- #self.zmq_probe = zeromq.push_sink(gr.sizeof_float,probe_adr)
- self.zmq_probe = zeromq.pub_sink(gr.sizeof_float,probe_adr)
+ #self.zmq_probe = zeromq.push_sink(gr.sizeof_float, 1, probe_adr)
+ self.zmq_probe = zeromq.pub_sink(gr.sizeof_float, 1, probe_adr)
# connects
self.connect(self.zmq_source, self.zmq_probe)
diff --git a/gr-zeromq/examples/python/gui.py b/gr-zeromq/examples/python/gui.py
index 91223dd734..ffdfdc2a75 100755
--- a/gr-zeromq/examples/python/gui.py
+++ b/gr-zeromq/examples/python/gui.py
@@ -130,13 +130,13 @@ class gui(QtGui.QMainWindow):
self.plot_data(self.gui.qwtPlotClient, samples)
def set_waveform(self, waveform_str):
- self.rpc_mgr_server.request("set_waveform",str(waveform_str))
+ self.rpc_mgr_server.request("set_waveform",[str(waveform_str)])
def set_gain(self, gain):
self.rpc_set_gain(gain)
def rpc_set_gain(self, gain):
- self.rpc_mgr_server.request("set_k",gain)
+ self.rpc_mgr_server.request("set_k",[gain])
###############################################################################
# Options Parser
diff --git a/gr-zeromq/examples/python/server.py b/gr-zeromq/examples/python/server.py
index 358b66c568..e3b7c9b928 100755
--- a/gr-zeromq/examples/python/server.py
+++ b/gr-zeromq/examples/python/server.py
@@ -59,8 +59,8 @@ class top_block(gr.top_block):
#self.zmq_sink = zeromq.rep_sink(gr.sizeof_float, 1, sink_adr)
self.zmq_sink = zeromq.pub_sink(gr.sizeof_float, 1, sink_adr)
#self.zmq_sink = zeromq.push_sink(gr.sizeof_float, 1, sink_adr)
- #self.zmq_probe = zeromq.push_sink(gr.sizeof_float, probe_adr)
- self.zmq_probe = zeromq.pub_sink(gr.sizeof_float, probe_adr)
+ #self.zmq_probe = zeromq.push_sink(gr.sizeof_float, 1, probe_adr)
+ self.zmq_probe = zeromq.pub_sink(gr.sizeof_float, 1, probe_adr)
#self.null_sink = blocks.null_sink(gr.sizeof_float)
# connects
diff --git a/grc/base/FlowGraph.py b/grc/base/FlowGraph.py
index 52ec741db8..8f008aa7e3 100644
--- a/grc/base/FlowGraph.py
+++ b/grc/base/FlowGraph.py
@@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
"""
import time
+import math
from . import odict
from Element import Element
from .. gui import Messages
@@ -63,6 +64,58 @@ class FlowGraph(Element):
def __str__(self):
return 'FlowGraph - %s(%s)' % (self.get_option('title'), self.get_option('id'))
+ def get_complexity(self):
+ """
+ Determines the complexity of a flowgraph
+ """
+ dbal = 0
+ block_list = self.get_blocks()
+ for block in block_list:
+ # Skip options block
+ if block.get_key() == 'options':
+ continue
+
+ # Don't worry about optional sinks?
+ sink_list = filter(lambda c: not c.get_optional(), block.get_sinks())
+ source_list = filter(lambda c: not c.get_optional(), block.get_sources())
+ sinks = float(len(sink_list))
+ sources = float(len(source_list))
+ base = max(min(sinks, sources), 1)
+
+ # Port ratio multiplier
+ if min(sinks, sources) > 0:
+ multi = sinks / sources
+ multi = (1 / multi) if multi > 1 else multi
+ else:
+ multi = 1
+
+ # Connection ratio multiplier
+ sink_multi = max(float(sum(map(lambda c: len(c.get_connections()), sink_list)) / max(sinks, 1.0)), 1.0)
+ source_multi = max(float(sum(map(lambda c: len(c.get_connections()), source_list)) / max(sources, 1.0)), 1.0)
+ dbal = dbal + (base * multi * sink_multi * source_multi)
+
+ elements = float(len(self.get_elements()))
+ connections = float(len(self.get_connections()))
+ disabled_connections = len(filter(lambda c: not c.get_enabled(), self.get_connections()))
+ blocks = float(len(block_list))
+ variables = elements - blocks - connections
+ enabled = float(len(self.get_enabled_blocks()))
+
+ # Disabled multiplier
+ if enabled > 0:
+ disabled_multi = 1 / (max(1 - ((blocks - enabled) / max(blocks, 1)), 0.05))
+ else:
+ disabled_multi = 1
+
+ # Connection multiplier (How many connections )
+ if (connections - disabled_connections) > 0:
+ conn_multi = 1 / (max(1 - (disabled_connections / max(connections, 1)), 0.05))
+ else:
+ conn_multi = 1
+
+ final = round(max((dbal - 1) * disabled_multi * conn_multi * connections, 0.0) / 1000000, 6)
+ return final
+
def rewrite(self):
def refactor_bus_structure():
@@ -99,6 +152,8 @@ class FlowGraph(Element):
for child in self.get_children(): child.rewrite()
refactor_bus_structure();
+ # Update the complexity
+ self._options_block.get_param('complexity').set_value(self.get_complexity())
def get_option(self, key):
"""
@@ -297,7 +352,7 @@ class FlowGraph(Element):
block = self.get_new_block('dummy_block')
# Ugly ugly ugly
_initialize_dummy_block(block, block_n)
- Messages.send_error_load('Block key "%s" not found in %s' % (key, self.get_parent()))
+ Messages.send_error_msg_load('Block key "%s" not found in %s' % (key, self.get_parent()))
block.import_data(block_n)
#build the connections
diff --git a/grc/blocks/options.xml b/grc/blocks/options.xml
index dc02b83c2a..8502fc3e2a 100644
--- a/grc/blocks/options.xml
+++ b/grc/blocks/options.xml
@@ -178,6 +178,12 @@ part#slurp
</option>
<tab>Advanced</tab>
</param>
+ <param>
+ <name>Complexity</name>
+ <key>complexity</key>
+ <value>0</value>
+ <type>float</type>
+ </param>
<check>not $window_size or len($window_size) == 2</check>
<check>not $window_size or 300 &lt;= $(window_size)[0] &lt;= 4096</check>
<check>not $window_size or 300 &lt;= $(window_size)[1] &lt;= 4096</check>
diff --git a/grc/blocks/xmlrpc_server.xml b/grc/blocks/xmlrpc_server.xml
index 6c31bd1a9a..602d444161 100644
--- a/grc/blocks/xmlrpc_server.xml
+++ b/grc/blocks/xmlrpc_server.xml
@@ -11,7 +11,9 @@
<import>import threading</import>
<make>SimpleXMLRPCServer.SimpleXMLRPCServer(($addr, $port), allow_none=True)
self.$(id).register_instance(self)
-threading.Thread(target=self.$(id).serve_forever).start()</make>
+self.$(id)_thread = threading.Thread(target=self.$(id).serve_forever)
+self.$(id)_thread.daemon = True
+self.$(id)_thread.start()</make>
<param>
<name>Address</name>
<key>addr</key>
diff --git a/grc/gui/Messages.py b/grc/gui/Messages.py
index 90f508d770..4bce9967ed 100644
--- a/grc/gui/Messages.py
+++ b/grc/gui/Messages.py
@@ -76,8 +76,11 @@ def send_xml_errors_if_any(xml_failures):
def send_start_load(file_path):
send('\nLoading: "%s"'%file_path + '\n')
+def send_error_msg_load(error):
+ send('>>> Error: %s\n' % error)
+
def send_error_load(error):
- send('>>> Error: %s\n'%error)
+ send_error_msg_load(error)
traceback.print_exc()
def send_end_load():
diff --git a/grc/python/Generator.py b/grc/python/Generator.py
index a7d0fb6f39..f807b59ad1 100644
--- a/grc/python/Generator.py
+++ b/grc/python/Generator.py
@@ -128,13 +128,17 @@ class TopBlockGenerator(object):
# if self._generate_options == 'wx_gui' and 'darwin' in sys.platform.lower():
# python_exe = 'pythonw'
+ def args_to_string(args):
+ """Accounts for spaces in args"""
+ return ' '.join(repr(arg) if ' ' in arg else arg for arg in args)
+
# setup the command args to run
cmds = [python_exe, '-u', self.get_file_path()] # -u is unbuffered stdio
# when in no gui mode on linux, use a graphical terminal (looks nice)
xterm_executable = find_executable(XTERM_EXECUTABLE)
if self._generate_options == 'no_gui' and xterm_executable:
- cmds = [xterm_executable, '-e'] + cmds
+ cmds = [xterm_executable, '-e', args_to_string(cmds)]
p = subprocess.Popen(
args=cmds, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,