summaryrefslogtreecommitdiff
path: root/gr-digital/grc
diff options
context:
space:
mode:
authorHåkon Vågsether <haakonsv@gmail.com>2017-09-24 12:16:22 +0200
committerHåkon Vågsether <haakonsv@gmail.com>2017-10-10 10:49:36 +0200
commitbaf7eaf8f29d5a490f2580917362cf5b3db47281 (patch)
tree7afab4ee2dfa6439ecf95d47aa68996020ea04c5 /gr-digital/grc
parent6fa9d33246251f44a0e78682e50e9a1cb0b03171 (diff)
Added auto-generated YAML blocks
Diffstat (limited to 'gr-digital/grc')
-rw-r--r--gr-digital/grc/CMakeLists.txt4
-rw-r--r--gr-digital/grc/digital.tree.yml85
-rw-r--r--gr-digital/grc/digital_additive_scrambler_bb.block.yml43
-rw-r--r--gr-digital/grc/digital_additive_scrambler_bb.xml56
-rw-r--r--gr-digital/grc/digital_binary_slicer_fb.block.yml16
-rw-r--r--gr-digital/grc/digital_binary_slicer_fb.xml20
-rw-r--r--gr-digital/grc/digital_block_tree.xml134
-rw-r--r--gr-digital/grc/digital_burst_shaper.block.yml50
-rw-r--r--gr-digital/grc/digital_burst_shaper.xml71
-rw-r--r--gr-digital/grc/digital_chunks_to_symbols.block.yml53
-rw-r--r--gr-digital/grc/digital_chunks_to_symbols.xml78
-rw-r--r--gr-digital/grc/digital_clock_recovery_mm_xx.block.yml51
-rw-r--r--gr-digital/grc/digital_clock_recovery_mm_xx.xml69
-rw-r--r--gr-digital/grc/digital_cma_equalizer_cc.block.yml33
-rw-r--r--gr-digital/grc/digital_cma_equalizer_cc.xml42
-rw-r--r--gr-digital/grc/digital_constellation.block.yml72
-rw-r--r--gr-digital/grc/digital_constellation.xml113
-rw-r--r--gr-digital/grc/digital_constellation_decoder_cb.block.yml21
-rw-r--r--gr-digital/grc/digital_constellation_decoder_cb.xml25
-rw-r--r--gr-digital/grc/digital_constellation_modulator.block.yml58
-rw-r--r--gr-digital/grc/digital_constellation_modulator.xml111
-rw-r--r--gr-digital/grc/digital_constellation_receiver_cb.block.yml62
-rw-r--r--gr-digital/grc/digital_constellation_receiver_cb.xml92
-rw-r--r--gr-digital/grc/digital_constellation_rect.block.yml65
-rw-r--r--gr-digital/grc/digital_constellation_rect.xml89
-rw-r--r--gr-digital/grc/digital_constellation_soft_decoder_cf.block.yml21
-rw-r--r--gr-digital/grc/digital_constellation_soft_decoder_cf.xml25
-rw-r--r--gr-digital/grc/digital_corr_est_cc.block.yml38
-rw-r--r--gr-digital/grc/digital_corr_est_cc.xml50
-rw-r--r--gr-digital/grc/digital_correlate_access_code_bb.block.yml25
-rw-r--r--gr-digital/grc/digital_correlate_access_code_bb.xml31
-rw-r--r--gr-digital/grc/digital_correlate_access_code_tag_xx.block.yml40
-rw-r--r--gr-digital/grc/digital_correlate_access_code_tag_xx.xml55
-rw-r--r--gr-digital/grc/digital_correlate_access_code_xx_ts.block.yml37
-rw-r--r--gr-digital/grc/digital_correlate_access_code_xx_ts.xml58
-rw-r--r--gr-digital/grc/digital_costas_loop_cc.block.yml48
-rw-r--r--gr-digital/grc/digital_costas_loop_cc.xml74
-rw-r--r--gr-digital/grc/digital_cpmmod_bc.block.yml40
-rw-r--r--gr-digital/grc/digital_cpmmod_bc.xml69
-rw-r--r--gr-digital/grc/digital_crc32_async_bb.block.yml25
-rw-r--r--gr-digital/grc/digital_crc32_async_bb.xml32
-rw-r--r--gr-digital/grc/digital_crc32_bb.block.yml33
-rw-r--r--gr-digital/grc/digital_crc32_bb.xml47
-rw-r--r--gr-digital/grc/digital_descrambler_bb.block.yml30
-rw-r--r--gr-digital/grc/digital_descrambler_bb.xml38
-rw-r--r--gr-digital/grc/digital_diff_decoder_bb.block.yml21
-rw-r--r--gr-digital/grc/digital_diff_decoder_bb.xml25
-rw-r--r--gr-digital/grc/digital_diff_encoder_bb.block.yml21
-rw-r--r--gr-digital/grc/digital_diff_encoder_bb.xml25
-rw-r--r--gr-digital/grc/digital_diff_phasor_cc.block.yml16
-rw-r--r--gr-digital/grc/digital_diff_phasor_cc.xml20
-rw-r--r--gr-digital/grc/digital_dxpsk_demod.block.yml75
-rw-r--r--gr-digital/grc/digital_dxpsk_demod.xml154
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.block.yml52
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.xml117
-rw-r--r--gr-digital/grc/digital_fll_band_edge_cc.block.yml53
-rw-r--r--gr-digital/grc/digital_fll_band_edge_cc.xml70
-rw-r--r--gr-digital/grc/digital_framer_sink_1.block.yml17
-rw-r--r--gr-digital/grc/digital_framer_sink_1.xml21
-rw-r--r--gr-digital/grc/digital_gfsk_demod.block.yml58
-rw-r--r--gr-digital/grc/digital_gfsk_demod.xml95
-rw-r--r--gr-digital/grc/digital_gfsk_mod.block.yml45
-rw-r--r--gr-digital/grc/digital_gfsk_mod.xml74
-rw-r--r--gr-digital/grc/digital_glfsr_source_x.block.yml37
-rw-r--r--gr-digital/grc/digital_glfsr_source_x.xml61
-rw-r--r--gr-digital/grc/digital_gmsk_demod.block.yml54
-rw-r--r--gr-digital/grc/digital_gmsk_demod.xml88
-rw-r--r--gr-digital/grc/digital_gmsk_mod.block.yml41
-rw-r--r--gr-digital/grc/digital_gmsk_mod.xml67
-rw-r--r--gr-digital/grc/digital_gmskmod_bc.block.yml30
-rw-r--r--gr-digital/grc/digital_gmskmod_bc.xml38
-rw-r--r--gr-digital/grc/digital_hdlc_deframer_bp.block.yml26
-rw-r--r--gr-digital/grc/digital_hdlc_deframer_bp.xml27
-rw-r--r--gr-digital/grc/digital_hdlc_framer_pb.block.yml21
-rw-r--r--gr-digital/grc/digital_hdlc_framer_pb.xml20
-rw-r--r--gr-digital/grc/digital_header_payload_demux.block.yml85
-rw-r--r--gr-digital/grc/digital_header_payload_demux.xml138
-rw-r--r--gr-digital/grc/digital_kurtotic_equalizer_cc.block.yml26
-rw-r--r--gr-digital/grc/digital_kurtotic_equalizer_cc.xml31
-rw-r--r--gr-digital/grc/digital_lms_dd_equalizer_cc.block.yml32
-rw-r--r--gr-digital/grc/digital_lms_dd_equalizer_cc.xml41
-rw-r--r--gr-digital/grc/digital_map_bb.block.yml21
-rw-r--r--gr-digital/grc/digital_map_bb.xml25
-rw-r--r--gr-digital/grc/digital_modulate_vector.block.yml22
-rw-r--r--gr-digital/grc/digital_modulate_vector.xml34
-rw-r--r--gr-digital/grc/digital_mpsk_snr_est_cc.block.yml35
-rw-r--r--gr-digital/grc/digital_mpsk_snr_est_cc.xml56
-rw-r--r--gr-digital/grc/digital_msk_timing_recovery_cc.block.yml42
-rw-r--r--gr-digital/grc/digital_msk_timing_recovery_cc.xml49
-rw-r--r--gr-digital/grc/digital_ofdm_carrier_allocator_cvc.block.yml44
-rw-r--r--gr-digital/grc/digital_ofdm_carrier_allocator_cvc.xml51
-rw-r--r--gr-digital/grc/digital_ofdm_chanest_vcvc.block.yml53
-rw-r--r--gr-digital/grc/digital_ofdm_chanest_vcvc.xml64
-rw-r--r--gr-digital/grc/digital_ofdm_cyclic_prefixer.block.yml38
-rw-r--r--gr-digital/grc/digital_ofdm_cyclic_prefixer.xml67
-rw-r--r--gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.block.yml46
-rw-r--r--gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.xml58
-rw-r--r--gr-digital/grc/digital_ofdm_rx.block.yml95
-rw-r--r--gr-digital/grc/digital_ofdm_rx.xml190
-rw-r--r--gr-digital/grc/digital_ofdm_serializer_vcc.block.yml51
-rw-r--r--gr-digital/grc/digital_ofdm_serializer_vcc.xml60
-rw-r--r--gr-digital/grc/digital_ofdm_sync_sc_cfb.block.yml35
-rw-r--r--gr-digital/grc/digital_ofdm_sync_sc_cfb.xml44
-rw-r--r--gr-digital/grc/digital_ofdm_tx.block.yml100
-rw-r--r--gr-digital/grc/digital_ofdm_tx.xml196
-rw-r--r--gr-digital/grc/digital_packet_headergenerator_bb.block.yml27
-rw-r--r--gr-digital/grc/digital_packet_headergenerator_bb.xml26
-rw-r--r--gr-digital/grc/digital_packet_headergenerator_bb_default.block.yml25
-rw-r--r--gr-digital/grc/digital_packet_headergenerator_bb_default.xml26
-rw-r--r--gr-digital/grc/digital_packet_headerparser_b.block.yml21
-rw-r--r--gr-digital/grc/digital_packet_headerparser_b.xml19
-rw-r--r--gr-digital/grc/digital_packet_headerparser_b_default.block.yml25
-rw-r--r--gr-digital/grc/digital_packet_headerparser_b_default.xml26
-rw-r--r--gr-digital/grc/digital_packet_sink.block.yml24
-rw-r--r--gr-digital/grc/digital_packet_sink.xml32
-rw-r--r--gr-digital/grc/digital_pfb_clock_sync.block.yml69
-rw-r--r--gr-digital/grc/digital_pfb_clock_sync.xml97
-rw-r--r--gr-digital/grc/digital_pn_correlator_cc.block.yml29
-rw-r--r--gr-digital/grc/digital_pn_correlator_cc.xml37
-rw-r--r--gr-digital/grc/digital_probe_density_b.block.yml24
-rw-r--r--gr-digital/grc/digital_probe_density_b.xml29
-rw-r--r--gr-digital/grc/digital_probe_mpsk_snr_est_c.block.yml42
-rw-r--r--gr-digital/grc/digital_probe_mpsk_snr_est_c.xml67
-rw-r--r--gr-digital/grc/digital_protocol_formatter_async.block.yml26
-rw-r--r--gr-digital/grc/digital_protocol_formatter_async.xml33
-rw-r--r--gr-digital/grc/digital_protocol_formatter_bb.block.yml25
-rw-r--r--gr-digital/grc/digital_protocol_formatter_bb.xml32
-rw-r--r--gr-digital/grc/digital_protocol_parser_b.block.yml22
-rw-r--r--gr-digital/grc/digital_protocol_parser_b.xml25
-rw-r--r--gr-digital/grc/digital_psk_demod.block.yml79
-rw-r--r--gr-digital/grc/digital_psk_demod.xml146
-rw-r--r--gr-digital/grc/digital_psk_mod.block.yml65
-rw-r--r--gr-digital/grc/digital_psk_mod.xml126
-rw-r--r--gr-digital/grc/digital_qam_demod.block.yml80
-rw-r--r--gr-digital/grc/digital_qam_demod.xml147
-rw-r--r--gr-digital/grc/digital_qam_mod.block.yml65
-rw-r--r--gr-digital/grc/digital_qam_mod.xml126
-rw-r--r--gr-digital/grc/digital_scrambler_bb.block.yml30
-rw-r--r--gr-digital/grc/digital_scrambler_bb.xml38
-rw-r--r--gr-digital/grc/digital_simple_correlator.block.yml21
-rw-r--r--gr-digital/grc/digital_simple_correlator.xml25
-rw-r--r--gr-digital/grc/digital_simple_framer.block.yml21
-rw-r--r--gr-digital/grc/digital_simple_framer.xml25
-rw-r--r--gr-digital/grc/digital_symbol_sync_xx.block.yml108
-rw-r--r--gr-digital/grc/digital_symbol_sync_xx.xml207
-rw-r--r--gr-digital/grc/variable_header_format_default.block.yml25
-rw-r--r--gr-digital/grc/variable_header_format_default.xml42
147 files changed, 3093 insertions, 4718 deletions
diff --git a/gr-digital/grc/CMakeLists.txt b/gr-digital/grc/CMakeLists.txt
index a3d0223290..78c8261525 100644
--- a/gr-digital/grc/CMakeLists.txt
+++ b/gr-digital/grc/CMakeLists.txt
@@ -17,7 +17,7 @@
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-file(GLOB xml_files "*.xml")
-install(FILES ${xml_files}
+file(GLOB yml_files "*.yml")
+install(FILES ${yml_files}
DESTINATION ${GRC_BLOCKS_DIR}
)
diff --git a/gr-digital/grc/digital.tree.yml b/gr-digital/grc/digital.tree.yml
new file mode 100644
index 0000000000..0e4c2463e8
--- /dev/null
+++ b/gr-digital/grc/digital.tree.yml
@@ -0,0 +1,85 @@
+'[Core]':
+- Coding:
+ - digital_additive_scrambler_bb
+ - digital_descrambler_bb
+ - digital_scrambler_bb
+- Equalizers:
+ - digital_cma_equalizer_cc
+ - digital_lms_dd_equalizer_cc
+ - digital_kurtotic_equalizer_cc
+- Measurement Tools:
+ - digital_mpsk_snr_est_cc
+ - digital_probe_density_b
+ - digital_probe_mpsk_snr_est_c
+- Modulators:
+ - digital_cpmmod_bc
+ - digital_gfsk_mod
+ - digital_gfsk_demod
+ - digital_gmskmod_bc
+ - digital_gmsk_mod
+ - digital_gmsk_demod
+ - digital_constellation_modulator
+ - digital_constellation_receiver_cb
+ - variable_constellation
+ - variable_constellation_rect
+ - variable_modulate_vector
+- Packet Operators:
+ - digital_correlate_access_code_tag_bb
+ - digital_correlate_access_code_xx_ts
+ - digital_crc32_bb
+ - digital_crc32_async_bb
+ - digital_framer_sink_1
+ - variable_header_format_default
+ - digital_protocol_formatter_async
+ - digital_protocol_formatter_bb
+ - digital_protocol_parser_b
+ - digital_header_payload_demux
+ - digital_packet_headergenerator_bb
+ - digital_packet_headergenerator_bb_default
+ - digital_packet_headerparser_b
+ - digital_packet_headerparser_b_default
+ - digital_packet_sink
+ - digital_hdlc_framer_pb
+ - digital_hdlc_deframer_bp
+ - digital_simple_framer
+ - digital_simple_correlator
+- OFDM:
+ - digital_ofdm_mod
+ - digital_ofdm_demod
+ - digital_ofdm_carrier_allocator_cvc
+ - digital_ofdm_chanest_vcvc
+ - digital_ofdm_cyclic_prefixer
+ - digital_ofdm_frame_acquisition
+ - digital_ofdm_frame_equalizer_vcvc
+ - digital_ofdm_frame_sink
+ - digital_ofdm_insert_preamble
+ - digital_ofdm_rx
+ - digital_ofdm_sampler
+ - digital_ofdm_serializer_vcc
+ - digital_ofdm_sync_pn
+ - digital_ofdm_sync_sc_cfb
+ - digital_ofdm_tx
+- Symbol Coding:
+ - digital_binary_slicer_fb
+ - digital_chunks_to_symbols_xx
+ - digital_constellation_decoder_cb
+ - digital_constellation_receiver_cb
+ - digital_constellation_soft_decoder_cf
+ - digital_diff_decoder_bb
+ - digital_diff_encoder_bb
+ - digital_diff_phasor_cc
+ - digital_map_bb
+- Synchronizers:
+ - digital_clock_recovery_mm_xx
+ - digital_costas_loop_cc
+ - digital_fll_band_edge_cc
+ - digital_pfb_clock_sync_xxx
+ - digital_pn_correlator_cc
+ - digital_symbol_sync_xx
+ - digital_corr_est_cc
+- Waveform Generators:
+ - digital_glfsr_source_x
+- Deprecated:
+ - digital_correlate_access_code_bb
+ - digital_simple_framer
+ - digital_simple_correlator
diff --git a/gr-digital/grc/digital_additive_scrambler_bb.block.yml b/gr-digital/grc/digital_additive_scrambler_bb.block.yml
new file mode 100644
index 0000000000..d447a2822d
--- /dev/null
+++ b/gr-digital/grc/digital_additive_scrambler_bb.block.yml
@@ -0,0 +1,43 @@
+id: digital_additive_scrambler_bb
+label: Additive Scrambler
+
+parameters:
+- id: mask
+ label: Mask
+ dtype: hex
+ default: '0x8A'
+- id: seed
+ label: Seed
+ dtype: hex
+ default: '0x7F'
+- id: len
+ label: Length
+ dtype: int
+ default: '7'
+- id: count
+ label: Count
+ dtype: int
+ default: '0'
+- id: bits_per_byte
+ label: Bits per byte
+ dtype: int
+ default: '1'
+- id: reset_tag_key
+ label: Reset tag key
+ dtype: string
+ default: '""'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.additive_scrambler_bb(${mask}, ${seed}, ${len}, count=${count},
+ bits_per_byte=${bits_per_byte}, reset_tag_key=${reset_tag_key})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_additive_scrambler_bb.xml b/gr-digital/grc/digital_additive_scrambler_bb.xml
deleted file mode 100644
index 2bb06e48a3..0000000000
--- a/gr-digital/grc/digital_additive_scrambler_bb.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Additive Scrambler
-###################################################
- -->
-<block>
- <name>Additive Scrambler</name>
- <key>digital_additive_scrambler_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.additive_scrambler_bb($mask, $seed, $len, count=$count, bits_per_byte=$bits_per_byte, reset_tag_key=$reset_tag_key)</make>
- <param>
- <name>Mask</name>
- <key>mask</key>
- <value>0x8A</value>
- <type>hex</type>
- </param>
- <param>
- <name>Seed</name>
- <key>seed</key>
- <value>0x7F</value>
- <type>hex</type>
- </param>
- <param>
- <name>Length</name>
- <key>len</key>
- <value>7</value>
- <type>int</type>
- </param>
- <param>
- <name>Count</name>
- <key>count</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Bits per byte</name>
- <key>bits_per_byte</key>
- <value>1</value>
- <type>int</type>
- </param>
- <param>
- <name>Reset tag key</name>
- <key>reset_tag_key</key>
- <value>""</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_binary_slicer_fb.block.yml b/gr-digital/grc/digital_binary_slicer_fb.block.yml
new file mode 100644
index 0000000000..143c97c0ed
--- /dev/null
+++ b/gr-digital/grc/digital_binary_slicer_fb.block.yml
@@ -0,0 +1,16 @@
+id: digital_binary_slicer_fb
+label: Binary Slicer
+
+inputs:
+- domain: stream
+ dtype: float
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.binary_slicer_fb()
+
+file_format: 1
diff --git a/gr-digital/grc/digital_binary_slicer_fb.xml b/gr-digital/grc/digital_binary_slicer_fb.xml
deleted file mode 100644
index 3187d13f92..0000000000
--- a/gr-digital/grc/digital_binary_slicer_fb.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Binary Slicer
-###################################################
- -->
-<block>
- <name>Binary Slicer</name>
- <key>digital_binary_slicer_fb</key>
- <import>from gnuradio import digital</import>
- <make>digital.binary_slicer_fb()</make>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
deleted file mode 100644
index 10346cbcd0..0000000000
--- a/gr-digital/grc/digital_block_tree.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright (C) 2011-2017 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.
--->
-
-<!--
-###################################################
-##Block Tree for GR Digital blocks.
-###################################################
- -->
-<cat>
- <name>[Core]</name>
- <cat>
- <name>Coding</name>
- <block>digital_additive_scrambler_bb</block>
- <block>digital_descrambler_bb</block>
- <block>digital_scrambler_bb</block>
- </cat>
- <cat>
- <name>Equalizers</name>
- <block>digital_cma_equalizer_cc</block>
- <block>digital_lms_dd_equalizer_cc</block>
- <block>digital_kurtotic_equalizer_cc</block>
- </cat>
- <cat>
- <name>Measurement Tools</name>
- <block>digital_mpsk_snr_est_cc</block>
- <block>digital_probe_density_b</block>
- <block>digital_probe_mpsk_snr_est_c</block>
- </cat>
- <cat>
- <name>Modulators</name>
- <block>digital_cpmmod_bc</block>
- <block>digital_gfsk_mod</block>
- <block>digital_gfsk_demod</block>
- <block>digital_gmskmod_bc</block>
- <block>digital_gmsk_mod</block>
- <block>digital_gmsk_demod</block>
- <block>digital_constellation_modulator</block>
- <block>digital_constellation_receiver_cb</block>
- <block>variable_constellation</block>
- <block>variable_constellation_rect</block>
- <block>variable_modulate_vector</block>
- </cat>
- <cat>
- <name>Packet Operators</name>
- <block>digital_correlate_access_code_tag_bb</block>
- <block>digital_correlate_access_code_xx_ts</block>
- <block>digital_crc32_bb</block>
- <block>digital_crc32_async_bb</block>
- <block>digital_framer_sink_1</block>
- <block>variable_header_format_default</block>
- <block>digital_protocol_formatter_async</block>
- <block>digital_protocol_formatter_bb</block>
- <block>digital_protocol_parser_b</block>
- <block>digital_header_payload_demux</block>
- <block>digital_packet_headergenerator_bb</block>
- <block>digital_packet_headergenerator_bb_default</block>
- <block>digital_packet_headerparser_b</block>
- <block>digital_packet_headerparser_b_default</block>
- <block>digital_packet_sink</block>
- <block>digital_hdlc_framer_pb</block>
- <block>digital_hdlc_deframer_bp</block>
- <block>digital_simple_framer</block>
- <block>digital_simple_correlator</block>
- </cat>
- <cat>
- <name>OFDM</name>
- <block>digital_ofdm_mod</block>
- <block>digital_ofdm_demod</block>
- <block>digital_ofdm_carrier_allocator_cvc</block>
- <block>digital_ofdm_chanest_vcvc</block>
- <block>digital_ofdm_cyclic_prefixer</block>
- <block>digital_ofdm_frame_acquisition</block>
- <block>digital_ofdm_frame_equalizer_vcvc</block>
- <block>digital_ofdm_frame_sink</block>
- <block>digital_ofdm_insert_preamble</block>
- <block>digital_ofdm_rx</block>
- <block>digital_ofdm_sampler</block>
- <block>digital_ofdm_serializer_vcc</block>
- <block>digital_ofdm_sync_pn</block>
- <block>digital_ofdm_sync_sc_cfb</block>
- <block>digital_ofdm_tx</block>
- </cat>
- <cat>
- <name>Symbol Coding</name>
- <block>digital_binary_slicer_fb</block>
- <block>digital_chunks_to_symbols_xx</block>
- <block>digital_constellation_decoder_cb</block>
- <block>digital_constellation_receiver_cb</block>
- <block>digital_constellation_soft_decoder_cf</block>
- <block>digital_diff_decoder_bb</block>
- <block>digital_diff_encoder_bb</block>
- <block>digital_diff_phasor_cc</block>
- <block>digital_map_bb</block>
- </cat>
- <cat>
- <name>Synchronizers</name>
- <block>digital_clock_recovery_mm_xx</block>
- <block>digital_costas_loop_cc</block>
- <block>digital_fll_band_edge_cc</block>
- <block>digital_pfb_clock_sync_xxx</block>
- <block>digital_pn_correlator_cc</block>
- <block>digital_symbol_sync_xx</block>
- <block>digital_corr_est_cc</block>
- </cat>
- <cat>
- <name>Waveform Generators</name>
- <block>digital_glfsr_source_x</block>
- </cat>
- <cat>
- <name>Deprecated</name>
- <block>digital_correlate_access_code_bb</block>
- <block>digital_simple_framer</block>
- <block>digital_simple_correlator</block>
- </cat>
-</cat>
diff --git a/gr-digital/grc/digital_burst_shaper.block.yml b/gr-digital/grc/digital_burst_shaper.block.yml
new file mode 100644
index 0000000000..a6d7defb4b
--- /dev/null
+++ b/gr-digital/grc/digital_burst_shaper.block.yml
@@ -0,0 +1,50 @@
+id: digital_burst_shaper_xx
+label: Burst Shaper
+category: '[Core]/Packet Operators'
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [float, complex]
+ option_attributes:
+ fcn: [ff, cc]
+ taps: [float_vector, complex_vector]
+ hide: part
+- id: window
+ label: Window Taps
+ dtype: ${ type.taps }
+ default: ([])
+- id: pre_padding
+ label: Pre-padding Length
+ dtype: int
+ default: '0'
+- id: post_padding
+ label: Post-padding Length
+ dtype: int
+ default: '0'
+- id: insert_phasing
+ label: Insert phasing symbols
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+- id: length_tag_name
+ label: Length Tag Name
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.burst_shaper_${type.fcn}(${window}, ${pre_padding}, ${post_padding},
+ ${insert_phasing}, ${length_tag_name})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_burst_shaper.xml b/gr-digital/grc/digital_burst_shaper.xml
deleted file mode 100644
index 95e1bcbc77..0000000000
--- a/gr-digital/grc/digital_burst_shaper.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>Burst Shaper</name>
- <key>digital_burst_shaper_xx</key>
- <category>[Core]/Packet Operators</category>
- <import>from gnuradio import digital</import>
- <make>digital.burst_shaper_$(type.fcn)($window, $pre_padding, $post_padding, $insert_phasing, $length_tag_name)</make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:ff</opt>
- <opt>taps:float_vector</opt>
- </option>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>fcn:cc</opt>
- <opt>taps:complex_vector</opt>
- </option>
- </param>
- <param>
- <name>Window Taps</name>
- <key>window</key>
- <value>([])</value>
- <type>$(type.taps)</type>
- </param>
- <param>
- <name>Pre-padding Length</name>
- <key>pre_padding</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Post-padding Length</name>
- <key>post_padding</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Insert phasing symbols</name>
- <key>insert_phasing</key>
- <value>False</value>
- <type>enum</type>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <param>
- <name>Length Tag Name</name>
- <key>length_tag_name</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_chunks_to_symbols.block.yml b/gr-digital/grc/digital_chunks_to_symbols.block.yml
new file mode 100644
index 0000000000..35b5ee94c6
--- /dev/null
+++ b/gr-digital/grc/digital_chunks_to_symbols.block.yml
@@ -0,0 +1,53 @@
+id: digital_chunks_to_symbols_xx
+label: Chunks to Symbols
+
+parameters:
+- id: in_type
+ label: Input Type
+ dtype: enum
+ options: [int, short, byte]
+ option_attributes:
+ fcn: [i, s, b]
+ hide: part
+- id: out_type
+ label: Output Type
+ dtype: enum
+ options: [complex, float]
+ option_attributes:
+ fcn: [c, f]
+ table: [complex_vector, real_vector]
+ hide: part
+- id: symbol_table
+ label: Symbol Table
+ dtype: ${ out_type.table }
+- id: dimension
+ label: Dimension
+ dtype: int
+ default: '2'
+- id: num_ports
+ label: Num Ports
+ dtype: int
+ default: '1'
+ hide: part
+
+inputs:
+- domain: stream
+ dtype: ${ in_type }
+ multiplicity: ${ num_ports }
+
+outputs:
+- domain: stream
+ dtype: ${ out_type }
+ multiplicity: ${ num_ports }
+
+asserts:
+- ${ num_ports > 0 }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.chunks_to_symbols_${in_type.fcn}${out_type.fcn}(${symbol_table},
+ ${dimension})
+ callbacks:
+ - set_symbol_table(${symbol_table})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_chunks_to_symbols.xml b/gr-digital/grc/digital_chunks_to_symbols.xml
deleted file mode 100644
index 9c6f952ec0..0000000000
--- a/gr-digital/grc/digital_chunks_to_symbols.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Chunks to Symbols
-###################################################
- -->
-<block>
- <name>Chunks to Symbols</name>
- <key>digital_chunks_to_symbols_xx</key>
- <import>from gnuradio import digital</import>
- <make>digital.chunks_to_symbols_$(in_type.fcn)$(out_type.fcn)($symbol_table, $dimension)</make>
- <callback>set_symbol_table($symbol_table)</callback>
- <param>
- <name>Input Type</name>
- <key>in_type</key>
- <type>enum</type>
- <option>
- <name>Int</name>
- <key>int</key>
- <opt>fcn:i</opt>
- </option>
- <option>
- <name>Short</name>
- <key>short</key>
- <opt>fcn:s</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>fcn:b</opt>
- </option>
- </param>
- <param>
- <name>Output Type</name>
- <key>out_type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>fcn:c</opt>
- <opt>table:complex_vector</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:f</opt>
- <opt>table:real_vector</opt>
- </option>
- </param>
- <param>
- <name>Symbol Table</name>
- <key>symbol_table</key>
- <type>$out_type.table</type>
- </param>
- <param>
- <name>Dimension</name>
- <key>dimension</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Num Ports</name>
- <key>num_ports</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$num_ports &gt; 0</check>
- <sink>
- <name>in</name>
- <type>$in_type</type>
- <nports>$num_ports</nports>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type</type>
- <nports>$num_ports</nports>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_clock_recovery_mm_xx.block.yml b/gr-digital/grc/digital_clock_recovery_mm_xx.block.yml
new file mode 100644
index 0000000000..f4b8a9439d
--- /dev/null
+++ b/gr-digital/grc/digital_clock_recovery_mm_xx.block.yml
@@ -0,0 +1,51 @@
+id: digital_clock_recovery_mm_xx
+label: Clock Recovery MM
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [complex, float]
+ option_attributes:
+ fcn: [cc, ff]
+ hide: part
+- id: omega
+ label: Omega
+ dtype: real
+ default: samp_per_sym*(1+0.0)
+- id: gain_omega
+ label: Gain Omega
+ dtype: real
+ default: 0.25*0.175*0.175
+- id: mu
+ label: Mu
+ dtype: real
+ default: '0.5'
+- id: gain_mu
+ label: Gain Mu
+ dtype: real
+ default: '0.175'
+- id: omega_relative_limit
+ label: Omega Relative Limit
+ dtype: real
+ default: '0.005'
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.clock_recovery_mm_${type.fcn}(${omega}, ${gain_omega}, ${mu}, ${gain_mu},
+ ${omega_relative_limit})
+ callbacks:
+ - set_omega(${omega})
+ - set_gain_omega(${gain_omega})
+ - set_mu(${mu})
+ - set_gain_mu(${gain_mu})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_clock_recovery_mm_xx.xml b/gr-digital/grc/digital_clock_recovery_mm_xx.xml
deleted file mode 100644
index a0857686be..0000000000
--- a/gr-digital/grc/digital_clock_recovery_mm_xx.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Clock Recovery MM
-###################################################
- -->
-<block>
- <name>Clock Recovery MM</name>
- <key>digital_clock_recovery_mm_xx</key>
- <import>from gnuradio import digital</import>
- <make>digital.clock_recovery_mm_$(type.fcn)($omega, $gain_omega, $mu, $gain_mu, $omega_relative_limit)</make>
- <callback>set_omega($omega)</callback>
- <callback>set_gain_omega($gain_omega)</callback>
- <callback>set_mu($mu)</callback>
- <callback>set_gain_mu($gain_mu)</callback>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>fcn:cc</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:ff</opt>
- </option>
- </param>
- <param>
- <name>Omega</name>
- <key>omega</key>
- <value>samp_per_sym*(1+0.0)</value>
- <type>real</type>
- </param>
- <param>
- <name>Gain Omega</name>
- <key>gain_omega</key>
- <value>0.25*0.175*0.175</value>
- <type>real</type>
- </param>
- <param>
- <name>Mu</name>
- <key>mu</key>
- <value>0.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Gain Mu</name>
- <key>gain_mu</key>
- <value>0.175</value>
- <type>real</type>
- </param>
- <param>
- <name>Omega Relative Limit</name>
- <key>omega_relative_limit</key>
- <value>0.005</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_cma_equalizer_cc.block.yml b/gr-digital/grc/digital_cma_equalizer_cc.block.yml
new file mode 100644
index 0000000000..64e83390d5
--- /dev/null
+++ b/gr-digital/grc/digital_cma_equalizer_cc.block.yml
@@ -0,0 +1,33 @@
+id: digital_cma_equalizer_cc
+label: CMA Equalizer
+
+parameters:
+- id: num_taps
+ label: Num. Taps
+ dtype: int
+- id: modulus
+ label: Modulus
+ dtype: real
+- id: mu
+ label: Gain
+ dtype: real
+- id: sps
+ label: Samples per Symbol
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.cma_equalizer_cc(${num_taps}, ${modulus}, ${mu}, ${sps})
+ callbacks:
+ - set_gain(${mu})
+ - set_modulus(${modulus})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_cma_equalizer_cc.xml b/gr-digital/grc/digital_cma_equalizer_cc.xml
deleted file mode 100644
index 118c18e294..0000000000
--- a/gr-digital/grc/digital_cma_equalizer_cc.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## CMA Equalizer
-###################################################
- -->
-<block>
- <name>CMA Equalizer</name>
- <key>digital_cma_equalizer_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.cma_equalizer_cc($num_taps, $modulus, $mu, $sps)</make>
- <callback>set_gain($mu)</callback>
- <callback>set_modulus($modulus)</callback>
- <param>
- <name>Num. Taps</name>
- <key>num_taps</key>
- <type>int</type>
- </param>
- <param>
- <name>Modulus</name>
- <key>modulus</key>
- <type>real</type>
- </param>
- <param>
- <name>Gain</name>
- <key>mu</key>
- <type>real</type>
- </param>
- <param>
- <name>Samples per Symbol</name>
- <key>sps</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_constellation.block.yml b/gr-digital/grc/digital_constellation.block.yml
new file mode 100644
index 0000000000..b604140888
--- /dev/null
+++ b/gr-digital/grc/digital_constellation.block.yml
@@ -0,0 +1,72 @@
+id: variable_constellation
+label: Constellation Object
+category: Modulators
+
+parameters:
+- id: type
+ label: Constellation Type
+ dtype: enum
+ options: [calcdist, bpsk, qpsk, dqpsk, 8psk, 16qam]
+ option_labels: [Variable Constellation, BPSK, QPSK, DQPSK, 8PSK, 16QAM]
+- id: sym_map
+ label: Symbol Map
+ dtype: int_vector
+ default: '[0, 1, 3, 2]'
+ hide: ${ ( 'none' if str(type) == "calcdist" else 'all') }
+- id: const_points
+ label: Constellation Points
+ dtype: complex_vector
+ default: '[-1-1j, -1+1j, 1+1j, 1-1j]'
+ hide: ${ ( 'none' if str(type) == "calcdist" else 'all') }
+- id: rot_sym
+ label: Rotational Symmetry
+ dtype: int
+ default: '4'
+ hide: ${ ( 'none' if str(type) == "calcdist" else 'all') }
+- id: dims
+ label: Dimensionality
+ dtype: int
+ default: '1'
+ hide: ${ ( 'none' if str(type) == "calcdist" else 'all') }
+- id: precision
+ label: Soft Decisions Precision
+ dtype: int
+ default: '8'
+ hide: part
+- id: soft_dec_lut
+ label: Soft Decisions LUT
+ dtype: raw
+ default: None
+ hide: ${ ('part' if str(soft_dec_lut) == 'None' else 'none') }
+value: ${ digital.constellation_calcdist(const_points, sym_map, rot_sym, dims) if (str(type) == "calcdist") else digital.constellation_type}
+
+templates:
+ imports: from gnuradio import digital
+ var_make: '
+
+ % if str(type) == "calcdist":
+
+ self.${id} = ${id} = digital.constellation_calcdist(${const_points}, ${sym_map},
+ ${rot_sym}, ${dims}).base()
+
+ % else:
+
+ self.${id} = ${id} = digital.constellation_${type}().base()
+
+ % endif
+
+
+ % if str(soft_dec_lut).lower() == ''"auto"'' or str(soft_dec_lut).lower()
+ == "''auto''":
+
+ self.${id}.gen_soft_dec_lut(${precision})
+
+ % elif str(soft_dec_lut) != ''None'':
+
+ self.${id}.set_soft_dec_lut(${soft_dec_lut}, ${precision})
+
+ % endif
+
+ '
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation.xml b/gr-digital/grc/digital_constellation.xml
deleted file mode 100644
index ef5364d248..0000000000
--- a/gr-digital/grc/digital_constellation.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Create a Constellation Object
-###################################################
- -->
-<block>
- <name>Constellation Object</name>
- <key>variable_constellation</key>
- <category>Modulators</category>
- <import>from gnuradio import digital</import>
- <var_make>
-#if str($type) == "calcdist"
-self.$(id) = $(id) = digital.constellation_calcdist($const_points, $sym_map, $rot_sym, $dims).base()
-#else
-self.$(id) = $(id) = digital.constellation_$(type)().base()
-#end if
-
-#if str($soft_dec_lut).lower() == '"auto"' or str($soft_dec_lut).lower() == "'auto'"
-self.$(id).gen_soft_dec_lut($precision)
-#else if str($soft_dec_lut) != 'None'
-self.$(id).set_soft_dec_lut($soft_dec_lut, $precision)
-#end if
-</var_make>
-
-<var_value>
-#if str($type) == "calcdist"
-digital.constellation_calcdist($const_points, $sym_map, $rot_sym, $dims)
-#else
-digital.constellation_$(type)()
-#end if
-</var_value>
-
- <make></make>
- <!--<callback></callback>-->
-
- <param>
- <name>Constellation Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Variable Constellation</name>
- <key>calcdist</key>
- </option>
- <option>
- <name>BPSK</name>
- <key>bpsk</key>
- </option>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- </option>
- <option>
- <name>DQPSK</name>
- <key>dqpsk</key>
- </option>
- <option>
- <name>8PSK</name>
- <key>8psk</key>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- </option>
-
- </param>
- <param>
- <name>Symbol Map</name>
- <key>sym_map</key>
- <value>[0, 1, 3, 2]</value>
- <type>int_vector</type>
- <hide> #if str($type) == "calcdist" then 'none' else 'all' #</hide>
- </param>
-
- <param>
- <name>Constellation Points</name>
- <key>const_points</key>
- <value>[-1-1j, -1+1j, 1+1j, 1-1j]</value>
- <type>complex_vector</type>
- <hide> #if str($type) == "calcdist" then 'none' else 'all' #</hide>
- </param>
-
- <param>
- <name>Rotational Symmetry</name>
- <key>rot_sym</key>
- <value>4</value>
- <type>int</type>
- <hide> #if str($type) == "calcdist" then 'none' else 'all' #</hide>
- </param>
-
- <param>
- <name>Dimensionality</name>
- <key>dims</key>
- <value>1</value>
- <type>int</type>
- <hide> #if str($type) == "calcdist" then 'none' else 'all' #</hide>
- </param>
- <param>
- <name>Soft Decisions Precision</name>
- <key>precision</key>
- <value>8</value>
- <type>int</type>
- <hide>part</hide>
- </param>
-
- <param>
- <name>Soft Decisions LUT</name>
- <key>soft_dec_lut</key>
- <value>None</value>
- <type>raw</type>
- <hide>#if str($soft_dec_lut) == 'None' then 'part' else 'none'#</hide>
- </param>
-</block>
diff --git a/gr-digital/grc/digital_constellation_decoder_cb.block.yml b/gr-digital/grc/digital_constellation_decoder_cb.block.yml
new file mode 100644
index 0000000000..59d312d89a
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_decoder_cb.block.yml
@@ -0,0 +1,21 @@
+id: digital_constellation_decoder_cb
+label: Constellation Decoder
+
+parameters:
+- id: constellation
+ label: Constellation Object
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.constellation_decoder_cb(${constellation})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation_decoder_cb.xml b/gr-digital/grc/digital_constellation_decoder_cb.xml
deleted file mode 100644
index c7353e2888..0000000000
--- a/gr-digital/grc/digital_constellation_decoder_cb.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Constellation Decoder
-###################################################
- -->
-<block>
- <name>Constellation Decoder</name>
- <key>digital_constellation_decoder_cb</key>
- <import>from gnuradio import digital</import>
- <make>digital.constellation_decoder_cb($constellation)</make>
- <param>
- <name>Constellation Object</name>
- <key>constellation</key>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_constellation_modulator.block.yml b/gr-digital/grc/digital_constellation_modulator.block.yml
new file mode 100644
index 0000000000..8be84449ad
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_modulator.block.yml
@@ -0,0 +1,58 @@
+id: digital_constellation_modulator
+label: Constellation Modulator
+
+parameters:
+- id: constellation
+ label: Constellation
+ dtype: raw
+- id: differential
+ label: Differential Encoding
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.generic_mod(
+ constellation=${constellation},
+ differential=${differential},
+ samples_per_symbol=${samples_per_symbol},
+ pre_diff_code=True,
+ excess_bw=${excess_bw},
+ verbose=${verbose},
+ log=${log},
+ )
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation_modulator.xml b/gr-digital/grc/digital_constellation_modulator.xml
deleted file mode 100644
index 9905197f93..0000000000
--- a/gr-digital/grc/digital_constellation_modulator.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- 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.
--->
-
-<!--
-###################################################
-## Modulates any given constellation object
-###################################################
- -->
-<block>
- <name>Constellation Modulator</name>
- <key>digital_constellation_modulator</key>
- <import>from gnuradio import digital</import>
- <make>digital.generic_mod(
- constellation=$constellation,
- differential=$differential,
- samples_per_symbol=$samples_per_symbol,
- pre_diff_code=True,
- excess_bw=$excess_bw,
- verbose=$verbose,
- log=$log,
- )</make>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>raw</type>
- </param>
- <param>
- <name>Differential Encoding</name>
- <key>differential</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_constellation_receiver_cb.block.yml b/gr-digital/grc/digital_constellation_receiver_cb.block.yml
new file mode 100644
index 0000000000..6221348805
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_receiver_cb.block.yml
@@ -0,0 +1,62 @@
+id: digital_constellation_receiver_cb
+label: Constellation Receiver
+
+parameters:
+- id: constellation
+ label: Constellation Object
+ dtype: raw
+- id: loop_bw
+ label: Loop Bandwidth
+ dtype: real
+- id: fmin
+ label: Minimum Freq Deviation
+ dtype: real
+- id: fmax
+ label: Maximum Freq Deviation
+ dtype: real
+- id: showports
+ label: Show Msg Ports
+ dtype: enum
+ default: 'True'
+ options: ['False', 'True']
+ option_labels: ['Yes', 'No']
+ hide: part
+
+inputs:
+- domain: stream
+ dtype: complex
+- domain: message
+ id: set_constellation
+ optional: true
+ hide: ${ showports }
+- domain: message
+ id: rotate_phase
+ optional: true
+ hide: ${ showports }
+
+outputs:
+- domain: stream
+ dtype: byte
+- label: error
+ domain: stream
+ dtype: float
+ optional: true
+- label: phase
+ domain: stream
+ dtype: float
+ optional: true
+- label: frequency
+ domain: stream
+ dtype: float
+ optional: true
+- label: symbol
+ domain: stream
+ dtype: complex
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.constellation_receiver_cb(${constellation}, ${loop_bw}, ${fmin},
+ ${fmax})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation_receiver_cb.xml b/gr-digital/grc/digital_constellation_receiver_cb.xml
deleted file mode 100644
index 06155ecae9..0000000000
--- a/gr-digital/grc/digital_constellation_receiver_cb.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Constellation Receiver
-###################################################
- -->
-<block>
- <name>Constellation Receiver</name>
- <key>digital_constellation_receiver_cb</key>
- <import>from gnuradio import digital</import>
- <make>digital.constellation_receiver_cb($constellation, $loop_bw, $fmin, $fmax)</make>
- <param>
- <name>Constellation Object</name>
- <key>constellation</key>
- <type>raw</type>
- </param>
- <param>
- <name>Loop Bandwidth</name>
- <key>loop_bw</key>
- <type>real</type>
- </param>
- <param>
- <name>Minimum Freq Deviation</name>
- <key>fmin</key>
- <type>real</type>
- </param>
- <param>
- <name>Maximum Freq Deviation</name>
- <key>fmax</key>
- <type>real</type>
- </param>
-
- <param>
- <name>Show Msg Ports</name>
- <key>showports</key>
- <value>True</value>
- <type>enum</type>
- <hide>part</hide>
- <option>
- <name>Yes</name>
- <key>False</key>
- </option>
- <option>
- <name>No</name>
- <key>True</key>
- </option>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <sink>
- <name>set_constellation</name>
- <type>message</type>
- <optional>1</optional>
- <hide>$showports</hide>
- </sink>
-
- <sink>
- <name>rotate_phase</name>
- <type>message</type>
- <optional>1</optional>
- <hide>$showports</hide>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
- <source>
- <name>error</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>phase</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>frequency</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>symbol</name>
- <type>complex</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_constellation_rect.block.yml b/gr-digital/grc/digital_constellation_rect.block.yml
new file mode 100644
index 0000000000..e9e58001c2
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_rect.block.yml
@@ -0,0 +1,65 @@
+id: variable_constellation_rect
+label: Constellation Rect. Object
+category: Modulators
+
+parameters:
+- id: sym_map
+ label: Symbol Map
+ dtype: int_vector
+ default: '[0, 1, 3, 2]'
+- id: const_points
+ label: Constellation Points
+ dtype: complex_vector
+ default: '[-1-1j, -1+1j, 1+1j, 1-1j]'
+- id: rot_sym
+ label: Rotational Symmetry
+ dtype: int
+ default: '4'
+- id: real_sect
+ label: Real Sectors
+ dtype: int
+ default: '2'
+- id: imag_sect
+ label: Imaginary Sectors
+ dtype: int
+ default: '2'
+- id: w_real_sect
+ label: Width Real Sectors
+ dtype: int
+ default: '1'
+- id: w_imag_sect
+ label: Width Imaginary Sectors
+ dtype: int
+ default: '1'
+- id: precision
+ label: Soft bits precision
+ dtype: int
+ default: '8'
+ hide: part
+- id: soft_dec_lut
+ label: Soft Decisions LUT
+ dtype: raw
+ default: None
+ hide: ${ ('part' if str(soft_dec_lut) == 'None' else 'none') }
+value: ${ digital.constellation_rect(const_points, sym_map, rot_sym, real_sect, imag_sect,
+ w_real_sect, w_imag_sect) }
+
+templates:
+ imports: from gnuradio import digital
+ var_make: 'self.${id} = ${id} = digital.constellation_rect(${const_points}, ${sym_map},
+ ${rot_sym}, ${real_sect}, ${imag_sect}, ${w_real_sect}, ${w_imag_sect}).base()
+
+ % if str(soft_dec_lut).lower() == ''"auto"'' or str(soft_dec_lut).lower()
+ == "''auto''":
+
+ self.${id}.gen_soft_dec_lut(${precision})
+
+ % elif str(soft_dec_lut) != ''None'':
+
+ self.${id}.set_soft_dec_lut(${soft_dec_lut}, ${precision})
+
+ % endif
+
+ '
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation_rect.xml b/gr-digital/grc/digital_constellation_rect.xml
deleted file mode 100644
index 9e50fe84b7..0000000000
--- a/gr-digital/grc/digital_constellation_rect.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Create a Rectangular Constellation Object
-###################################################
- -->
-<block>
- <name>Constellation Rect. Object</name>
- <key>variable_constellation_rect</key>
- <category>Modulators</category>
- <import>from gnuradio import digital</import>
- <var_make>self.$(id) = $(id) = digital.constellation_rect($const_points, $sym_map, $rot_sym, $real_sect, $imag_sect, $w_real_sect, $w_imag_sect).base()
-#if str($soft_dec_lut).lower() == '"auto"' or str($soft_dec_lut).lower() == "'auto'"
-self.$(id).gen_soft_dec_lut($precision)
-#else if str($soft_dec_lut) != 'None'
-self.$(id).set_soft_dec_lut($soft_dec_lut, $precision)
-#end if
-</var_make>
-
- <var_value>digital.constellation_rect($const_points, $sym_map, $rot_sym, $real_sect, $imag_sect, $w_real_sect, $w_imag_sect)</var_value>
-
- <make></make>
- <!--<callback>set_softbits($softbits_lut, $precision)</callback>-->
-
- <param>
- <name>Symbol Map</name>
- <key>sym_map</key>
- <value>[0, 1, 3, 2]</value>
- <type>int_vector</type>
- </param>
-
- <param>
- <name>Constellation Points</name>
- <key>const_points</key>
- <value>[-1-1j, -1+1j, 1+1j, 1-1j]</value>
- <type>complex_vector</type>
- </param>
-
- <param>
- <name>Rotational Symmetry</name>
- <key>rot_sym</key>
- <value>4</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Real Sectors</name>
- <key>real_sect</key>
- <value>2</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Imaginary Sectors</name>
- <key>imag_sect</key>
- <value>2</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Width Real Sectors</name>
- <key>w_real_sect</key>
- <value>1</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Width Imaginary Sectors</name>
- <key>w_imag_sect</key>
- <value>1</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Soft bits precision</name>
- <key>precision</key>
- <value>8</value>
- <type>int</type>
- <hide>part</hide>
- </param>
-
- <param>
- <name>Soft Decisions LUT</name>
- <key>soft_dec_lut</key>
- <value>None</value>
- <type>raw</type>
- <hide>#if str($soft_dec_lut) == 'None' then 'part' else 'none'#</hide>
- </param>
-</block>
diff --git a/gr-digital/grc/digital_constellation_soft_decoder_cf.block.yml b/gr-digital/grc/digital_constellation_soft_decoder_cf.block.yml
new file mode 100644
index 0000000000..2b352a7f21
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_soft_decoder_cf.block.yml
@@ -0,0 +1,21 @@
+id: digital_constellation_soft_decoder_cf
+label: Constellation Soft Decoder
+
+parameters:
+- id: constellation
+ label: Constellation Object
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: float
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.constellation_soft_decoder_cf(${constellation})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_constellation_soft_decoder_cf.xml b/gr-digital/grc/digital_constellation_soft_decoder_cf.xml
deleted file mode 100644
index 6b0995acc9..0000000000
--- a/gr-digital/grc/digital_constellation_soft_decoder_cf.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Constellation Decoder, soft bits out
-###################################################
- -->
-<block>
- <name>Constellation Soft Decoder</name>
- <key>digital_constellation_soft_decoder_cf</key>
- <import>from gnuradio import digital</import>
- <make>digital.constellation_soft_decoder_cf($constellation)</make>
- <param>
- <name>Constellation Object</name>
- <key>constellation</key>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_corr_est_cc.block.yml b/gr-digital/grc/digital_corr_est_cc.block.yml
new file mode 100644
index 0000000000..b3a9698d18
--- /dev/null
+++ b/gr-digital/grc/digital_corr_est_cc.block.yml
@@ -0,0 +1,38 @@
+id: digital_corr_est_cc
+label: Correlation Estimator
+
+parameters:
+- id: symbols
+ label: Symbols
+ dtype: complex_vector
+- id: sps
+ label: Samples per Symbol
+ dtype: float
+- id: mark_delay
+ label: Tag marking delay
+ dtype: int
+- id: threshold
+ label: Threshold
+ dtype: float
+ default: '0.9'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+- label: corr
+ domain: stream
+ dtype: complex
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.corr_est_cc(${symbols}, ${sps}, ${mark_delay}, ${threshold})
+ callbacks:
+ - set_mark_delay(${mark_delay})
+ - set_threshold(${threshold})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_corr_est_cc.xml b/gr-digital/grc/digital_corr_est_cc.xml
deleted file mode 100644
index 1a1c449efb..0000000000
--- a/gr-digital/grc/digital_corr_est_cc.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>Correlation Estimator</name>
- <key>digital_corr_est_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.corr_est_cc($symbols, $sps, $mark_delay, $threshold)</make>
- <callback>set_mark_delay($mark_delay)</callback>
- <callback>set_threshold($threshold)</callback>
-
- <param>
- <name>Symbols</name>
- <key>symbols</key>
- <type>complex_vector</type>
- </param>
-
- <param>
- <name>Samples per Symbol</name>
- <key>sps</key>
- <type>float</type>
- </param>
-
- <param>
- <name>Tag marking delay</name>
- <key>mark_delay</key>
- <type>int</type>
- </param>
-
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <value>0.9</value>
- <type>float</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-
- <source>
- <name>corr</name>
- <type>complex</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_correlate_access_code_bb.block.yml b/gr-digital/grc/digital_correlate_access_code_bb.block.yml
new file mode 100644
index 0000000000..57394668b6
--- /dev/null
+++ b/gr-digital/grc/digital_correlate_access_code_bb.block.yml
@@ -0,0 +1,25 @@
+id: digital_correlate_access_code_bb
+label: Correlate Access Code
+
+parameters:
+- id: access_code
+ label: Access Code
+ dtype: string
+ default: '101010'
+- id: threshold
+ label: Threshold
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.correlate_access_code_bb(${access_code}, ${threshold})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_correlate_access_code_bb.xml b/gr-digital/grc/digital_correlate_access_code_bb.xml
deleted file mode 100644
index 3941834c40..0000000000
--- a/gr-digital/grc/digital_correlate_access_code_bb.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Correlate Access Code
-###################################################
- -->
-<block>
- <name>Correlate Access Code</name>
- <key>digital_correlate_access_code_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.correlate_access_code_bb($access_code, $threshold)</make>
- <param>
- <name>Access Code</name>
- <key>access_code</key>
- <value>101010</value>
- <type>string</type>
- </param>
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_correlate_access_code_tag_xx.block.yml b/gr-digital/grc/digital_correlate_access_code_tag_xx.block.yml
new file mode 100644
index 0000000000..6cf81129c2
--- /dev/null
+++ b/gr-digital/grc/digital_correlate_access_code_tag_xx.block.yml
@@ -0,0 +1,40 @@
+id: digital_correlate_access_code_tag_xx
+label: Correlate Access Code - Tag
+
+parameters:
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [byte, float]
+ option_attributes:
+ fcn: [bb, ff]
+ hide: part
+- id: access_code
+ label: Access Code
+ dtype: string
+ default: '101010'
+- id: threshold
+ label: Threshold
+ dtype: int
+- id: tagname
+ label: Tag Name
+ dtype: string
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.correlate_access_code_tag_${type.fcn}(${access_code}, ${threshold},
+ ${tagname})
+ callbacks:
+ - set_access_code(${access_code})
+ - set_threshold(${threshold})
+ - set_tagname(${tagname})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_correlate_access_code_tag_xx.xml b/gr-digital/grc/digital_correlate_access_code_tag_xx.xml
deleted file mode 100644
index c7c137187f..0000000000
--- a/gr-digital/grc/digital_correlate_access_code_tag_xx.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Correlate Access Code
-###################################################
- -->
-<block>
- <name>Correlate Access Code - Tag</name>
- <key>digital_correlate_access_code_tag_xx</key>
- <import>from gnuradio import digital</import>
- <make>digital.correlate_access_code_tag_$(type.fcn)($access_code, $threshold, $tagname)</make>
- <callback>set_access_code($access_code)</callback>
- <callback>set_threshold($threshold)</callback>
- <callback>set_tagname($tagname)</callback>
-
- <param>
- <name>IO Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>fcn:bb</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:ff</opt>
- </option>
- </param>
- <param>
- <name>Access Code</name>
- <key>access_code</key>
- <value>101010</value>
- <type>string</type>
- </param>
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <type>int</type>
- </param>
- <param>
- <name>Tag Name</name>
- <key>tagname</key>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_correlate_access_code_xx_ts.block.yml b/gr-digital/grc/digital_correlate_access_code_xx_ts.block.yml
new file mode 100644
index 0000000000..d51ba9833d
--- /dev/null
+++ b/gr-digital/grc/digital_correlate_access_code_xx_ts.block.yml
@@ -0,0 +1,37 @@
+id: digital_correlate_access_code_xx_ts
+label: Correlate Access Code - Tag Stream
+
+parameters:
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [float, byte]
+ option_attributes:
+ fcn: [ff, bb]
+ hide: part
+- id: access_code
+ label: Access Code
+ dtype: string
+ default: '101010'
+- id: threshold
+ label: Threshold
+ dtype: int
+- id: tagname
+ label: Tag Name
+ dtype: string
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.correlate_access_code_${type.fcn}_ts(${access_code},
+ ${threshold}, ${tagname})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_correlate_access_code_xx_ts.xml b/gr-digital/grc/digital_correlate_access_code_xx_ts.xml
deleted file mode 100644
index 467c2c84d9..0000000000
--- a/gr-digital/grc/digital_correlate_access_code_xx_ts.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Correlate Access Code - to tag stream
-###################################################
- -->
-<block>
- <name>Correlate Access Code - Tag Stream</name>
- <key>digital_correlate_access_code_xx_ts</key>
- <import>from gnuradio import digital</import>
- <make>digital.correlate_access_code_$(type.fcn)_ts($access_code,
- $threshold, $tagname)</make>
-
- <param>
- <name>IO Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:ff</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>fcn:bb</opt>
- </option>
- </param>
-
- <param>
- <name>Access Code</name>
- <key>access_code</key>
- <value>101010</value>
- <type>string</type>
- </param>
-
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <type>int</type>
- </param>
-
- <param>
- <name>Tag Name</name>
- <key>tagname</key>
- <type>string</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>$type</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>$type</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_costas_loop_cc.block.yml b/gr-digital/grc/digital_costas_loop_cc.block.yml
new file mode 100644
index 0000000000..6134774f32
--- /dev/null
+++ b/gr-digital/grc/digital_costas_loop_cc.block.yml
@@ -0,0 +1,48 @@
+id: digital_costas_loop_cc
+label: Costas Loop
+
+parameters:
+- id: w
+ label: Loop Bandwidth
+ dtype: real
+- id: order
+ label: Order
+ dtype: int
+- id: use_snr
+ label: Use SNR
+ dtype: enum
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+ hide: part
+
+inputs:
+- domain: stream
+ dtype: complex
+- domain: message
+ id: noise
+ optional: true
+
+outputs:
+- domain: stream
+ dtype: complex
+- label: frequency
+ domain: stream
+ dtype: float
+ optional: true
+- label: phase
+ domain: stream
+ dtype: float
+ optional: true
+- label: error
+ domain: stream
+ dtype: float
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.costas_loop_cc(${w}, ${order}, ${use_snr})
+ callbacks:
+ - set_loop_bandwidth(${w})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_costas_loop_cc.xml b/gr-digital/grc/digital_costas_loop_cc.xml
deleted file mode 100644
index 23e3ca9037..0000000000
--- a/gr-digital/grc/digital_costas_loop_cc.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Costas Loop
-###################################################
- -->
-<block>
- <name>Costas Loop</name>
- <key>digital_costas_loop_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.costas_loop_cc($w, $order, $use_snr)</make>
- <callback>set_loop_bandwidth($w)</callback>
-
- <param>
- <name>Loop Bandwidth</name>
- <key>w</key>
- <type>real</type>
- </param>
-
- <param>
- <name>Order</name>
- <key>order</key>
- <type>int</type>
- </param>
-
- <param>
- <name>Use SNR</name>
- <key>use_snr</key>
- <value>False</value>
- <type>enum</type>
- <hide>part</hide>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <sink>
- <name>noise</name>
- <type>message</type>
- <optional>1</optional>
- </sink>
-
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-
- <!-- Optional Outputs -->
- <source>
- <name>frequency</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>phase</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>error</name>
- <type>float</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_cpmmod_bc.block.yml b/gr-digital/grc/digital_cpmmod_bc.block.yml
new file mode 100644
index 0000000000..1a6435289b
--- /dev/null
+++ b/gr-digital/grc/digital_cpmmod_bc.block.yml
@@ -0,0 +1,40 @@
+id: digital_cpmmod_bc
+label: Continuous Phase Modulation
+
+parameters:
+- id: type
+ label: CPM Type
+ dtype: enum
+ options: [analog.cpm.LREC, analog.cpm.LRC, analog.cpm.LSRC, analog.cpm.TFM, analog.cpm.GAUSSIAN]
+ option_labels: [L-REC (Rectangular phase response), L-RC (Raised Cosine), L-SRC
+ (Spectral raised cosine), TFM (Tamed frequency modulation), Gaussian]
+- id: mod_index
+ label: Modulation Index
+ dtype: real
+ default: '0.5'
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '4'
+- id: L
+ label: Pulse Duration (Symbols)
+ dtype: int
+ default: '4'
+- id: beta
+ label: Phase Response Parameter (BT or Beta)
+ dtype: real
+ default: '0.3'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import gr, digital, analog
+ make: digital.cpmmod_bc(${type}, ${mod_index}, ${samples_per_symbol}, ${L}, ${beta})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_cpmmod_bc.xml b/gr-digital/grc/digital_cpmmod_bc.xml
deleted file mode 100644
index 94231775c9..0000000000
--- a/gr-digital/grc/digital_cpmmod_bc.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Continuous Phase Modulation
-###################################################
- -->
-<block>
- <name>Continuous Phase Modulation</name>
- <key>digital_cpmmod_bc</key>
- <import>from gnuradio import gr, digital, analog</import>
- <make>digital.cpmmod_bc($type, $mod_index, $samples_per_symbol, $L, $beta)</make>
- <param>
- <name>CPM Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>L-REC (Rectangular phase response)</name>
- <key>analog.cpm.LREC</key>
- </option>
- <option>
- <name>L-RC (Raised Cosine)</name>
- <key>analog.cpm.LRC</key>
- </option>
- <option>
- <name>L-SRC (Spectral raised cosine)</name>
- <key>analog.cpm.LSRC</key>
- </option>
- <option>
- <name>TFM (Tamed frequency modulation)</name>
- <key>analog.cpm.TFM</key>
- </option>
- <option>
- <name>Gaussian</name>
- <key>analog.cpm.GAUSSIAN</key>
- </option>
- </param>
- <param>
- <name>Modulation Index</name>
- <key>mod_index</key>
- <value>0.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>4</value>
- <type>int</type>
- </param>
- <param>
- <name>Pulse Duration (Symbols)</name>
- <key>L</key>
- <value>4</value>
- <type>int</type>
- </param>
- <param>
- <name>Phase Response Parameter (BT or Beta)</name>
- <key>beta</key>
- <value>0.3</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_crc32_async_bb.block.yml b/gr-digital/grc/digital_crc32_async_bb.block.yml
new file mode 100644
index 0000000000..19b6732217
--- /dev/null
+++ b/gr-digital/grc/digital_crc32_async_bb.block.yml
@@ -0,0 +1,25 @@
+id: digital_crc32_async_bb
+label: Async CRC32
+
+parameters:
+- id: check
+ label: Mode
+ dtype: enum
+ options: ['False', 'True']
+ option_labels: [Generate CRC, Check CRC]
+
+inputs:
+- domain: message
+ id: in
+ optional: true
+
+outputs:
+- domain: message
+ id: out
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.crc32_async_bb(${check})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_crc32_async_bb.xml b/gr-digital/grc/digital_crc32_async_bb.xml
deleted file mode 100644
index 84c60e60ab..0000000000
--- a/gr-digital/grc/digital_crc32_async_bb.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<block>
- <name>Async CRC32</name>
- <key>digital_crc32_async_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.crc32_async_bb($check)</make>
-
- <param>
- <name>Mode</name>
- <key>check</key>
- <type>enum</type>
- <option>
- <name>Generate CRC</name>
- <key>False</key>
- </option>
- <option>
- <name>Check CRC</name>
- <key>True</key>
- </option>
- </param>
-
- <sink>
- <name>in</name>
- <type>message</type>
- <optional>1</optional>
- </sink>
-
- <source>
- <name>out</name>
- <type>message</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_crc32_bb.block.yml b/gr-digital/grc/digital_crc32_bb.block.yml
new file mode 100644
index 0000000000..9e88a63f74
--- /dev/null
+++ b/gr-digital/grc/digital_crc32_bb.block.yml
@@ -0,0 +1,33 @@
+id: digital_crc32_bb
+label: Stream CRC32
+
+parameters:
+- id: check
+ label: Mode
+ dtype: enum
+ options: ['False', 'True']
+ option_labels: [Generate CRC, Check CRC]
+- id: lengthtagname
+ label: Length tag name
+ dtype: string
+ default: '"packet_len"'
+- id: packed
+ label: Packed
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.crc32_bb(${check}, ${lengthtagname}, ${packed})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_crc32_bb.xml b/gr-digital/grc/digital_crc32_bb.xml
deleted file mode 100644
index 2fc6c248d3..0000000000
--- a/gr-digital/grc/digital_crc32_bb.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<block>
- <name>Stream CRC32</name>
- <key>digital_crc32_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.crc32_bb($check, $lengthtagname, $packed)</make>
- <param>
- <name>Mode</name>
- <key>check</key>
- <type>enum</type>
- <option>
- <name>Generate CRC</name>
- <key>False</key>
- </option>
- <option>
- <name>Check CRC</name>
- <key>True</key>
- </option>
- </param>
- <param>
- <name>Length tag name</name>
- <key>lengthtagname</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <param>
- <name>Packed</name>
- <key>packed</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_descrambler_bb.block.yml b/gr-digital/grc/digital_descrambler_bb.block.yml
new file mode 100644
index 0000000000..fbb65c0ddc
--- /dev/null
+++ b/gr-digital/grc/digital_descrambler_bb.block.yml
@@ -0,0 +1,30 @@
+id: digital_descrambler_bb
+label: Descrambler
+
+parameters:
+- id: mask
+ label: Mask
+ dtype: hex
+ default: '0x8A'
+- id: seed
+ label: Seed
+ dtype: hex
+ default: '0x7F'
+- id: len
+ label: Length
+ dtype: int
+ default: '7'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.descrambler_bb(${mask}, ${seed}, ${len})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_descrambler_bb.xml b/gr-digital/grc/digital_descrambler_bb.xml
deleted file mode 100644
index 4f52c79645..0000000000
--- a/gr-digital/grc/digital_descrambler_bb.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Descrambler
-###################################################
- -->
-<block>
- <name>Descrambler</name>
- <key>digital_descrambler_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.descrambler_bb($mask, $seed, $len)</make>
- <param>
- <name>Mask</name>
- <key>mask</key>
- <value>0x8A</value>
- <type>hex</type>
- </param>
- <param>
- <name>Seed</name>
- <key>seed</key>
- <value>0x7F</value>
- <type>hex</type>
- </param>
- <param>
- <name>Length</name>
- <key>len</key>
- <value>7</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_diff_decoder_bb.block.yml b/gr-digital/grc/digital_diff_decoder_bb.block.yml
new file mode 100644
index 0000000000..4b988007c2
--- /dev/null
+++ b/gr-digital/grc/digital_diff_decoder_bb.block.yml
@@ -0,0 +1,21 @@
+id: digital_diff_decoder_bb
+label: Differential Decoder
+
+parameters:
+- id: modulus
+ label: Modulus
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.diff_decoder_bb(${modulus})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_diff_decoder_bb.xml b/gr-digital/grc/digital_diff_decoder_bb.xml
deleted file mode 100644
index a7c94b834c..0000000000
--- a/gr-digital/grc/digital_diff_decoder_bb.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Differential Decoder
-###################################################
- -->
-<block>
- <name>Differential Decoder</name>
- <key>digital_diff_decoder_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.diff_decoder_bb($modulus)</make>
- <param>
- <name>Modulus</name>
- <key>modulus</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_diff_encoder_bb.block.yml b/gr-digital/grc/digital_diff_encoder_bb.block.yml
new file mode 100644
index 0000000000..45a5c71302
--- /dev/null
+++ b/gr-digital/grc/digital_diff_encoder_bb.block.yml
@@ -0,0 +1,21 @@
+id: digital_diff_encoder_bb
+label: Differential Encoder
+
+parameters:
+- id: modulus
+ label: Modulus
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.diff_encoder_bb(${modulus})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_diff_encoder_bb.xml b/gr-digital/grc/digital_diff_encoder_bb.xml
deleted file mode 100644
index 3885bed9aa..0000000000
--- a/gr-digital/grc/digital_diff_encoder_bb.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Differential Encoder
-###################################################
- -->
-<block>
- <name>Differential Encoder</name>
- <key>digital_diff_encoder_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.diff_encoder_bb($modulus)</make>
- <param>
- <name>Modulus</name>
- <key>modulus</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_diff_phasor_cc.block.yml b/gr-digital/grc/digital_diff_phasor_cc.block.yml
new file mode 100644
index 0000000000..e63c718277
--- /dev/null
+++ b/gr-digital/grc/digital_diff_phasor_cc.block.yml
@@ -0,0 +1,16 @@
+id: digital_diff_phasor_cc
+label: Differential Phasor
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.diff_phasor_cc()
+
+file_format: 1
diff --git a/gr-digital/grc/digital_diff_phasor_cc.xml b/gr-digital/grc/digital_diff_phasor_cc.xml
deleted file mode 100644
index 506bf400ba..0000000000
--- a/gr-digital/grc/digital_diff_phasor_cc.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Differential Phasor
-###################################################
- -->
-<block>
- <name>Differential Phasor</name>
- <key>digital_diff_phasor_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.diff_phasor_cc()</make>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_dxpsk_demod.block.yml b/gr-digital/grc/digital_dxpsk_demod.block.yml
new file mode 100644
index 0000000000..99e7f40e6c
--- /dev/null
+++ b/gr-digital/grc/digital_dxpsk_demod.block.yml
@@ -0,0 +1,75 @@
+id: digital_dxpsk_demod
+label: DPSK Demod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [dbpsk, dqpsk]
+ option_labels: [DBPSK, DQPSK]
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: freq_bw
+ label: FLL Bandwidth
+ dtype: real
+ default: 6.28/100.0
+- id: phase_bw
+ label: Phase Loop Bandwidth
+ dtype: real
+ default: 6.28/100.0
+- id: timing_bw
+ label: Timing Bandwidth
+ dtype: real
+ default: 6.28/100.0
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+- id: sync_out
+ label: Sync Out
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.${type}_demod(\n\tsamples_per_symbol=${samples_per_symbol},\n\t\
+ excess_bw=${excess_bw},\n\tfreq_bw=${freq_bw},\n\tphase_bw=${phase_bw},\n\t\
+ timing_bw=${timing_bw},\n\tmod_code=${mod_code},\n\tverbose=${verbose},\n\t\
+ log=${log}\n)"
+ callbacks:
+ - clock_recov.set_loop_bandwidth(${phase_bw})
+ - time_recov.set_loop_bandwidth(${timing_bw})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_dxpsk_demod.xml b/gr-digital/grc/digital_dxpsk_demod.xml
deleted file mode 100644
index 12089ad771..0000000000
--- a/gr-digital/grc/digital_dxpsk_demod.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##DPSK2 Mod - 2, 4
-###################################################
- -->
-<block>
- <name>DPSK Demod</name>
- <key>digital_dxpsk_demod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.$(type)_demod(
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- freq_bw=$freq_bw,
- phase_bw=$phase_bw,
- timing_bw=$timing_bw,
- mod_code=$mod_code,
- verbose=$verbose,
- log=$log
-)</make>
- <callback>clock_recov.set_loop_bandwidth($phase_bw)</callback>
- <callback>time_recov.set_loop_bandwidth($timing_bw)</callback>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>DBPSK</name>
- <key>dbpsk</key>
- </option>
- <option>
- <name>DQPSK</name>
- <key>dqpsk</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>FLL Bandwidth</name>
- <key>freq_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Phase Loop Bandwidth</name>
- <key>phase_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Timing Bandwidth</name>
- <key>timing_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Sync Out</name>
- <key>sync_out</key>
- <value>False</value>
- <type>bool</type>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_dxpsk_mod.block.yml b/gr-digital/grc/digital_dxpsk_mod.block.yml
new file mode 100644
index 0000000000..577baa4426
--- /dev/null
+++ b/gr-digital/grc/digital_dxpsk_mod.block.yml
@@ -0,0 +1,52 @@
+id: digital_dxpsk_mod
+label: DPSK Mod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [dbpsk, dqpsk]
+ option_labels: [DBPSK, DQPSK]
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.${type}_mod(\n\tsamples_per_symbol=${samples_per_symbol},\n\texcess_bw=${excess_bw},\n\
+ \tmod_code=${mod_code},\n\tverbose=${verbose},\n\tlog=${log})\n\t"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_dxpsk_mod.xml b/gr-digital/grc/digital_dxpsk_mod.xml
deleted file mode 100644
index 4198b8805c..0000000000
--- a/gr-digital/grc/digital_dxpsk_mod.xml
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-## DPSK Mod - 2, 4
-###################################################
- -->
-<block>
- <name>DPSK Mod</name>
- <key>digital_dxpsk_mod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.$(type)_mod(
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- mod_code=$mod_code,
- verbose=$verbose,
- log=$log)
- </make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>DBPSK</name>
- <key>dbpsk</key>
- </option>
- <option>
- <name>DQPSK</name>
- <key>dqpsk</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_fll_band_edge_cc.block.yml b/gr-digital/grc/digital_fll_band_edge_cc.block.yml
new file mode 100644
index 0000000000..63b64912bb
--- /dev/null
+++ b/gr-digital/grc/digital_fll_band_edge_cc.block.yml
@@ -0,0 +1,53 @@
+id: digital_fll_band_edge_cc
+label: FLL Band-Edge
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [cc]
+ option_labels: [Complex->Complex]
+ option_attributes:
+ input: [complex]
+ output: [complex]
+ hide: part
+- id: samps_per_sym
+ label: Samples Per Symbol
+ dtype: real
+- id: rolloff
+ label: Filter Rolloff Factor
+ dtype: real
+- id: filter_size
+ label: Prototype Filter Size
+ dtype: int
+- id: w
+ label: Loop Bandwidth
+ dtype: real
+
+inputs:
+- domain: stream
+ dtype: ${ type.input }
+
+outputs:
+- domain: stream
+ dtype: ${ type.output }
+- label: freq
+ domain: stream
+ dtype: float
+ optional: true
+- label: phase
+ domain: stream
+ dtype: float
+ optional: true
+- label: error
+ domain: stream
+ dtype: float
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.fll_band_edge_cc(${samps_per_sym}, ${rolloff}, ${filter_size}, ${w})
+ callbacks:
+ - set_loop_bandwidth(${w})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_fll_band_edge_cc.xml b/gr-digital/grc/digital_fll_band_edge_cc.xml
deleted file mode 100644
index e4da773db2..0000000000
--- a/gr-digital/grc/digital_fll_band_edge_cc.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## FLL using Band-Edge Filters
-###################################################
- -->
-<block>
- <name>FLL Band-Edge</name>
- <key>digital_fll_band_edge_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.fll_band_edge_cc($samps_per_sym, $rolloff, $filter_size, $w)</make>
- <callback>set_loop_bandwidth($w)</callback>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex->Complex</name>
- <key>cc</key>
- <opt>input:complex</opt>
- <opt>output:complex</opt>
- </option>
- </param>
-
- <param>
- <name>Samples Per Symbol</name>
- <key>samps_per_sym</key>
- <type>real</type>
- </param>
- <param>
- <name>Filter Rolloff Factor</name>
- <key>rolloff</key>
- <type>real</type>
- </param>
- <param>
- <name>Prototype Filter Size</name>
- <key>filter_size</key>
- <type>int</type>
- </param>
-
- <param>
- <name>Loop Bandwidth</name>
- <key>w</key>
- <type>real</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <source>
- <name>freq</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>phase</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>error</name>
- <type>float</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_framer_sink_1.block.yml b/gr-digital/grc/digital_framer_sink_1.block.yml
new file mode 100644
index 0000000000..a05a1bf0e7
--- /dev/null
+++ b/gr-digital/grc/digital_framer_sink_1.block.yml
@@ -0,0 +1,17 @@
+id: digital_framer_sink_1
+label: Framer Sink 1
+
+parameters:
+- id: target_queue
+ label: Target Message Queue
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.framer_sink_1(${target_queue})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_framer_sink_1.xml b/gr-digital/grc/digital_framer_sink_1.xml
deleted file mode 100644
index 9124e6d0dc..0000000000
--- a/gr-digital/grc/digital_framer_sink_1.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Framer Sink 1
-###################################################
- -->
-<block>
- <name>Framer Sink 1</name>
- <key>digital_framer_sink_1</key>
- <import>from gnuradio import digital</import>
- <make>digital.framer_sink_1($target_queue)</make>
- <param>
- <name>Target Message Queue</name>
- <key>target_queue</key>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
-</block>
diff --git a/gr-digital/grc/digital_gfsk_demod.block.yml b/gr-digital/grc/digital_gfsk_demod.block.yml
new file mode 100644
index 0000000000..9f6b33c6af
--- /dev/null
+++ b/gr-digital/grc/digital_gfsk_demod.block.yml
@@ -0,0 +1,58 @@
+id: digital_gfsk_demod
+label: GFSK Demod
+
+parameters:
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: sensitivity
+ label: Sensitivity
+ dtype: real
+ default: '1.0'
+- id: gain_mu
+ label: Gain Mu
+ dtype: real
+ default: '0.175'
+- id: mu
+ label: Mu
+ dtype: real
+ default: '0.5'
+- id: omega_relative_limit
+ label: Omega Relative Limit
+ dtype: real
+ default: '0.005'
+- id: freq_error
+ label: Freq Error
+ dtype: real
+ default: '0.0'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.gfsk_demod(\n\tsamples_per_symbol=${samples_per_symbol},\n\tsensitivity=${sensitivity},\n\
+ \tgain_mu=${gain_mu},\n\tmu=${mu},\n\tomega_relative_limit=${omega_relative_limit},\n\
+ \tfreq_error=${freq_error},\n\tverbose=${verbose},\n\tlog=${log},\n)"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_gfsk_demod.xml b/gr-digital/grc/digital_gfsk_demod.xml
deleted file mode 100644
index cbea39e63e..0000000000
--- a/gr-digital/grc/digital_gfsk_demod.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##GFSK Demod
-###################################################
- -->
-<block>
- <name>GFSK Demod</name>
- <key>digital_gfsk_demod</key>
- <import>from gnuradio import digital</import>
- <make>digital.gfsk_demod(
- samples_per_symbol=$samples_per_symbol,
- sensitivity=$sensitivity,
- gain_mu=$gain_mu,
- mu=$mu,
- omega_relative_limit=$omega_relative_limit,
- freq_error=$freq_error,
- verbose=$verbose,
- log=$log,
-)</make>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Sensitivity</name>
- <key>sensitivity</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Gain Mu</name>
- <key>gain_mu</key>
- <value>0.175</value>
- <type>real</type>
- </param>
- <param>
- <name>Mu</name>
- <key>mu</key>
- <value>0.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Omega Relative Limit</name>
- <key>omega_relative_limit</key>
- <value>0.005</value>
- <type>real</type>
- </param>
- <param>
- <name>Freq Error</name>
- <key>freq_error</key>
- <value>0.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_gfsk_mod.block.yml b/gr-digital/grc/digital_gfsk_mod.block.yml
new file mode 100644
index 0000000000..3dda769a4c
--- /dev/null
+++ b/gr-digital/grc/digital_gfsk_mod.block.yml
@@ -0,0 +1,45 @@
+id: digital_gfsk_mod
+label: GFSK Mod
+
+parameters:
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: sensitivity
+ label: Sensitivity
+ dtype: real
+ default: '1.0'
+- id: bt
+ label: BT
+ dtype: real
+ default: '0.35'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.gfsk_mod(\n\tsamples_per_symbol=${samples_per_symbol},\n\tsensitivity=${sensitivity},\n\
+ \tbt=${bt},\n\tverbose=${verbose},\n\tlog=${log},\n)"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_gfsk_mod.xml b/gr-digital/grc/digital_gfsk_mod.xml
deleted file mode 100644
index 08e2c84790..0000000000
--- a/gr-digital/grc/digital_gfsk_mod.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##GFSK Mod
-###################################################
- -->
-<block>
- <name>GFSK Mod</name>
- <key>digital_gfsk_mod</key>
- <import>from gnuradio import digital</import>
- <make>digital.gfsk_mod(
- samples_per_symbol=$samples_per_symbol,
- sensitivity=$sensitivity,
- bt=$bt,
- verbose=$verbose,
- log=$log,
-)</make>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Sensitivity</name>
- <key>sensitivity</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <param>
- <name>BT</name>
- <key>bt</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_glfsr_source_x.block.yml b/gr-digital/grc/digital_glfsr_source_x.block.yml
new file mode 100644
index 0000000000..716b77b02c
--- /dev/null
+++ b/gr-digital/grc/digital_glfsr_source_x.block.yml
@@ -0,0 +1,37 @@
+id: digital_glfsr_source_x
+label: GLFSR Source
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [float, byte]
+ option_attributes:
+ fcn: [f, b]
+ hide: part
+- id: degree
+ label: Degree
+ dtype: int
+- id: repeat
+ label: Repeat
+ dtype: enum
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: mask
+ label: Mask
+ dtype: int
+ default: '0'
+- id: seed
+ label: Seed
+ dtype: int
+ default: '1'
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.glfsr_source_${type.fcn}(${degree}, ${repeat}, ${mask}, ${seed})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_glfsr_source_x.xml b/gr-digital/grc/digital_glfsr_source_x.xml
deleted file mode 100644
index 654dfa71c0..0000000000
--- a/gr-digital/grc/digital_glfsr_source_x.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##GLFSR Source
-###################################################
- -->
-<block>
- <name>GLFSR Source</name>
- <key>digital_glfsr_source_x</key>
- <import>from gnuradio import digital</import>
- <make>digital.glfsr_source_$(type.fcn)($degree, $repeat, $mask, $seed)</make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:f</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>fcn:b</opt>
- </option>
- </param>
- <param>
- <name>Degree</name>
- <key>degree</key>
- <type>int</type>
- </param>
- <param>
- <name>Repeat</name>
- <key>repeat</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Mask</name>
- <key>mask</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Seed</name>
- <key>seed</key>
- <value>1</value>
- <type>int</type>
- </param>
- <source>
- <name>out</name>
- <type>$type</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_gmsk_demod.block.yml b/gr-digital/grc/digital_gmsk_demod.block.yml
new file mode 100644
index 0000000000..bbd3b4148a
--- /dev/null
+++ b/gr-digital/grc/digital_gmsk_demod.block.yml
@@ -0,0 +1,54 @@
+id: digital_gmsk_demod
+label: GMSK Demod
+
+parameters:
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: gain_mu
+ label: Gain Mu
+ dtype: real
+ default: '0.175'
+- id: mu
+ label: Mu
+ dtype: real
+ default: '0.5'
+- id: omega_relative_limit
+ label: Omega Relative Limit
+ dtype: real
+ default: '0.005'
+- id: freq_error
+ label: Freq Error
+ dtype: real
+ default: '0.0'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.gmsk_demod(\n\tsamples_per_symbol=${samples_per_symbol},\n\tgain_mu=${gain_mu},\n\
+ \tmu=${mu},\n\tomega_relative_limit=${omega_relative_limit},\n\tfreq_error=${freq_error},\n\
+ \tverbose=${verbose},\n\tlog=${log},\n)"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_gmsk_demod.xml b/gr-digital/grc/digital_gmsk_demod.xml
deleted file mode 100644
index 4d57f1a17a..0000000000
--- a/gr-digital/grc/digital_gmsk_demod.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##GMSK Demod
-###################################################
- -->
-<block>
- <name>GMSK Demod</name>
- <key>digital_gmsk_demod</key>
- <import>from gnuradio import digital</import>
- <make>digital.gmsk_demod(
- samples_per_symbol=$samples_per_symbol,
- gain_mu=$gain_mu,
- mu=$mu,
- omega_relative_limit=$omega_relative_limit,
- freq_error=$freq_error,
- verbose=$verbose,
- log=$log,
-)</make>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Gain Mu</name>
- <key>gain_mu</key>
- <value>0.175</value>
- <type>real</type>
- </param>
- <param>
- <name>Mu</name>
- <key>mu</key>
- <value>0.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Omega Relative Limit</name>
- <key>omega_relative_limit</key>
- <value>0.005</value>
- <type>real</type>
- </param>
- <param>
- <name>Freq Error</name>
- <key>freq_error</key>
- <value>0.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_gmsk_mod.block.yml b/gr-digital/grc/digital_gmsk_mod.block.yml
new file mode 100644
index 0000000000..0b0941bae0
--- /dev/null
+++ b/gr-digital/grc/digital_gmsk_mod.block.yml
@@ -0,0 +1,41 @@
+id: digital_gmsk_mod
+label: GMSK Mod
+
+parameters:
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: bt
+ label: BT
+ dtype: real
+ default: '0.35'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.gmsk_mod(\n\tsamples_per_symbol=${samples_per_symbol},\n\tbt=${bt},\n\
+ \tverbose=${verbose},\n\tlog=${log},\n)"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_gmsk_mod.xml b/gr-digital/grc/digital_gmsk_mod.xml
deleted file mode 100644
index 77f52ca2f2..0000000000
--- a/gr-digital/grc/digital_gmsk_mod.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##GMSK Mod
-###################################################
- -->
-<block>
- <name>GMSK Mod</name>
- <key>digital_gmsk_mod</key>
- <import>from gnuradio import digital</import>
- <make>digital.gmsk_mod(
- samples_per_symbol=$samples_per_symbol,
- bt=$bt,
- verbose=$verbose,
- log=$log,
-)</make>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>BT</name>
- <key>bt</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_gmskmod_bc.block.yml b/gr-digital/grc/digital_gmskmod_bc.block.yml
new file mode 100644
index 0000000000..4b9a511078
--- /dev/null
+++ b/gr-digital/grc/digital_gmskmod_bc.block.yml
@@ -0,0 +1,30 @@
+id: digital_gmskmod_bc
+label: GMSK Modulator
+
+parameters:
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: bt
+ label: 3 dB Time-Bandwith Product
+ dtype: real
+ default: '0.3'
+- id: L
+ label: Pulse Duration (Symbols)
+ dtype: int
+ default: '4'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.gmskmod_bc(${samples_per_symbol}, ${L}, ${bt})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_gmskmod_bc.xml b/gr-digital/grc/digital_gmskmod_bc.xml
deleted file mode 100644
index 6cda687f76..0000000000
--- a/gr-digital/grc/digital_gmskmod_bc.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## GMSK
-###################################################
- -->
-<block>
- <name>GMSK Modulator</name>
- <key>digital_gmskmod_bc</key>
- <import>from gnuradio import digital</import>
- <make>digital.gmskmod_bc($samples_per_symbol, $L, $bt)</make>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>3 dB Time-Bandwith Product</name>
- <key>bt</key>
- <value>0.3</value>
- <type>real</type>
- </param>
- <param>
- <name>Pulse Duration (Symbols)</name>
- <key>L</key>
- <value>4</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_hdlc_deframer_bp.block.yml b/gr-digital/grc/digital_hdlc_deframer_bp.block.yml
new file mode 100644
index 0000000000..38b31ca53f
--- /dev/null
+++ b/gr-digital/grc/digital_hdlc_deframer_bp.block.yml
@@ -0,0 +1,26 @@
+id: digital_hdlc_deframer_bp
+label: HDLC Deframer
+
+parameters:
+- id: min
+ label: Min length
+ dtype: int
+ default: '32'
+- id: max
+ label: Max length
+ dtype: int
+ default: '500'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: message
+ id: out
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.hdlc_deframer_bp(${min}, ${max})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_hdlc_deframer_bp.xml b/gr-digital/grc/digital_hdlc_deframer_bp.xml
deleted file mode 100644
index 3e78b891df..0000000000
--- a/gr-digital/grc/digital_hdlc_deframer_bp.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>HDLC Deframer</name>
- <key>digital_hdlc_deframer_bp</key>
- <import>from gnuradio import digital</import>
- <make>digital.hdlc_deframer_bp($min, $max)</make>
- <param>
- <name>Min length</name>
- <key>min</key>
- <value>32</value>
- <type>int</type>
- </param>
- <param>
- <name>Max length</name>
- <key>max</key>
- <value>500</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>message</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_hdlc_framer_pb.block.yml b/gr-digital/grc/digital_hdlc_framer_pb.block.yml
new file mode 100644
index 0000000000..f775a489ef
--- /dev/null
+++ b/gr-digital/grc/digital_hdlc_framer_pb.block.yml
@@ -0,0 +1,21 @@
+id: digital_hdlc_framer_pb
+label: HDLC Framer
+
+parameters:
+- id: frame_tag_name
+ label: Frame tag name
+ dtype: string
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.hdlc_framer_pb(${frame_tag_name})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_hdlc_framer_pb.xml b/gr-digital/grc/digital_hdlc_framer_pb.xml
deleted file mode 100644
index 8dc122d581..0000000000
--- a/gr-digital/grc/digital_hdlc_framer_pb.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>HDLC Framer</name>
- <key>digital_hdlc_framer_pb</key>
- <import>from gnuradio import digital</import>
- <make>digital.hdlc_framer_pb($frame_tag_name)</make>
- <param>
- <name>Frame tag name</name>
- <key>frame_tag_name</key>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>message</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_header_payload_demux.block.yml b/gr-digital/grc/digital_header_payload_demux.block.yml
new file mode 100644
index 0000000000..4f69a08f29
--- /dev/null
+++ b/gr-digital/grc/digital_header_payload_demux.block.yml
@@ -0,0 +1,85 @@
+id: digital_header_payload_demux
+label: Header/Payload Demux
+
+parameters:
+- id: header_len
+ label: Header Length (Symbols)
+ dtype: int
+- id: header_padding
+ label: Header Padding (Uncertainty / Symbols)
+ dtype: int
+ default: '0'
+- id: items_per_symbol
+ label: Items per symbol
+ dtype: int
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: guard_interval
+ label: Guard Interval (items)
+ dtype: int
+ default: '0'
+ hide: ${ ('none' if guard_interval else 'part') }
+- id: length_tag_key
+ label: Length tag key
+ dtype: string
+ default: '"frame_len"'
+- id: trigger_tag_key
+ label: Trigger tag key
+ dtype: string
+ default: '""'
+ hide: ${ ('none' if trigger_tag_key else 'part') }
+- id: output_symbols
+ label: Output Format
+ dtype: enum
+ options: ['False', 'True']
+ option_labels: [Items, Symbols]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short,
+ gr.sizeof_char]
+ hide: part
+- id: timing_tag_key
+ label: Timing tag key
+ dtype: string
+ default: '"rx_time"'
+- id: samp_rate
+ label: Sampling Rate
+ dtype: int
+ default: samp_rate
+- id: special_tags
+ label: Special Tag Keys
+ dtype: raw
+ default: (,)
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+- label: trigger
+ domain: stream
+ dtype: byte
+ optional: true
+- domain: message
+ id: header_data
+
+outputs:
+- label: out_hdr
+ domain: stream
+ dtype: ${ type }
+ vlen: '${ {True: items_per_symbol, False: 1}[output_symbols] }'
+- label: out_payload
+ domain: stream
+ dtype: ${ type }
+ vlen: '${ {True: items_per_symbol, False: 1}[output_symbols] }'
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.header_payload_demux(\n\t ${header_len},\n\t ${items_per_symbol},\n\
+ \t ${guard_interval},\n\t ${length_tag_key},\n\t ${trigger_tag_key},\n\t\
+ \ ${output_symbols},\n\t ${type.itemsize},\n\t ${timing_tag_key},\n \
+ \ ${samp_rate},\n ${special_tags},\n ${header_padding},\n\
+ \ )"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_header_payload_demux.xml b/gr-digital/grc/digital_header_payload_demux.xml
deleted file mode 100644
index a2fe80e621..0000000000
--- a/gr-digital/grc/digital_header_payload_demux.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<block>
- <name>Header/Payload Demux</name>
- <key>digital_header_payload_demux</key>
- <import>from gnuradio import digital</import>
- <make>digital.header_payload_demux(
- $header_len,
- $items_per_symbol,
- $guard_interval,
- $length_tag_key,
- $trigger_tag_key,
- $output_symbols,
- $(type.itemsize),
- $timing_tag_key,
- $samp_rate,
- $special_tags,
- $header_padding,
- )</make>
- <param>
- <name>Header Length (Symbols)</name>
- <key>header_len</key>
- <type>int</type>
- </param>
- <param>
- <name>Header Padding (Uncertainty / Symbols)</name>
- <key>header_padding</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Items per symbol</name>
- <key>items_per_symbol</key>
- <type>int</type>
- </param>
- <param>
- <name>Guard Interval (items)</name>
- <key>guard_interval</key>
- <value>0</value>
- <type>int</type>
- <hide>#if $guard_interval then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Length tag key</name>
- <key>length_tag_key</key>
- <value>"frame_len"</value>
- <type>string</type>
- </param>
- <param>
- <name>Trigger tag key</name>
- <key>trigger_tag_key</key>
- <value>""</value>
- <type>string</type>
- <hide>#if $trigger_tag_key then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Output Format</name>
- <key>output_symbols</key>
- <type>enum</type>
- <option>
- <name>Items</name>
- <key>False</key>
- </option>
- <option>
- <name>Symbols</name>
- <key>True</key>
- </option>
- </param>
- <param>
- <name>IO Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>itemsize:gr.sizeof_gr_complex</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>itemsize:gr.sizeof_float</opt>
- </option>
- <option>
- <name>Int</name>
- <key>int</key>
- <opt>itemsize:gr.sizeof_int</opt>
- </option>
- <option>
- <name>Short</name>
- <key>short</key>
- <opt>itemsize:gr.sizeof_short</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>itemsize:gr.sizeof_char</opt>
- </option>
- </param>
- <param>
- <name>Timing tag key</name>
- <key>timing_tag_key</key>
- <value>"rx_time"</value>
- <type>string</type>
- </param>
- <param>
- <name>Sampling Rate</name>
- <key>samp_rate</key>
- <value>samp_rate</value>
- <type>int</type>
- </param>
- <param>
- <name>Special Tag Keys</name>
- <key>special_tags</key>
- <value>(,)</value>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type</type>
- </sink>
- <sink>
- <name>trigger</name>
- <type>byte</type>
- <optional>1</optional>
- </sink>
- <sink>
- <name>header_data</name>
- <type>message</type>
- </sink>
- <source>
- <name>out_hdr</name>
- <type>$type</type>
- <vlen>{True: $items_per_symbol, False: 1}[$output_symbols]</vlen>
- </source>
- <source>
- <name>out_payload</name>
- <type>$type</type>
- <vlen>{True: $items_per_symbol, False: 1}[$output_symbols]</vlen>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_kurtotic_equalizer_cc.block.yml b/gr-digital/grc/digital_kurtotic_equalizer_cc.block.yml
new file mode 100644
index 0000000000..d81aee7d4d
--- /dev/null
+++ b/gr-digital/grc/digital_kurtotic_equalizer_cc.block.yml
@@ -0,0 +1,26 @@
+id: digital_kurtotic_equalizer_cc
+label: Kurtotic Equalizer
+
+parameters:
+- id: num_taps
+ label: Num. Taps
+ dtype: int
+- id: mu
+ label: Mu
+ dtype: real
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.kurtotic_equalizer_cc(${num_taps}, ${mu})
+ callbacks:
+ - set_gain(${mu})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_kurtotic_equalizer_cc.xml b/gr-digital/grc/digital_kurtotic_equalizer_cc.xml
deleted file mode 100644
index 8c4a2012d2..0000000000
--- a/gr-digital/grc/digital_kurtotic_equalizer_cc.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Kurtotic Equalizer
-###################################################
- -->
-<block>
- <name>Kurtotic Equalizer</name>
- <key>digital_kurtotic_equalizer_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.kurtotic_equalizer_cc($num_taps, $mu)</make>
- <callback>set_gain($mu)</callback>
- <param>
- <name>Num. Taps</name>
- <key>num_taps</key>
- <type>int</type>
- </param>
- <param>
- <name>Mu</name>
- <key>mu</key>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_lms_dd_equalizer_cc.block.yml b/gr-digital/grc/digital_lms_dd_equalizer_cc.block.yml
new file mode 100644
index 0000000000..1c44ea2850
--- /dev/null
+++ b/gr-digital/grc/digital_lms_dd_equalizer_cc.block.yml
@@ -0,0 +1,32 @@
+id: digital_lms_dd_equalizer_cc
+label: LMS DD Equalizer
+
+parameters:
+- id: mu
+ label: Gain
+ dtype: real
+- id: num_taps
+ label: Num. Taps
+ dtype: int
+- id: sps
+ label: Samples per Symbol
+ dtype: int
+- id: cnst
+ label: Constellation Object
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.lms_dd_equalizer_cc(${num_taps}, ${mu}, ${sps}, ${cnst})
+ callbacks:
+ - set_gain(${mu})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_lms_dd_equalizer_cc.xml b/gr-digital/grc/digital_lms_dd_equalizer_cc.xml
deleted file mode 100644
index 0fd7d523b8..0000000000
--- a/gr-digital/grc/digital_lms_dd_equalizer_cc.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## LMS DD Equalizer
-###################################################
- -->
-<block>
- <name>LMS DD Equalizer</name>
- <key>digital_lms_dd_equalizer_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.lms_dd_equalizer_cc($num_taps, $mu, $sps, $cnst)</make>
- <callback>set_gain($mu)</callback>
- <param>
- <name>Gain</name>
- <key>mu</key>
- <type>real</type>
- </param>
- <param>
- <name>Num. Taps</name>
- <key>num_taps</key>
- <type>int</type>
- </param>
- <param>
- <name>Samples per Symbol</name>
- <key>sps</key>
- <type>int</type>
- </param>
- <param>
- <name>Constellation Object</name>
- <key>cnst</key>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_map_bb.block.yml b/gr-digital/grc/digital_map_bb.block.yml
new file mode 100644
index 0000000000..8f1a33fb0f
--- /dev/null
+++ b/gr-digital/grc/digital_map_bb.block.yml
@@ -0,0 +1,21 @@
+id: digital_map_bb
+label: Map
+
+parameters:
+- id: map
+ label: Map
+ dtype: int_vector
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.map_bb(${map})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_map_bb.xml b/gr-digital/grc/digital_map_bb.xml
deleted file mode 100644
index 1435c5ac78..0000000000
--- a/gr-digital/grc/digital_map_bb.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Map
-###################################################
- -->
-<block>
- <name>Map</name>
- <key>digital_map_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.map_bb($map)</make>
- <param>
- <name>Map</name>
- <key>map</key>
- <type>int_vector</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_modulate_vector.block.yml b/gr-digital/grc/digital_modulate_vector.block.yml
new file mode 100644
index 0000000000..a06cc211c8
--- /dev/null
+++ b/gr-digital/grc/digital_modulate_vector.block.yml
@@ -0,0 +1,22 @@
+id: variable_modulate_vector
+label: Modulate Vector
+category: Modulators
+
+parameters:
+- id: mod
+ label: Modulator
+ dtype: raw
+- id: data
+ label: Data vector
+ dtype: int_vector
+- id: taps
+ label: Filter taps
+ dtype: float_vector
+value: ${ digital.modulate_vector_bc(mod .to_basic_block(), data, taps) }
+
+templates:
+ imports: from gnuradio import digital
+ var_make: self.${id} = ${id} = digital.modulate_vector_bc(${mod} .to_basic_block(),
+ ${data}, ${taps})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_modulate_vector.xml b/gr-digital/grc/digital_modulate_vector.xml
deleted file mode 100644
index 91614dd3fd..0000000000
--- a/gr-digital/grc/digital_modulate_vector.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-# modulate_vector_bc
-###################################################
- -->
-<block>
- <name>Modulate Vector</name>
- <key>variable_modulate_vector</key>
- <category>Modulators</category>
- <import>from gnuradio import digital</import>
- <var_make>self.$(id) = $(id) = digital.modulate_vector_bc($mod .to_basic_block(), $data, $taps)</var_make>
- <var_value>digital.modulate_vector_bc($mod .to_basic_block(), $data, $taps)</var_value>
- <make></make>
-
- <param>
- <name>Modulator</name>
- <key>mod</key>
- <value></value>
- <type>raw</type>
- </param>
- <param>
- <name>Data vector</name>
- <key>data</key>
- <value></value>
- <type>int_vector</type>
- </param>
- <param>
- <name>Filter taps</name>
- <key>taps</key>
- <value></value>
- <type>float_vector</type>
- </param>
-</block>
diff --git a/gr-digital/grc/digital_mpsk_snr_est_cc.block.yml b/gr-digital/grc/digital_mpsk_snr_est_cc.block.yml
new file mode 100644
index 0000000000..7c39a24927
--- /dev/null
+++ b/gr-digital/grc/digital_mpsk_snr_est_cc.block.yml
@@ -0,0 +1,35 @@
+id: digital_mpsk_snr_est_cc
+label: MPSK SNR Estimator
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: ['0', '1', '2', '3']
+ option_labels: [Simple, Skewness, 2nd and 4th Moment, SVR]
+- id: tag_nsamples
+ label: Samples between tags
+ dtype: int
+ default: '10000'
+- id: alpha
+ label: Filter Alpha
+ dtype: real
+ default: '0.001'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.mpsk_snr_est_cc(${type}, ${tag_nsamples}, ${alpha})
+ callbacks:
+ - set_type(${type})
+ - set_tag_nsamples(${tag_nsamples})
+ - set_alpha(${alpha})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_mpsk_snr_est_cc.xml b/gr-digital/grc/digital_mpsk_snr_est_cc.xml
deleted file mode 100644
index 6039e5b13e..0000000000
--- a/gr-digital/grc/digital_mpsk_snr_est_cc.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##MPSK SNR Estimator
-###################################################
- -->
-<block>
- <name>MPSK SNR Estimator</name>
- <key>digital_mpsk_snr_est_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.mpsk_snr_est_cc($type, $tag_nsamples, $alpha)</make>
- <callback>set_type($type)</callback>
- <callback>set_tag_nsamples($tag_nsamples)</callback>
- <callback>set_alpha($alpha)</callback>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Simple</name>
- <key>0</key>
- </option>
- <option>
- <name>Skewness</name>
- <key>1</key>
- </option>
- <option>
- <name>2nd and 4th Moment</name>
- <key>2</key>
- </option>
- <option>
- <name>SVR</name>
- <key>3</key>
- </option>
- </param>
- <param>
- <name>Samples between tags</name>
- <key>tag_nsamples</key>
- <value>10000</value>
- <type>int</type>
- </param>
- <param>
- <name>Filter Alpha</name>
- <key>alpha</key>
- <value>0.001</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_msk_timing_recovery_cc.block.yml b/gr-digital/grc/digital_msk_timing_recovery_cc.block.yml
new file mode 100644
index 0000000000..3f5ae678c7
--- /dev/null
+++ b/gr-digital/grc/digital_msk_timing_recovery_cc.block.yml
@@ -0,0 +1,42 @@
+id: digital_msk_timing_recovery_cc
+label: MSK Timing Recovery
+
+parameters:
+- id: gain
+ label: Gain
+ dtype: float
+- id: sps
+ label: Samples per symbol
+ dtype: float
+- id: limit
+ label: Error limit
+ dtype: float
+- id: osps
+ label: Output samples per symbol
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+- label: err
+ domain: stream
+ dtype: float
+ optional: true
+- label: omega
+ domain: stream
+ dtype: float
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.msk_timing_recovery_cc(${sps}, ${gain}, ${limit}, ${osps})
+ callbacks:
+ - set_gain(${gain})
+ - set_sps(${sps})
+ - set_limit(${limit})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_msk_timing_recovery_cc.xml b/gr-digital/grc/digital_msk_timing_recovery_cc.xml
deleted file mode 100644
index cda780d685..0000000000
--- a/gr-digital/grc/digital_msk_timing_recovery_cc.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>MSK Timing Recovery</name>
- <key>digital_msk_timing_recovery_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.msk_timing_recovery_cc($sps, $gain, $limit, $osps)</make>
- <callback>set_gain($gain)</callback>
- <callback>set_sps($sps)</callback>
- <callback>set_limit($limit)</callback>
- <param>
- <name>Gain</name>
- <key>gain</key>
- <type>float</type>
- </param>
- <param>
- <name>Samples per symbol</name>
- <key>sps</key>
- <type>float</type>
- </param>
- <param>
- <name>Error limit</name>
- <key>limit</key>
- <type>float</type>
- </param>
- <param>
- <name>Output samples per symbol</name>
- <key>osps</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
- <source>
- <name>err</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>omega</name>
- <type>float</type>
- <optional>1</optional>
- </source>
-
-</block>
diff --git a/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.block.yml b/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.block.yml
new file mode 100644
index 0000000000..ab260ab9d9
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.block.yml
@@ -0,0 +1,44 @@
+id: digital_ofdm_carrier_allocator_cvc
+label: OFDM Carrier Allocator
+
+parameters:
+- id: fft_len
+ label: FFT length
+ dtype: int
+ default: fft_len
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: occupied_carriers
+ label: Occupied Carriers
+ dtype: raw
+- id: pilot_carriers
+ label: Pilot Carriers
+ dtype: raw
+ default: ()
+- id: pilot_symbols
+ label: Pilot Symbols
+ dtype: raw
+ default: ()
+- id: sync_words
+ label: Sync Words
+ dtype: raw
+ default: ()
+- id: len_tag_key
+ label: Length tag key
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fft_len }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_carrier_allocator_cvc(${fft_len}, ${occupied_carriers}, ${pilot_carriers},
+ ${pilot_symbols}, ${sync_words}, ${len_tag_key})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.xml b/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.xml
deleted file mode 100644
index b9bdde543d..0000000000
--- a/gr-digital/grc/digital_ofdm_carrier_allocator_cvc.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>OFDM Carrier Allocator</name>
- <key>digital_ofdm_carrier_allocator_cvc</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_carrier_allocator_cvc($fft_len, $occupied_carriers, $pilot_carriers, $pilot_symbols, $sync_words, $len_tag_key)</make>
- <param>
- <name>FFT length</name>
- <key>fft_len</key>
- <value>fft_len</value>
- <type>int</type>
- </param>
- <param>
- <name>Occupied Carriers</name>
- <key>occupied_carriers</key>
- <type>raw</type>
- </param>
- <param>
- <name>Pilot Carriers</name>
- <key>pilot_carriers</key>
- <value>()</value>
- <type>raw</type>
- </param>
- <param>
- <name>Pilot Symbols</name>
- <key>pilot_symbols</key>
- <value>()</value>
- <type>raw</type>
- </param>
- <param>
- <name>Sync Words</name>
- <key>sync_words</key>
- <value>()</value>
- <type>raw</type>
- </param>
- <param>
- <name>Length tag key</name>
- <key>len_tag_key</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$fft_len</vlen>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_chanest_vcvc.block.yml b/gr-digital/grc/digital_ofdm_chanest_vcvc.block.yml
new file mode 100644
index 0000000000..352c6ab5a7
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_chanest_vcvc.block.yml
@@ -0,0 +1,53 @@
+id: digital_ofdm_chanest_vcvc
+label: OFDM Channel Estimation
+
+parameters:
+- id: sync_symbol1
+ label: Synch. symbol 1
+ dtype: complex_vector
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: sync_symbol2
+ label: Synch. symbol 2
+ dtype: complex_vector
+ default: ()
+- id: n_data_symbols
+ label: Number of data symbols
+ dtype: int
+ default: '1'
+- id: eq_noise_red_len
+ label: Channel taps noise reduction length
+ dtype: int
+ default: '0'
+ hide: all
+- id: max_carr_offset
+ label: Maximum carrier offset
+ dtype: int
+ default: '-1'
+ hide: ${ ('part' if max_carr_offset < 0 else 'none') }
+- id: force_one_symbol
+ label: Force One Synchronisation Symbol
+ dtype: enum
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+ hide: ${ ('part' if not force_one_symbol else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ len(sync_symbol1) }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ len(sync_symbol1) }
+
+asserts:
+- ${ len(sync_symbol1) }
+- ${ len(sync_symbol2) == 0 or len(sync_symbol2) == len(sync_symbol1) }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_chanest_vcvc(${sync_symbol1}, ${sync_symbol2}, ${n_data_symbols},
+ ${eq_noise_red_len}, ${max_carr_offset}, ${force_one_symbol})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_chanest_vcvc.xml b/gr-digital/grc/digital_ofdm_chanest_vcvc.xml
deleted file mode 100644
index 5cc2145456..0000000000
--- a/gr-digital/grc/digital_ofdm_chanest_vcvc.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>OFDM Channel Estimation</name>
- <key>digital_ofdm_chanest_vcvc</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_chanest_vcvc($sync_symbol1, $sync_symbol2, $n_data_symbols, $eq_noise_red_len, $max_carr_offset, $force_one_symbol)</make>
- <param>
- <name>Synch. symbol 1</name>
- <key>sync_symbol1</key>
- <type>complex_vector</type>
- </param>
- <param>
- <name>Synch. symbol 2</name>
- <key>sync_symbol2</key>
- <value>()</value>
- <type>complex_vector</type>
- </param>
- <param>
- <name>Number of data symbols</name>
- <key>n_data_symbols</key>
- <value>1</value>
- <type>int</type>
- </param>
- <param>
- <name>Channel taps noise reduction length</name>
- <key>eq_noise_red_len</key>
- <value>0</value>
- <type>int</type>
- <hide>all</hide>
- </param>
- <param>
- <name>Maximum carrier offset</name>
- <key>max_carr_offset</key>
- <value>-1</value>
- <type>int</type>
- <hide>#if $max_carr_offset &lt; 0 then 'part' else 'none'#</hide>
- </param>
- <param>
- <name>Force One Synchronisation Symbol</name>
- <key>force_one_symbol</key>
- <type>enum</type>
- <hide>#if not $force_one_symbol then 'part' else 'none'#</hide>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <check>len($sync_symbol1)</check>
- <check>len($sync_symbol2) == 0 or len($sync_symbol2) == len($sync_symbol1)</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>len($sync_symbol1)</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>len($sync_symbol1)</vlen>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_cyclic_prefixer.block.yml b/gr-digital/grc/digital_ofdm_cyclic_prefixer.block.yml
new file mode 100644
index 0000000000..cd475a0601
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_cyclic_prefixer.block.yml
@@ -0,0 +1,38 @@
+id: digital_ofdm_cyclic_prefixer
+label: OFDM Cyclic Prefixer
+
+parameters:
+- id: input_size
+ label: FFT Length
+ dtype: int
+ default: fft_len
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: cp_len
+ label: CP Length
+ dtype: int
+ default: fft_len/4
+- id: rolloff
+ label: Rolloff
+ dtype: int
+ default: '0'
+ hide: ${ ('none' if rolloff else 'part') }
+- id: tagname
+ label: Length Tag Key
+ dtype: string
+ default: '"frame_len"'
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ input_size }
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_cyclic_prefixer(${input_size}, ${input_size+cp_len}, ${rolloff},
+ ${tagname})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml b/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml
deleted file mode 100644
index ec5e027047..0000000000
--- a/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##OFDM Cyclic Prefixer
-###################################################
- -->
-<block>
- <name>OFDM Cyclic Prefixer</name>
- <key>digital_ofdm_cyclic_prefixer</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_cyclic_prefixer($input_size, $input_size+$cp_len, $rolloff, $tagname)</make>
- <param>
- <name>FFT Length</name>
- <key>input_size</key>
- <value>fft_len</value>
- <type>int</type>
- </param>
- <param>
- <name>CP Length</name>
- <key>cp_len</key>
- <value>fft_len/4</value>
- <type>int</type>
- </param>
- <param>
- <name>Rolloff</name>
- <key>rolloff</key>
- <value>0</value>
- <type>int</type>
- <hide>#if $rolloff then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Length Tag Key</name>
- <key>tagname</key>
- <value>"frame_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$input_size</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.block.yml b/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.block.yml
new file mode 100644
index 0000000000..b2eba18e64
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.block.yml
@@ -0,0 +1,46 @@
+id: digital_ofdm_frame_equalizer_vcvc
+label: OFDM Frame Equalizer
+
+parameters:
+- id: fft_len
+ label: FFT length
+ dtype: int
+ default: fft_len
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: cp_len
+ label: CP length
+ dtype: int
+ default: fft_len/4
+- id: equalizer
+ label: Equalizer
+ dtype: raw
+- id: len_tag_key
+ label: Length Tag Key
+ dtype: string
+- id: propagate_channel_state
+ label: Propagate Channel State
+ dtype: enum
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: fixed_frame_len
+ label: Fixed frame length
+ dtype: int
+ default: '0'
+ hide: ${ ('none' if fixed_frame_len else 'part') }
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fft_len }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fft_len }
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_frame_equalizer_vcvc(${equalizer}, ${cp_len}, ${len_tag_key},
+ ${propagate_channel_state}, ${fixed_frame_len})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.xml b/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.xml
deleted file mode 100644
index 2a0c24e528..0000000000
--- a/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<block>
- <name>OFDM Frame Equalizer</name>
- <key>digital_ofdm_frame_equalizer_vcvc</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_frame_equalizer_vcvc($equalizer, $cp_len, $len_tag_key, $propagate_channel_state, $fixed_frame_len)</make>
- <param>
- <name>FFT length</name>
- <key>fft_len</key>
- <value>fft_len</value>
- <type>int</type>
- </param>
- <param>
- <name>CP length</name>
- <key>cp_len</key>
- <value>fft_len/4</value>
- <type>int</type>
- </param>
- <param>
- <name>Equalizer</name>
- <key>equalizer</key>
- <type>raw</type>
- </param>
- <param>
- <name>Length Tag Key</name>
- <key>len_tag_key</key>
- <type>string</type>
- </param>
- <param>
- <name>Propagate Channel State</name>
- <key>propagate_channel_state</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Fixed frame length</name>
- <key>fixed_frame_len</key>
- <value>0</value>
- <type>int</type>
- <hide>#if $fixed_frame_len then 'none' else 'part'#</hide>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$fft_len</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$fft_len</vlen>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_rx.block.yml b/gr-digital/grc/digital_ofdm_rx.block.yml
new file mode 100644
index 0000000000..ac6bc50b09
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_rx.block.yml
@@ -0,0 +1,95 @@
+id: digital_ofdm_rx
+label: OFDM Receiver
+
+parameters:
+- id: fft_len
+ label: FFT Length
+ dtype: int
+ default: '64'
+- id: cp_len
+ label: Cyclic Prefix Length
+ dtype: int
+ default: '16'
+- id: packet_len_key
+ label: Packet Length Tag Key
+ dtype: string
+ default: '"length"'
+- id: occupied_carriers
+ label: Occupied Carriers
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if occupied_carriers else 'part' }
+- id: pilot_carriers
+ label: Pilot Carriers
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if pilot_carriers else 'part' }
+- id: pilot_symbols
+ label: Pilot Symbols
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if pilot_symbols else 'part' }
+ - id: sync_word1
+ label: Sync Word 1
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if sync_word1 else 'part' }
+- id: sync_word2
+ label: Sync Word 2
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if sync_word2 else 'part' }
+- id: header_mod
+ label: Header Modulation
+ dtype: enum
+ options: ['"BPSK"', '"QPSK"']
+ option_labels: [BPSK, QPSK]
+ option_attributes:
+ bps: ['1', '2']
+- id: payload_mod
+ label: Payload Modulation
+ dtype: enum
+ options: ['"BPSK"', '"QPSK"', '"8-PSK"']
+ option_labels: [BPSK, QPSK, 8-PSK]
+ option_attributes:
+ bps: ['1', '2', '3']
+- id: scramble_bits
+ label: Scramble Bits
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+ hide: ${ ('part' if scramble_bits else 'none') }
+- id: log
+ label: Log Debug Info
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+ hide: ${ ('none' if log else 'part') }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+asserts:
+- ${ fft_len > 0 }
+- ${ cp_len > 0 }
+- ${ cp_len < fft_len }
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.ofdm_rx(\n\t fft_len=${fft_len}, cp_len=${cp_len},\n\t frame_length_tag_key='frame_'+${packet_len_key},\n\
+ \t packet_length_tag_key=${packet_len_key},\n\t % if occupied_carriers:\n\
+ \t occupied_carriers=${occupied_carriers},\n\t % endif\n\t % if pilot_carriers:\n\
+ \t pilot_carriers=${pilot_carriers},\n\t % endif\n\t % if pilot_symbols:\n\
+ \t pilot_symbols=${pilot_symbols},\n\t % endif\n\t % if sync_word1:\n\t\
+ \ sync_word1=${sync_word1},\n\t % endif\n\t % if sync_word2:\n\t sync_word2=${sync_word2},\n\
+ \t % endif\n\t bps_header=${header_mod.bps},\n\t bps_payload=${payload_mod.bps},\n\
+ \t debug_log=${log},\n\t scramble_bits=${scramble_bits}\n\t )"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_rx.xml b/gr-digital/grc/digital_ofdm_rx.xml
deleted file mode 100644
index 9c2bf65e9d..0000000000
--- a/gr-digital/grc/digital_ofdm_rx.xml
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>OFDM Receiver</name>
- <key>digital_ofdm_rx</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_rx(
- fft_len=$fft_len, cp_len=$cp_len,
- frame_length_tag_key='frame_'+$packet_len_key,
- packet_length_tag_key=$packet_len_key,
- #if $occupied_carriers()
- occupied_carriers=$occupied_carriers,
- #end if
- #if $pilot_carriers()
- pilot_carriers=$pilot_carriers,
- #end if
- #if $pilot_symbols()
- pilot_symbols=$pilot_symbols,
- #end if
- #if $sync_word1()
- sync_word1=$sync_word1,
- #end if
- #if $sync_word2()
- sync_word2=$sync_word2,
- #end if
- bps_header=$header_mod.bps,
- bps_payload=$payload_mod.bps,
- debug_log=$log,
- scramble_bits=$scramble_bits
- )</make>
- <param>
- <name>FFT Length</name>
- <key>fft_len</key>
- <value>64</value>
- <type>int</type>
- </param>
- <param>
- <name>Cyclic Prefix Length</name>
- <key>cp_len</key>
- <value>16</value>
- <type>int</type>
- </param>
- <param>
- <name>Packet Length Tag Key</name>
- <key>packet_len_key</key>
- <value>"length"</value>
- <type>string</type>
- </param>
- <param>
- <name>Occupied Carriers</name>
- <key>occupied_carriers</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $occupied_carriers()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Pilot Carriers</name>
- <key>pilot_carriers</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $pilot_carriers()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Pilot Symbols</name>
- <key>pilot_symbols</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $pilot_symbols()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Sync Word 1</name>
- <key>sync_word1</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $sync_word1()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Sync Word 2</name>
- <key>sync_word2</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $sync_word2()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Header Modulation</name>
- <key>header_mod</key>
- <type>enum</type>
- <option>
- <name>BPSK</name>
- <key>"BPSK"</key>
- <opt>bps:1</opt>
- </option>
- <option>
- <name>QPSK</name>
- <key>"QPSK"</key>
- <opt>bps:2</opt>
- </option>
- </param>
- <param>
- <name>Payload Modulation</name>
- <key>payload_mod</key>
- <type>enum</type>
- <option>
- <name>BPSK</name>
- <key>"BPSK"</key>
- <opt>bps:1</opt>
- </option>
- <option>
- <name>QPSK</name>
- <key>"QPSK"</key>
- <opt>bps:2</opt>
- </option>
- <option>
- <name>8-PSK</name>
- <key>"8-PSK"</key>
- <opt>bps:3</opt>
- </option>
- </param>
- <param>
- <name>Scramble Bits</name>
- <key>scramble_bits</key>
- <value>False</value>
- <type>enum</type>
- <hide> #if $scramble_bits then 'part' else 'none'#</hide>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <param>
- <name>Log Debug Info</name>
- <key>log</key>
- <value>False</value>
- <type>enum</type>
- <hide> #if $log then 'none' else 'part'#</hide>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <check>$fft_len &gt; 0</check>
- <check>$cp_len &gt; 0</check>
- <check>$cp_len &lt; $fft_len</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
-
diff --git a/gr-digital/grc/digital_ofdm_serializer_vcc.block.yml b/gr-digital/grc/digital_ofdm_serializer_vcc.block.yml
new file mode 100644
index 0000000000..d81dd569f7
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_serializer_vcc.block.yml
@@ -0,0 +1,51 @@
+id: digital_ofdm_serializer_vcc
+label: OFDM Serializer
+
+parameters:
+- id: fft_len
+ label: FFT length
+ dtype: int
+ default: fft_len
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: occupied_carriers
+ label: Occupied Carriers
+ dtype: raw
+- id: len_tag_key
+ label: Length Tag Key
+ dtype: string
+- id: packet_len_tag_key
+ label: Packet Length Tag Key
+ dtype: string
+ default: '""'
+ hide: ${ ('none' if packet_len_tag_key else 'part') }
+- id: symbols_skipped
+ label: Symbols skipped
+ dtype: int
+ default: '0'
+ hide: ${ ('none' if symbols_skipped else 'part') }
+- id: carr_offset_key
+ label: Carrier Offset Key
+ dtype: string
+ default: '""'
+ hide: ${ ('none' if carr_offset_key else 'part') }
+- id: input_is_shifted
+ label: Input is shifted
+ dtype: bool
+ default: 'True'
+ hide: ${ ('part' if input_is_shifted else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fft_len }
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_serializer_vcc(${fft_len}, ${occupied_carriers}, ${len_tag_key},
+ ${packet_len_tag_key}, ${symbols_skipped}, ${carr_offset_key}, ${input_is_shifted})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_serializer_vcc.xml b/gr-digital/grc/digital_ofdm_serializer_vcc.xml
deleted file mode 100644
index 1c09cd94fc..0000000000
--- a/gr-digital/grc/digital_ofdm_serializer_vcc.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>OFDM Serializer</name>
- <key>digital_ofdm_serializer_vcc</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_serializer_vcc($fft_len, $occupied_carriers, $len_tag_key, $packet_len_tag_key, $symbols_skipped, $carr_offset_key, $input_is_shifted)</make>
- <param>
- <name>FFT length</name>
- <key>fft_len</key>
- <value>fft_len</value>
- <type>int</type>
- </param>
- <param>
- <name>Occupied Carriers</name>
- <key>occupied_carriers</key>
- <type>raw</type>
- </param>
- <param>
- <name>Length Tag Key</name>
- <key>len_tag_key</key>
- <type>string</type>
- </param>
- <param>
- <name>Packet Length Tag Key</name>
- <key>packet_len_tag_key</key>
- <value>""</value>
- <type>string</type>
- <hide>#if $packet_len_tag_key then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Symbols skipped</name>
- <key>symbols_skipped</key>
- <value>0</value>
- <type>int</type>
- <hide>#if $symbols_skipped then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Carrier Offset Key</name>
- <key>carr_offset_key</key>
- <value>""</value>
- <type>string</type>
- <hide>#if $carr_offset_key then 'none' else 'part'#</hide>
- </param>
- <param>
- <name>Input is shifted</name>
- <key>input_is_shifted</key>
- <value>True</value>
- <type>bool</type>
- <hide>#if $input_is_shifted then 'part' else 'none'#</hide>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$fft_len</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_sync_sc_cfb.block.yml b/gr-digital/grc/digital_ofdm_sync_sc_cfb.block.yml
new file mode 100644
index 0000000000..f1e2f3b13b
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_sync_sc_cfb.block.yml
@@ -0,0 +1,35 @@
+id: digital_ofdm_sync_sc_cfb
+label: Schmidl & Cox OFDM synch.
+
+parameters:
+- id: fft_len
+ label: FFT length
+ dtype: int
+- id: cp_len
+ label: Cyclic Prefix length
+ dtype: int
+- id: use_even_carriers
+ label: Preamble Carriers
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: [Odd, Even]
+ hide: part
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- label: freq_offset
+ domain: stream
+ dtype: float
+- label: detect
+ domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.ofdm_sync_sc_cfb(${fft_len}, ${cp_len}, ${use_even_carriers})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_sync_sc_cfb.xml b/gr-digital/grc/digital_ofdm_sync_sc_cfb.xml
deleted file mode 100644
index 4238df761c..0000000000
--- a/gr-digital/grc/digital_ofdm_sync_sc_cfb.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>Schmidl &amp; Cox OFDM synch.</name>
- <key>digital_ofdm_sync_sc_cfb</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_sync_sc_cfb($fft_len, $cp_len, $use_even_carriers)</make>
- <param>
- <name>FFT length</name>
- <key>fft_len</key>
- <type>int</type>
- </param>
- <param>
- <name>Cyclic Prefix length</name>
- <key>cp_len</key>
- <type>int</type>
- </param>
- <param>
- <name>Preamble Carriers</name>
- <key>use_even_carriers</key>
- <value>False</value>
- <type>enum</type>
- <hide>part</hide>
- <option>
- <name>Odd</name>
- <key>False</key>
- </option>
- <option>
- <name>Even</name>
- <key>True</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>freq_offset</name>
- <type>float</type>
- </source>
- <source>
- <name>detect</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_tx.block.yml b/gr-digital/grc/digital_ofdm_tx.block.yml
new file mode 100644
index 0000000000..c81da0d27f
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_tx.block.yml
@@ -0,0 +1,100 @@
+id: digital_ofdm_tx
+label: OFDM Transmitter
+
+parameters:
+- id: fft_len
+ label: FFT Length
+ dtype: int
+ default: '64'
+- id: cp_len
+ label: Cyclic Prefix Length
+ dtype: int
+ default: '16'
+- id: packet_len_key
+ label: Length Tag Name
+ dtype: string
+ default: length
+- id: occupied_carriers
+ label: Occupied Carriers
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if occupied_carriers else 'part' }
+- id: pilot_carriers
+ label: Pilot Carriers
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if pilot_carriers else 'part' }
+- id: pilot_symbols
+ label: Pilot Symbols
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if pilot_symbols else 'part' }
+- id: sync_word1
+ label: Sync Word 1
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if sync_word1 else 'part' }
+- id: sync_word2
+ label: Sync Word 2
+ dtype: raw
+ default: ()
+ hide: ${ 'none' if sync_word2 else 'part' }
+- id: header_mod
+ label: Header Modulation
+ dtype: enum
+ options: ['"BPSK"', '"QPSK"']
+ option_labels: [BPSK, QPSK]
+ option_attributes:
+ bps: ['1', '2']
+- id: payload_mod
+ label: Payload Modulation
+ dtype: enum
+ options: ['"BPSK"', '"QPSK"', '"8-PSK"']
+ option_labels: [BPSK, QPSK, 8-PSK]
+ option_attributes:
+ bps: ['1', '2', '3']
+- id: rolloff
+ label: Rolloff length (samples)
+ dtype: int
+ default: '0'
+- id: scramble_bits
+ label: Scramble Bits
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+ hide: ${ ('part' if scramble_bits else 'none') }
+- id: log
+ label: Log Debug Info
+ dtype: enum
+ default: 'False'
+ options: ['False', 'True']
+ option_labels: ['No', 'Yes']
+ hide: ${ ('none' if log else 'part') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+asserts:
+- ${ fft_len > 0 }
+- ${ cp_len > 0 }
+- ${ cp_len < fft_len }
+- ${ rolloff >= 0 }
+
+templates:
+ imports: from gnuradio import digital
+ make: "digital.ofdm_tx(\n\t fft_len=${fft_len}, cp_len=${cp_len},\n\t packet_length_tag_key=${packet_len_key},\n\
+ \t % if occupied_carriers:\n\t occupied_carriers=${occupied_carriers},\n\
+ \t % endif\n\t % if pilot_carriers:\n\t pilot_carriers=${pilot_carriers},\n\
+ \t % endif\n\t % if pilot_carriers:\n\t pilot_symbols=${pilot_symbols},\n\
+ \t % endif\n\t % if sync_word1:\n\t sync_word1=${sync_word1},\n\t % endif\n\
+ \t % if sync_word2:\n\t sync_word2=${sync_word2},\n\t % endif\n\t bps_header=${header_mod.bps},\n\
+ \t bps_payload=${payload_mod.bps},\n\t rolloff=${rolloff},\n\t debug_log=${log},\n\
+ \t scramble_bits=${scramble_bits}\n\t )"
+
+file_format: 1
diff --git a/gr-digital/grc/digital_ofdm_tx.xml b/gr-digital/grc/digital_ofdm_tx.xml
deleted file mode 100644
index bad0b2b13d..0000000000
--- a/gr-digital/grc/digital_ofdm_tx.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0"?>
-<block>
- <name>OFDM Transmitter</name>
- <key>digital_ofdm_tx</key>
- <import>from gnuradio import digital</import>
- <make>digital.ofdm_tx(
- fft_len=$fft_len, cp_len=$cp_len,
- packet_length_tag_key=$packet_len_key,
- #if $occupied_carriers()
- occupied_carriers=$occupied_carriers,
- #end if
- #if $pilot_carriers()
- pilot_carriers=$pilot_carriers,
- #end if
- #if $pilot_carriers()
- pilot_symbols=$pilot_symbols,
- #end if
- #if $sync_word1()
- sync_word1=$sync_word1,
- #end if
- #if $sync_word2()
- sync_word2=$sync_word2,
- #end if
- bps_header=$header_mod.bps,
- bps_payload=$payload_mod.bps,
- rolloff=$rolloff,
- debug_log=$log,
- scramble_bits=$scramble_bits
- )</make>
- <param>
- <name>FFT Length</name>
- <key>fft_len</key>
- <value>64</value>
- <type>int</type>
- </param>
- <param>
- <name>Cyclic Prefix Length</name>
- <key>cp_len</key>
- <value>16</value>
- <type>int</type>
- </param>
- <param>
- <name>Length Tag Name</name>
- <key>packet_len_key</key>
- <value>length</value>
- <type>string</type>
- </param>
- <param>
- <name>Occupied Carriers</name>
- <key>occupied_carriers</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $occupied_carriers()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Pilot Carriers</name>
- <key>pilot_carriers</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $pilot_carriers()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Pilot Symbols</name>
- <key>pilot_symbols</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $pilot_symbols()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Sync Word 1</name>
- <key>sync_word1</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $sync_word1()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Sync Word 2</name>
- <key>sync_word2</key>
- <value>()</value>
- <type>raw</type>
- <hide>
- #if $sync_word2()
- none
- #else
- part
- #end if
- </hide>
- </param>
- <param>
- <name>Header Modulation</name>
- <key>header_mod</key>
- <type>enum</type>
- <option>
- <name>BPSK</name>
- <key>"BPSK"</key>
- <opt>bps:1</opt>
- </option>
- <option>
- <name>QPSK</name>
- <key>"QPSK"</key>
- <opt>bps:2</opt>
- </option>
- </param>
- <param>
- <name>Payload Modulation</name>
- <key>payload_mod</key>
- <type>enum</type>
- <option>
- <name>BPSK</name>
- <key>"BPSK"</key>
- <opt>bps:1</opt>
- </option>
- <option>
- <name>QPSK</name>
- <key>"QPSK"</key>
- <opt>bps:2</opt>
- </option>
- <option>
- <name>8-PSK</name>
- <key>"8-PSK"</key>
- <opt>bps:3</opt>
- </option>
- </param>
- <param>
- <name>Rolloff length (samples)</name>
- <key>rolloff</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Scramble Bits</name>
- <key>scramble_bits</key>
- <value>False</value>
- <type>enum</type>
- <hide> #if $scramble_bits then 'part' else 'none'#</hide>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <param>
- <name>Log Debug Info</name>
- <key>log</key>
- <value>False</value>
- <type>enum</type>
- <hide> #if $log then 'none' else 'part'#</hide>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- </param>
- <check>$fft_len &gt; 0</check>
- <check>$cp_len &gt; 0</check>
- <check>$cp_len &lt; $fft_len</check>
- <check>$rolloff &gt;= 0</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_packet_headergenerator_bb.block.yml b/gr-digital/grc/digital_packet_headergenerator_bb.block.yml
new file mode 100644
index 0000000000..d77530450f
--- /dev/null
+++ b/gr-digital/grc/digital_packet_headergenerator_bb.block.yml
@@ -0,0 +1,27 @@
+id: digital_packet_headergenerator_bb
+label: Packet Header Generator
+
+parameters:
+- id: header_formatter
+ label: Formatter Object
+ dtype: raw
+- id: len_tag_key
+ label: Length Tag Name
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.packet_headergenerator_bb(${header_formatter}, ${len_tag_key})
+ callbacks:
+ - set_header_formatter(${header_formatter})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_packet_headergenerator_bb.xml b/gr-digital/grc/digital_packet_headergenerator_bb.xml
deleted file mode 100644
index f069b52a01..0000000000
--- a/gr-digital/grc/digital_packet_headergenerator_bb.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<block>
- <name>Packet Header Generator</name>
- <key>digital_packet_headergenerator_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.packet_headergenerator_bb($header_formatter, $len_tag_key)</make>
- <callback>set_header_formatter($header_formatter)</callback>
- <param>
- <name>Formatter Object</name>
- <key>header_formatter</key>
- <type>raw</type>
- </param>
- <param>
- <name>Length Tag Name</name>
- <key>len_tag_key</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_packet_headergenerator_bb_default.block.yml b/gr-digital/grc/digital_packet_headergenerator_bb_default.block.yml
new file mode 100644
index 0000000000..f9af16acac
--- /dev/null
+++ b/gr-digital/grc/digital_packet_headergenerator_bb_default.block.yml
@@ -0,0 +1,25 @@
+id: digital_packet_headergenerator_bb_default
+label: Packet Header Generator (Default)
+
+parameters:
+- id: header_len
+ label: Header Length
+ dtype: int
+- id: len_tag_key
+ label: Length Tag Name
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.packet_headergenerator_bb(${header_len}, ${len_tag_key})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_packet_headergenerator_bb_default.xml b/gr-digital/grc/digital_packet_headergenerator_bb_default.xml
deleted file mode 100644
index e89c340bf1..0000000000
--- a/gr-digital/grc/digital_packet_headergenerator_bb_default.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<block>
- <name>Packet Header Generator (Default)</name>
- <key>digital_packet_headergenerator_bb_default</key>
- <import>from gnuradio import digital</import>
- <make>digital.packet_headergenerator_bb($header_len, $len_tag_key)</make>
- <param>
- <name>Header Length</name>
- <key>header_len</key>
- <type>int</type>
- </param>
- <param>
- <name>Length Tag Name</name>
- <key>len_tag_key</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
-
diff --git a/gr-digital/grc/digital_packet_headerparser_b.block.yml b/gr-digital/grc/digital_packet_headerparser_b.block.yml
new file mode 100644
index 0000000000..f3a4741086
--- /dev/null
+++ b/gr-digital/grc/digital_packet_headerparser_b.block.yml
@@ -0,0 +1,21 @@
+id: digital_packet_headerparser_b
+label: Packet Header Parser
+
+parameters:
+- id: header_formatter
+ label: Formatter Object
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: message
+ id: header_data
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.packet_headerparser_b(${header_formatter})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_packet_headerparser_b.xml b/gr-digital/grc/digital_packet_headerparser_b.xml
deleted file mode 100644
index bab6bd22ed..0000000000
--- a/gr-digital/grc/digital_packet_headerparser_b.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<block>
- <name>Packet Header Parser</name>
- <key>digital_packet_headerparser_b</key>
- <import>from gnuradio import digital</import>
- <make>digital.packet_headerparser_b($header_formatter)</make>
- <param>
- <name>Formatter Object</name>
- <key>header_formatter</key>
- <type>raw</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>header_data</name>
- <type>message</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_packet_headerparser_b_default.block.yml b/gr-digital/grc/digital_packet_headerparser_b_default.block.yml
new file mode 100644
index 0000000000..903a23cf32
--- /dev/null
+++ b/gr-digital/grc/digital_packet_headerparser_b_default.block.yml
@@ -0,0 +1,25 @@
+id: digital_packet_headerparser_b_default
+label: Packet Header Parser (Default)
+
+parameters:
+- id: header_len
+ label: Header Length
+ dtype: int
+- id: len_tag_key
+ label: Length Tag Name
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: message
+ id: header_data
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.packet_headerparser_b(${header_len}, ${len_tag_key})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_packet_headerparser_b_default.xml b/gr-digital/grc/digital_packet_headerparser_b_default.xml
deleted file mode 100644
index 81a33ed774..0000000000
--- a/gr-digital/grc/digital_packet_headerparser_b_default.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<block>
- <name>Packet Header Parser (Default)</name>
- <key>digital_packet_headerparser_b_default</key>
- <import>from gnuradio import digital</import>
- <make>digital.packet_headerparser_b($header_len, $len_tag_key)</make>
- <param>
- <name>Header Length</name>
- <key>header_len</key>
- <type>int</type>
- </param>
- <param>
- <name>Length Tag Name</name>
- <key>len_tag_key</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>header_data</name>
- <type>message</type>
- </source>
-</block>
-
diff --git a/gr-digital/grc/digital_packet_sink.block.yml b/gr-digital/grc/digital_packet_sink.block.yml
new file mode 100644
index 0000000000..a603226afc
--- /dev/null
+++ b/gr-digital/grc/digital_packet_sink.block.yml
@@ -0,0 +1,24 @@
+id: digital_packet_sink
+label: Packet Sink
+
+parameters:
+- id: sync_vector
+ label: Sync Vector
+ dtype: int_vector
+- id: target_queue
+ label: Target Message Queue
+ dtype: raw
+- id: threshold
+ label: Threshold
+ dtype: int
+ default: '-1'
+
+inputs:
+- domain: stream
+ dtype: float
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.packet_sink(${sync_vector}, ${target_queue}, ${threshold})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_packet_sink.xml b/gr-digital/grc/digital_packet_sink.xml
deleted file mode 100644
index 2c6653d7ec..0000000000
--- a/gr-digital/grc/digital_packet_sink.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Packet Sink
-###################################################
- -->
-<block>
- <name>Packet Sink</name>
- <key>digital_packet_sink</key>
- <import>from gnuradio import digital</import>
- <make>digital.packet_sink($sync_vector, $target_queue, $threshold)</make>
- <param>
- <name>Sync Vector</name>
- <key>sync_vector</key>
- <type>int_vector</type>
- </param>
- <param>
- <name>Target Message Queue</name>
- <key>target_queue</key>
- <type>raw</type>
- </param>
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
-</block>
diff --git a/gr-digital/grc/digital_pfb_clock_sync.block.yml b/gr-digital/grc/digital_pfb_clock_sync.block.yml
new file mode 100644
index 0000000000..d9fbca8441
--- /dev/null
+++ b/gr-digital/grc/digital_pfb_clock_sync.block.yml
@@ -0,0 +1,69 @@
+id: digital_pfb_clock_sync_xxx
+label: Polyphase Clock Sync
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [ccf, fff]
+ option_labels: [Complex->Complex (Real Taps), Float->Float (Real Taps)]
+ option_attributes:
+ input: [complex, float]
+ output: [complex, float]
+ taps: [real_vector, real_vector]
+ hide: part
+- id: sps
+ label: Samples/Symbol
+ dtype: real
+- id: loop_bw
+ label: Loop Bandwidth
+ dtype: real
+- id: taps
+ label: Taps
+ dtype: real_vector
+- id: filter_size
+ label: Filter Size
+ dtype: int
+ default: '32'
+- id: init_phase
+ label: Initial Phase
+ dtype: real
+ default: '16'
+- id: max_dev
+ label: Maximum Rate Deviation
+ dtype: real
+ default: '1.5'
+- id: osps
+ label: Output SPS
+ dtype: int
+ default: '1'
+
+inputs:
+- domain: stream
+ dtype: ${ type.input }
+
+outputs:
+- domain: stream
+ dtype: ${ type.output }
+- label: err
+ domain: stream
+ dtype: float
+ optional: true
+- label: rate
+ domain: stream
+ dtype: float
+ optional: true
+- label: phase
+ domain: stream
+ dtype: float
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.pfb_clock_sync_${type}(${sps}, ${loop_bw}, ${taps}, ${filter_size},
+ ${init_phase}, ${max_dev}, ${osps})
+ callbacks:
+ - update_taps(${taps})
+ - set_loop_bandwidth(${loop_bw})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_pfb_clock_sync.xml b/gr-digital/grc/digital_pfb_clock_sync.xml
deleted file mode 100644
index c54417f2cb..0000000000
--- a/gr-digital/grc/digital_pfb_clock_sync.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Polyphase Filter based Clock Sync
-###################################################
- -->
-<block>
- <name>Polyphase Clock Sync</name>
- <key>digital_pfb_clock_sync_xxx</key>
- <import>from gnuradio import digital</import>
- <make>digital.pfb_clock_sync_$(type)($sps, $loop_bw, $taps, $filter_size, $init_phase, $max_dev, $osps)</make>
- <callback>update_taps($taps)</callback>
- <callback>set_loop_bandwidth($loop_bw)</callback>
-
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex->Complex (Real Taps)</name>
- <key>ccf</key>
- <opt>input:complex</opt>
- <opt>output:complex</opt>
- <opt>taps:real_vector</opt>
- </option>
- <option>
- <name>Float->Float (Real Taps)</name>
- <key>fff</key>
- <opt>input:float</opt>
- <opt>output:float</opt>
- <opt>taps:real_vector</opt>
- </option>
- </param>
-
- <param>
- <name>Samples/Symbol</name>
- <key>sps</key>
- <type>real</type>
- </param>
- <param>
- <name>Loop Bandwidth</name>
- <key>loop_bw</key>
- <type>real</type>
- </param>
- <param>
- <name>Taps</name>
- <key>taps</key>
- <type>real_vector</type>
- </param>
- <param>
- <name>Filter Size</name>
- <key>filter_size</key>
- <value>32</value>
- <type>int</type>
- </param>
- <param>
- <name>Initial Phase</name>
- <key>init_phase</key>
- <value>16</value>
- <type>real</type>
- </param>
- <param>
- <name>Maximum Rate Deviation</name>
- <key>max_dev</key>
- <value>1.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Output SPS</name>
- <key>osps</key>
- <value>1</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <source>
- <name>err</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>rate</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>phase</name>
- <type>float</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_pn_correlator_cc.block.yml b/gr-digital/grc/digital_pn_correlator_cc.block.yml
new file mode 100644
index 0000000000..e92415433d
--- /dev/null
+++ b/gr-digital/grc/digital_pn_correlator_cc.block.yml
@@ -0,0 +1,29 @@
+id: digital_pn_correlator_cc
+label: PN Correlator
+
+parameters:
+- id: degree
+ label: Degree
+ dtype: int
+- id: mask
+ label: Mask
+ dtype: int
+ default: '0'
+- id: seed
+ label: Seed
+ dtype: int
+ default: '1'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.pn_correlator_cc(${degree}, ${mask}, ${seed})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_pn_correlator_cc.xml b/gr-digital/grc/digital_pn_correlator_cc.xml
deleted file mode 100644
index 999cea15d9..0000000000
--- a/gr-digital/grc/digital_pn_correlator_cc.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##PN Correlator
-###################################################
- -->
-<block>
- <name>PN Correlator</name>
- <key>digital_pn_correlator_cc</key>
- <import>from gnuradio import digital</import>
- <make>digital.pn_correlator_cc($degree, $mask, $seed)</make>
- <param>
- <name>Degree</name>
- <key>degree</key>
- <type>int</type>
- </param>
- <param>
- <name>Mask</name>
- <key>mask</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Seed</name>
- <key>seed</key>
- <value>1</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_probe_density_b.block.yml b/gr-digital/grc/digital_probe_density_b.block.yml
new file mode 100644
index 0000000000..e329c6568c
--- /dev/null
+++ b/gr-digital/grc/digital_probe_density_b.block.yml
@@ -0,0 +1,24 @@
+id: digital_probe_density_b
+label: Probe Density
+
+parameters:
+- id: alpha
+ label: Alpha
+ dtype: real
+ default: '1'
+- id: probe_rate
+ label: Probe Rate
+ dtype: real
+ default: '10'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.probe_density_b(${alpha})
+ callbacks:
+ - set_alpha(${alpha})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_probe_density_b.xml b/gr-digital/grc/digital_probe_density_b.xml
deleted file mode 100644
index 8cf5dd8943..0000000000
--- a/gr-digital/grc/digital_probe_density_b.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Probe Density
-###################################################
- -->
-<block>
- <name>Probe Density</name>
- <key>digital_probe_density_b</key>
- <import>from gnuradio import digital</import>
- <make>digital.probe_density_b($alpha)</make>
- <callback>set_alpha($alpha)</callback>
- <param>
- <name>Alpha</name>
- <key>alpha</key>
- <value>1</value>
- <type>real</type>
- </param>
- <param>
- <name>Probe Rate</name>
- <key>probe_rate</key>
- <value>10</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
-</block>
diff --git a/gr-digital/grc/digital_probe_mpsk_snr_est_c.block.yml b/gr-digital/grc/digital_probe_mpsk_snr_est_c.block.yml
new file mode 100644
index 0000000000..68e29c1e76
--- /dev/null
+++ b/gr-digital/grc/digital_probe_mpsk_snr_est_c.block.yml
@@ -0,0 +1,42 @@
+id: digital_probe_mpsk_snr_est_c
+label: MPSK SNR Estimator Probe
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: ['0', '1', '2', '3']
+ option_labels: [Simple, Skewness, 2nd and 4th Moment, SVR]
+- id: msg_nsamples
+ label: Samples between SNR messages
+ dtype: int
+ default: '10000'
+- id: alpha
+ label: Filter Alpha
+ dtype: real
+ default: '0.001'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: message
+ id: snr
+ optional: true
+- domain: message
+ id: signal
+ optional: true
+- domain: message
+ id: noise
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.probe_mpsk_snr_est_c(${type}, ${msg_nsamples}, ${alpha})
+ callbacks:
+ - set_type(${type})
+ - set_msg_nsample(${msg_nsamples})
+ - set_alpha(${alpha})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_probe_mpsk_snr_est_c.xml b/gr-digital/grc/digital_probe_mpsk_snr_est_c.xml
deleted file mode 100644
index e49f7e7f56..0000000000
--- a/gr-digital/grc/digital_probe_mpsk_snr_est_c.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##MPSK SNR Estimator
-###################################################
- -->
-<block>
- <name>MPSK SNR Estimator Probe</name>
- <key>digital_probe_mpsk_snr_est_c</key>
- <import>from gnuradio import digital</import>
- <make>digital.probe_mpsk_snr_est_c($type, $msg_nsamples, $alpha)</make>
- <callback>set_type($type)</callback>
- <callback>set_msg_nsample($msg_nsamples)</callback>
- <callback>set_alpha($alpha)</callback>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Simple</name>
- <key>0</key>
- </option>
- <option>
- <name>Skewness</name>
- <key>1</key>
- </option>
- <option>
- <name>2nd and 4th Moment</name>
- <key>2</key>
- </option>
- <option>
- <name>SVR</name>
- <key>3</key>
- </option>
- </param>
- <param>
- <name>Samples between SNR messages</name>
- <key>msg_nsamples</key>
- <value>10000</value>
- <type>int</type>
- </param>
- <param>
- <name>Filter Alpha</name>
- <key>alpha</key>
- <value>0.001</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>snr</name>
- <type>message</type>
- <optional>1</optional>
- </source>
- <source>
- <name>signal</name>
- <type>message</type>
- <optional>1</optional>
- </source>
- <source>
- <name>noise</name>
- <type>message</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_protocol_formatter_async.block.yml b/gr-digital/grc/digital_protocol_formatter_async.block.yml
new file mode 100644
index 0000000000..29975522ff
--- /dev/null
+++ b/gr-digital/grc/digital_protocol_formatter_async.block.yml
@@ -0,0 +1,26 @@
+id: digital_protocol_formatter_async
+label: Protocol Formatter (Async)
+
+parameters:
+- id: format
+ label: Format Obj.
+ dtype: raw
+
+inputs:
+- domain: message
+ id: in
+ optional: true
+
+outputs:
+- domain: message
+ id: header
+ optional: true
+- domain: message
+ id: payload
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.protocol_formatter_async(${format})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_protocol_formatter_async.xml b/gr-digital/grc/digital_protocol_formatter_async.xml
deleted file mode 100644
index 52a67eca36..0000000000
--- a/gr-digital/grc/digital_protocol_formatter_async.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-
-<block>
- <name>Protocol Formatter (Async)</name>
- <key>digital_protocol_formatter_async</key>
- <import>from gnuradio import digital</import>
- <make>digital.protocol_formatter_async($format)</make>
-
- <param>
- <name>Format Obj.</name>
- <key>format</key>
- <type>raw</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>message</type>
- <optional>1</optional>
- </sink>
-
- <source>
- <name>header</name>
- <type>message</type>
- <optional>1</optional>
- </source>
-
- <source>
- <name>payload</name>
- <type>message</type>
- <optional>1</optional>
- </source>
-
-</block>
diff --git a/gr-digital/grc/digital_protocol_formatter_bb.block.yml b/gr-digital/grc/digital_protocol_formatter_bb.block.yml
new file mode 100644
index 0000000000..9141b52085
--- /dev/null
+++ b/gr-digital/grc/digital_protocol_formatter_bb.block.yml
@@ -0,0 +1,25 @@
+id: digital_protocol_formatter_bb
+label: Protocol Formatter
+
+parameters:
+- id: format
+ label: Format Obj.
+ dtype: raw
+- id: len_tag_key
+ label: Length Tag Name
+ dtype: string
+ default: '"packet_len"'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.protocol_formatter_bb(${format}, ${len_tag_key})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_protocol_formatter_bb.xml b/gr-digital/grc/digital_protocol_formatter_bb.xml
deleted file mode 100644
index b37a791fa8..0000000000
--- a/gr-digital/grc/digital_protocol_formatter_bb.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-
-<block>
- <name>Protocol Formatter</name>
- <key>digital_protocol_formatter_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.protocol_formatter_bb($format, $len_tag_key)</make>
-
- <param>
- <name>Format Obj.</name>
- <key>format</key>
- <type>raw</type>
- </param>
-
- <param>
- <name>Length Tag Name</name>
- <key>len_tag_key</key>
- <value>"packet_len"</value>
- <type>string</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-
-</block>
diff --git a/gr-digital/grc/digital_protocol_parser_b.block.yml b/gr-digital/grc/digital_protocol_parser_b.block.yml
new file mode 100644
index 0000000000..b09e480863
--- /dev/null
+++ b/gr-digital/grc/digital_protocol_parser_b.block.yml
@@ -0,0 +1,22 @@
+id: digital_protocol_parser_b
+label: Protocol Parser
+
+parameters:
+- id: format
+ label: Format Obj.
+ dtype: raw
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: message
+ id: info
+ optional: true
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.protocol_parser_b(${format})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_protocol_parser_b.xml b/gr-digital/grc/digital_protocol_parser_b.xml
deleted file mode 100644
index 27fb15e05b..0000000000
--- a/gr-digital/grc/digital_protocol_parser_b.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-
-<block>
- <name>Protocol Parser</name>
- <key>digital_protocol_parser_b</key>
- <import>from gnuradio import digital</import>
- <make>digital.protocol_parser_b($format)</make>
-
- <param>
- <name>Format Obj.</name>
- <key>format</key>
- <type>raw</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
-
- <source>
- <name>info</name>
- <type>message</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_psk_demod.block.yml b/gr-digital/grc/digital_psk_demod.block.yml
new file mode 100644
index 0000000000..fbb5d60005
--- /dev/null
+++ b/gr-digital/grc/digital_psk_demod.block.yml
@@ -0,0 +1,79 @@
+id: digital_psk_demod
+label: PSK Demod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: constellation_points
+ label: Number of Constellation Points
+ dtype: int
+ default: '8'
+- id: differential
+ label: Differential Encoding
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: freq_bw
+ label: Frequency BW
+ dtype: real
+ default: 6.28/100.0
+- id: timing_bw
+ label: Timing BW
+ dtype: real
+ default: 6.28/100.0
+- id: phase_bw
+ label: Phase BW
+ dtype: real
+ default: 6.28/100.0
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.psk.psk_demod(
+ constellation_points=${constellation_points},
+ differential=${differential},
+ samples_per_symbol=${samples_per_symbol},
+ excess_bw=${excess_bw},
+ phase_bw=${phase_bw},
+ timing_bw=${timing_bw},
+ mod_code=${mod_code},
+ verbose=${verbose},
+ log=${log},
+ )
+
+file_format: 1
diff --git a/gr-digital/grc/digital_psk_demod.xml b/gr-digital/grc/digital_psk_demod.xml
deleted file mode 100644
index 02beed01ac..0000000000
--- a/gr-digital/grc/digital_psk_demod.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##PSK Demod
-###################################################
- -->
-<block>
- <name>PSK Demod</name>
- <key>digital_psk_demod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.psk.psk_demod(
- constellation_points=$constellation_points,
- differential=$differential,
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- phase_bw=$phase_bw,
- timing_bw=$timing_bw,
- mod_code=$mod_code,
- verbose=$verbose,
- log=$log,
- )</make>
- <param>
- <name>Number of Constellation Points</name>
- <key>constellation_points</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>Differential Encoding</name>
- <key>differential</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Frequency BW</name>
- <key>freq_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Timing BW</name>
- <key>timing_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Phase BW</name>
- <key>phase_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_psk_mod.block.yml b/gr-digital/grc/digital_psk_mod.block.yml
new file mode 100644
index 0000000000..9145718fa7
--- /dev/null
+++ b/gr-digital/grc/digital_psk_mod.block.yml
@@ -0,0 +1,65 @@
+id: digital_psk_mod
+label: PSK Mod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: constellation_points
+ label: Number of Constellation Points
+ dtype: int
+ default: '8'
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: differential
+ label: Differential Encoding
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.psk.psk_mod(
+ constellation_points=${constellation_points},
+ mod_code=${mod_code},
+ differential=${differential},
+ samples_per_symbol=${samples_per_symbol},
+ excess_bw=${excess_bw},
+ verbose=${verbose},
+ log=${log},
+ )
+
+file_format: 1
diff --git a/gr-digital/grc/digital_psk_mod.xml b/gr-digital/grc/digital_psk_mod.xml
deleted file mode 100644
index 43e60562ee..0000000000
--- a/gr-digital/grc/digital_psk_mod.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##PSK Mod
-###################################################
- -->
-<block>
- <name>PSK Mod</name>
- <key>digital_psk_mod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.psk.psk_mod(
- constellation_points=$constellation_points,
- mod_code=$mod_code,
- differential=$differential,
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- verbose=$verbose,
- log=$log,
- )</make>
- <param>
- <name>Number of Constellation Points</name>
- <key>constellation_points</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Differential Encoding</name>
- <key>differential</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_qam_demod.block.yml b/gr-digital/grc/digital_qam_demod.block.yml
new file mode 100644
index 0000000000..5ed8f4dd1d
--- /dev/null
+++ b/gr-digital/grc/digital_qam_demod.block.yml
@@ -0,0 +1,80 @@
+id: digital_qam_demod
+label: QAM Demod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: constellation_points
+ label: Number of Constellation Points
+ dtype: int
+ default: '16'
+- id: differential
+ label: Differential Encoding
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: freq_bw
+ label: Frequency BW
+ dtype: real
+ default: 6.28/100.0
+- id: timing_bw
+ label: Timing BW
+ dtype: real
+ default: 6.28/100.0
+- id: phase_bw
+ label: Phase BW
+ dtype: real
+ default: 6.28/100.0
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.qam.qam_demod(
+ constellation_points=${constellation_points},
+ differential=${differential},
+ samples_per_symbol=${samples_per_symbol},
+ excess_bw=${excess_bw},
+ freq_bw=${freq_bw},
+ timing_bw=${timing_bw},
+ phase_bw=${phase_bw},
+ mod_code=${mod_code},
+ verbose=${verbose},
+ log=${log},
+ )
+
+file_format: 1
diff --git a/gr-digital/grc/digital_qam_demod.xml b/gr-digital/grc/digital_qam_demod.xml
deleted file mode 100644
index c9a6c6aa4b..0000000000
--- a/gr-digital/grc/digital_qam_demod.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##QAM Demod
-###################################################
- -->
-<block>
- <name>QAM Demod</name>
- <key>digital_qam_demod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.qam.qam_demod(
- constellation_points=$constellation_points,
- differential=$differential,
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- freq_bw=$freq_bw,
- timing_bw=$timing_bw,
- phase_bw=$phase_bw,
- mod_code=$mod_code,
- verbose=$verbose,
- log=$log,
- )</make>
- <param>
- <name>Number of Constellation Points</name>
- <key>constellation_points</key>
- <value>16</value>
- <type>int</type>
- </param>
- <param>
- <name>Differential Encoding</name>
- <key>differential</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Frequency BW</name>
- <key>freq_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Timing BW</name>
- <key>timing_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Phase BW</name>
- <key>phase_bw</key>
- <value>6.28/100.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_qam_mod.block.yml b/gr-digital/grc/digital_qam_mod.block.yml
new file mode 100644
index 0000000000..6cfcc2966e
--- /dev/null
+++ b/gr-digital/grc/digital_qam_mod.block.yml
@@ -0,0 +1,65 @@
+id: digital_qam_mod
+label: QAM Mod
+category: '[Core]/Deprecated'
+
+parameters:
+- id: constellation_points
+ label: Number of Constellation Points
+ dtype: int
+ default: '16'
+- id: mod_code
+ label: Gray Code
+ dtype: enum
+ options: ['"gray"', '"none"']
+ option_labels: ['Yes', 'No']
+- id: differential
+ label: Differential Encoding
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+- id: samples_per_symbol
+ label: Samples/Symbol
+ dtype: int
+ default: '2'
+- id: excess_bw
+ label: Excess BW
+ dtype: real
+ default: '0.35'
+- id: verbose
+ label: Verbose
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(verbose) == 'False' else 'none') }
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
+ hide: ${ ('part' if str(log) == 'False' else 'none') }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import digital
+ make: |-
+ digital.qam.qam_mod(
+ constellation_points=${constellation_points},
+ mod_code=${mod_code},
+ differential=${differential},
+ samples_per_symbol=${samples_per_symbol},
+ excess_bw=${excess_bw},
+ verbose=${verbose},
+ log=${log},
+ )
+
+file_format: 1
diff --git a/gr-digital/grc/digital_qam_mod.xml b/gr-digital/grc/digital_qam_mod.xml
deleted file mode 100644
index 5c3d5139d2..0000000000
--- a/gr-digital/grc/digital_qam_mod.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2009,2010,2011 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##QAM Mod
-###################################################
- -->
-<block>
- <name>QAM Mod</name>
- <key>digital_qam_mod</key>
- <category>[Core]/Deprecated</category>
- <import>from gnuradio import digital</import>
- <make>digital.qam.qam_mod(
- constellation_points=$constellation_points,
- mod_code=$mod_code,
- differential=$differential,
- samples_per_symbol=$samples_per_symbol,
- excess_bw=$excess_bw,
- verbose=$verbose,
- log=$log,
- )</make>
- <param>
- <name>Number of Constellation Points</name>
- <key>constellation_points</key>
- <value>16</value>
- <type>int</type>
- </param>
- <param>
- <name>Gray Code</name>
- <key>mod_code</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>"gray"</key>
- </option>
- <option>
- <name>No</name>
- <key>"none"</key>
- </option>
- </param>
- <param>
- <name>Differential Encoding</name>
- <key>differential</key>
- <value>True</value>
- <type>bool</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Samples/Symbol</name>
- <key>samples_per_symbol</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Excess BW</name>
- <key>excess_bw</key>
- <value>0.35</value>
- <type>real</type>
- </param>
- <param>
- <name>Verbose</name>
- <key>verbose</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>Log</name>
- <key>log</key>
- <value>False</value>
- <type>bool</type>
- <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
- <option>
- <name>On</name>
- <key>True</key>
- </option>
- <option>
- <name>Off</name>
- <key>False</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_scrambler_bb.block.yml b/gr-digital/grc/digital_scrambler_bb.block.yml
new file mode 100644
index 0000000000..fb8b3cca1f
--- /dev/null
+++ b/gr-digital/grc/digital_scrambler_bb.block.yml
@@ -0,0 +1,30 @@
+id: digital_scrambler_bb
+label: Scrambler
+
+parameters:
+- id: mask
+ label: Mask
+ dtype: hex
+ default: '0x8A'
+- id: seed
+ label: Seed
+ dtype: hex
+ default: '0x7F'
+- id: len
+ label: Length
+ dtype: int
+ default: '7'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.scrambler_bb(${mask}, ${seed}, ${len})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_scrambler_bb.xml b/gr-digital/grc/digital_scrambler_bb.xml
deleted file mode 100644
index 9c40b49f64..0000000000
--- a/gr-digital/grc/digital_scrambler_bb.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Descrambler
-###################################################
- -->
-<block>
- <name>Scrambler</name>
- <key>digital_scrambler_bb</key>
- <import>from gnuradio import digital</import>
- <make>digital.scrambler_bb($mask, $seed, $len)</make>
- <param>
- <name>Mask</name>
- <key>mask</key>
- <value>0x8A</value>
- <type>hex</type>
- </param>
- <param>
- <name>Seed</name>
- <key>seed</key>
- <value>0x7F</value>
- <type>hex</type>
- </param>
- <param>
- <name>Length</name>
- <key>len</key>
- <value>7</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_simple_correlator.block.yml b/gr-digital/grc/digital_simple_correlator.block.yml
new file mode 100644
index 0000000000..aae6139525
--- /dev/null
+++ b/gr-digital/grc/digital_simple_correlator.block.yml
@@ -0,0 +1,21 @@
+id: digital_simple_correlator
+label: Simple Correlator
+
+parameters:
+- id: payload_bytesize
+ label: Payload Byte Size
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: float
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.simple_correlator(${payload_bytesize})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_simple_correlator.xml b/gr-digital/grc/digital_simple_correlator.xml
deleted file mode 100644
index 3b70e59b12..0000000000
--- a/gr-digital/grc/digital_simple_correlator.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Simple Correlator
-###################################################
- -->
-<block>
- <name>Simple Correlator</name>
- <key>digital_simple_correlator</key>
- <import>from gnuradio import digital</import>
- <make>digital.simple_correlator($payload_bytesize)</make>
- <param>
- <name>Payload Byte Size</name>
- <key>payload_bytesize</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_simple_framer.block.yml b/gr-digital/grc/digital_simple_framer.block.yml
new file mode 100644
index 0000000000..f711948981
--- /dev/null
+++ b/gr-digital/grc/digital_simple_framer.block.yml
@@ -0,0 +1,21 @@
+id: digital_simple_framer
+label: Simple Framer
+
+parameters:
+- id: payload_bytesize
+ label: Payload Byte Size
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import digital
+ make: digital.simple_framer(${payload_bytesize})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_simple_framer.xml b/gr-digital/grc/digital_simple_framer.xml
deleted file mode 100644
index 2d57222f3b..0000000000
--- a/gr-digital/grc/digital_simple_framer.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Simple Framer
-###################################################
- -->
-<block>
- <name>Simple Framer</name>
- <key>digital_simple_framer</key>
- <import>from gnuradio import digital</import>
- <make>digital.simple_framer($payload_bytesize)</make>
- <param>
- <name>Payload Byte Size</name>
- <key>payload_bytesize</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-digital/grc/digital_symbol_sync_xx.block.yml b/gr-digital/grc/digital_symbol_sync_xx.block.yml
new file mode 100644
index 0000000000..ec63825127
--- /dev/null
+++ b/gr-digital/grc/digital_symbol_sync_xx.block.yml
@@ -0,0 +1,108 @@
+id: digital_symbol_sync_xx
+label: Symbol Sync
+category: '[Core]/Synchronizers'
+
+parameters:
+- id: type
+ label: I/O Type
+ dtype: enum
+ options: [cc, ff]
+ option_labels: [Complex, Float]
+ option_attributes:
+ input: [complex, float]
+ output: [complex, float]
+ hide: part
+- id: ted_type
+ label: Timing Error Detector
+ dtype: enum
+ options: [digital.TED_MUELLER_AND_MULLER, digital.TED_MOD_MUELLER_AND_MULLER,
+ digital.TED_ZERO_CROSSING, digital.TED_GARDNER, digital.TED_EARLY_LATE, digital.TED_DANDREA_AND_MENGALI_GEN_MSK,
+ digital.TED_MENGALI_AND_DANDREA_GMSK, digital.TED_SIGNAL_TIMES_SLOPE_ML, digital.TED_SIGNUM_TIMES_SLOPE_ML]
+ option_labels: ["Mueller and M\xFCller", "Modified Mueller and M\xFCller", Zero
+ Crossing, Gardner, Early-Late, D'Andrea and Mengali Gen MSK, Mengali and
+ D'Andrea GMSK, 'y[n]y''[n] Maximum Likelyhood', 'sgn(y[n])y''[n] Maximum
+ Likelyhood']
+ option_attributes:
+ hide_constellation: [part, part, part, all, all, all, all, all, all]
+- id: constellation
+ label: TED Slicer Constellation
+ dtype: raw
+ default: digital.constellation_bpsk().base()
+ hide: ${ ted_type.hide_constellation }
+- id: sps
+ label: Samples per Symbol
+ dtype: real
+ default: sps
+- id: ted_gain
+ label: Expected TED Gain
+ dtype: real
+ default: '1.0'
+- id: loop_bw
+ label: Loop Bandwidth
+ dtype: real
+ default: '0.045'
+- id: damping
+ label: Damping Factor
+ dtype: real
+ default: '1.0'
+- id: max_dev
+ label: Maximum Deviation
+ dtype: real
+ default: '1.5'
+- id: osps
+ label: Output Samples/Symbol
+ dtype: int
+ default: '1'
+- id: resamp_type
+ label: Interpolating Resampler
+ dtype: enum
+ options: [digital.IR_MMSE_8TAP, digital.IR_PFB_NO_MF, digital.IR_PFB_MF]
+ option_labels: ['MMSE, 8 tap FIR', 'Polyphase Filterbank, MMSE', 'Polyphase Filterbank,
+ MF']
+ option_attributes:
+ hide_nfilters: [all, '', '']
+ hide_pfb_mf_taps: [all, all, '']
+- id: nfilters
+ label: Filterbank Arms
+ dtype: int
+ default: '128'
+ hide: ${ resamp_type.hide_nfilters }
+- id: pfb_mf_taps
+ label: PFB MF Taps
+ dtype: real_vector
+ default: '[]'
+ hide: ${ resamp_type.hide_pfb_mf_taps }
+
+inputs:
+- domain: stream
+ dtype: ${ type.input }
+
+outputs:
+- domain: stream
+ dtype: ${ type.output }
+- label: error
+ domain: stream
+ dtype: float
+ optional: true
+- label: T_inst
+ domain: stream
+ dtype: float
+ optional: true
+- label: T_avg
+ domain: stream
+ dtype: float
+ optional: true
+
+templates:
+ imports: |-
+ from gnuradio import digital
+ from gnuradio import filter
+ make: digital.symbol_sync_${type}(${ted_type}, ${sps}, ${loop_bw}, ${damping},
+ ${ted_gain}, ${max_dev}, ${osps}, ${constellation}, ${resamp_type}, ${nfilters},
+ ${pfb_mf_taps})
+ callbacks:
+ - set_loop_bandwidth(${loop_bw})
+ - set_damping_factor(${damping})
+ - set_ted_gain(${ted_gain})
+
+file_format: 1
diff --git a/gr-digital/grc/digital_symbol_sync_xx.xml b/gr-digital/grc/digital_symbol_sync_xx.xml
deleted file mode 100644
index ffd2f5daff..0000000000
--- a/gr-digital/grc/digital_symbol_sync_xx.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright (C) 2016-2017 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.
- -->
-
-<block>
- <name>Symbol Sync</name>
- <key>digital_symbol_sync_xx</key>
- <category>[Core]/Synchronizers</category>
- <import>from gnuradio import digital</import>
- <import>from gnuradio import filter</import>
- <make>digital.symbol_sync_$(type)($ted_type, $sps, $loop_bw, $damping, $ted_gain, $max_dev, $osps, $constellation, $resamp_type, $nfilters, $pfb_mf_taps)</make>
-
- <callback>set_loop_bandwidth($loop_bw)</callback>
- <callback>set_damping_factor($damping)</callback>
- <callback>set_ted_gain($ted_gain)</callback>
-
- <param>
- <name>I/O Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>cc</key>
- <opt>input:complex</opt>
- <opt>output:complex</opt>
- </option>
- <option>
- <name>Float</name>
- <key>ff</key>
- <opt>input:float</opt>
- <opt>output:float</opt>
- </option>
- </param>
- <param>
- <name>Timing Error Detector</name>
- <key>ted_type</key>
- <type>enum</type>
- <option>
- <name>Mueller and Müller</name>
- <key>digital.TED_MUELLER_AND_MULLER</key>
- <opt>hide_constellation:part</opt>
- </option>
- <option>
- <name>Modified Mueller and Müller</name>
- <key>digital.TED_MOD_MUELLER_AND_MULLER</key>
- <opt>hide_constellation:part</opt>
- </option>
- <option>
- <name>Zero Crossing</name>
- <key>digital.TED_ZERO_CROSSING</key>
- <opt>hide_constellation:part</opt>
- </option>
- <option>
- <name>Gardner</name>
- <key>digital.TED_GARDNER</key>
- <opt>hide_constellation:all</opt>
- </option>
- <option>
- <name>Early-Late</name>
- <key>digital.TED_EARLY_LATE</key>
- <opt>hide_constellation:all</opt>
- </option>
- <option>
- <name>D'Andrea and Mengali Gen MSK</name>
- <key>digital.TED_DANDREA_AND_MENGALI_GEN_MSK</key>
- <opt>hide_constellation:all</opt>
- </option>
- <option>
- <name>Mengali and D'Andrea GMSK</name>
- <key>digital.TED_MENGALI_AND_DANDREA_GMSK</key>
- <opt>hide_constellation:all</opt>
- </option>
- <option>
- <name>y[n]y'[n] Maximum Likelyhood</name>
- <key>digital.TED_SIGNAL_TIMES_SLOPE_ML</key>
- <opt>hide_constellation:all</opt>
- </option>
- <option>
- <name>sgn(y[n])y'[n] Maximum Likelyhood</name>
- <key>digital.TED_SIGNUM_TIMES_SLOPE_ML</key>
- <opt>hide_constellation:all</opt>
- </option>
- </param>
- <param>
- <name>TED Slicer Constellation</name>
- <key>constellation</key>
- <value>digital.constellation_bpsk().base()</value>
- <type>raw</type>
- <hide>$ted_type.hide_constellation</hide>
- </param>
- <param>
- <name>Samples per Symbol</name>
- <key>sps</key>
- <value>sps</value>
- <type>real</type>
- </param>
- <param>
- <name>Expected TED Gain</name>
- <key>ted_gain</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Loop Bandwidth</name>
- <key>loop_bw</key>
- <value>0.045</value>
- <type>real</type>
- </param>
- <param>
- <name>Damping Factor</name>
- <key>damping</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Maximum Deviation</name>
- <key>max_dev</key>
- <value>1.5</value>
- <type>real</type>
- </param>
- <param>
- <name>Output Samples/Symbol</name>
- <key>osps</key>
- <value>1</value>
- <type>int</type>
- </param>
- <param>
- <name>Interpolating Resampler</name>
- <key>resamp_type</key>
- <type>enum</type>
- <option>
- <name>MMSE, 8 tap FIR</name>
- <key>digital.IR_MMSE_8TAP</key>
- <opt>hide_nfilters:all</opt>
- <opt>hide_pfb_mf_taps:all</opt>
- </option>
- <option>
- <name>Polyphase Filterbank, MMSE</name>
- <key>digital.IR_PFB_NO_MF</key>
- <opt>hide_nfilters:</opt>
- <opt>hide_pfb_mf_taps:all</opt>
- </option>
- <option>
- <name>Polyphase Filterbank, MF</name>
- <key>digital.IR_PFB_MF</key>
- <opt>hide_nfilters:</opt>
- <opt>hide_pfb_mf_taps:</opt>
- </option>
- </param>
- <param>
- <name>Filterbank Arms</name>
- <key>nfilters</key>
- <value>128</value>
- <type>int</type>
- <hide>$resamp_type.hide_nfilters</hide>
- </param>
- <param>
- <name>PFB MF Taps</name>
- <key>pfb_mf_taps</key>
- <value>[]</value>
- <type>real_vector</type>
- <hide>$resamp_type.hide_pfb_mf_taps</hide>
- </param>
-
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <source>
- <name>error</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>T_inst</name>
- <type>float</type>
- <optional>1</optional>
- </source>
- <source>
- <name>T_avg</name>
- <type>float</type>
- <optional>1</optional>
- </source>
-</block>
diff --git a/gr-digital/grc/variable_header_format_default.block.yml b/gr-digital/grc/variable_header_format_default.block.yml
new file mode 100644
index 0000000000..d326eb2e86
--- /dev/null
+++ b/gr-digital/grc/variable_header_format_default.block.yml
@@ -0,0 +1,25 @@
+id: variable_header_format_default
+label: Default Header Format Obj.
+
+parameters:
+- id: access_code
+ label: Access Code
+ dtype: string
+ default: '0'
+- id: threshold
+ label: Threshold
+ dtype: int
+ default: '0'
+- id: bps
+ label: Payload Bits per Symbol
+ dtype: int
+ default: '1'
+value: ${ digital.header_format_default(access_code, threshold, bps) }
+
+templates:
+ imports: from gnuradio import digital
+ var_make: "\n% if int(access_code)==0 #:\nself.${id} = ${id} = digital.header_format_default(digital.packet_utils.default_access_code,\
+ \ ${threshold}, ${bps})\n% else:\nself.${id} = ${id} = digital.header_format_default(${access_code},\
+ \ ${threshold}, ${bps})\n% endif\n "
+
+file_format: 1
diff --git a/gr-digital/grc/variable_header_format_default.xml b/gr-digital/grc/variable_header_format_default.xml
deleted file mode 100644
index 88727600ed..0000000000
--- a/gr-digital/grc/variable_header_format_default.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-# header_format_default object
-###################################################
- -->
-<block>
- <name>Default Header Format Obj.</name>
- <key>variable_header_format_default</key>
- <import>from gnuradio import digital</import>
- <var_make>
-#if int($access_code())==0 #
-self.$(id) = $(id) = digital.header_format_default(digital.packet_utils.default_access_code, $threshold, $bps)
-#else
-self.$(id) = $(id) = digital.header_format_default($access_code, $threshold, $bps)
-#end if
- </var_make>
- <var_value>digital.header_format_default($access_code, $threshold, $bps)</var_value>
- <make></make>
-
- <param>
- <name>Access Code</name>
- <key>access_code</key>
- <value>0</value>
- <type>string</type>
- </param>
-
- <param>
- <name>Threshold</name>
- <key>threshold</key>
- <value>0</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Payload Bits per Symbol</name>
- <key>bps</key>
- <value>1</value>
- <type>int</type>
- </param>
-
-</block>