diff options
Diffstat (limited to 'grc/data/platforms/python')
186 files changed, 11533 insertions, 0 deletions
diff --git a/grc/data/platforms/python/Makefile.am b/grc/data/platforms/python/Makefile.am new file mode 100644 index 000000000..a23e04018 --- /dev/null +++ b/grc/data/platforms/python/Makefile.am @@ -0,0 +1,37 @@ +# +# Copyright 2008 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. +# + +include $(top_srcdir)/grc/Makefile.inc + +SUBDIRS = blocks + +ourdatadir = $(grc_python_data_dir) + +DATA_FILES = \ + block.dtd \ + block_tree.xml \ + default_flow_graph.grc.xml \ + flow_graph.tmpl + +ourdata_DATA = $(DATA_FILES) + +EXTRA_DIST = $(DATA_FILES) + diff --git a/grc/data/platforms/python/block.dtd b/grc/data/platforms/python/block.dtd new file mode 100644 index 000000000..d892b1287 --- /dev/null +++ b/grc/data/platforms/python/block.dtd @@ -0,0 +1,54 @@ +<!-- +Copyright 2008 Free Software Foundation, Inc. +This file is part of GNU Radio + +GNU Radio Companion 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 2 +of the License, or (at your option) any later version. + +GNU Radio Companion 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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +--> +<!-- + gnuradio_python.blocks.dtd + Josh Blum + The document type definition for blocks. + --> +<!-- + Top level element. + A block contains a name, ...parameters list, and list of IO ports. + --> +<!ELEMENT block (name, key, category?, import*, make, callback*, param*, check*, sink*, source*, doc?)> +<!-- + Sub level elements. + --> +<!ELEMENT param (name, key, value?, type, hide?, option*)> +<!ELEMENT option (name, key, opt*)> +<!ELEMENT sink (name, type, vlen?, nports?, optional?)> +<!ELEMENT source (name, type, vlen?, nports?, optional?)> +<!-- + Bottom level elements. + Character data only. + --> +<!ELEMENT category (#PCDATA)> +<!ELEMENT import (#PCDATA)> +<!ELEMENT doc (#PCDATA)> +<!ELEMENT name (#PCDATA)> +<!ELEMENT key (#PCDATA)> +<!ELEMENT check (#PCDATA)> +<!ELEMENT opt (#PCDATA)> +<!ELEMENT type (#PCDATA)> +<!ELEMENT hide (#PCDATA)> +<!ELEMENT vlen (#PCDATA)> +<!ELEMENT nports (#PCDATA)> +<!ELEMENT make (#PCDATA)> +<!ELEMENT value (#PCDATA)> +<!ELEMENT callback (#PCDATA)> +<!ELEMENT optional (#PCDATA)> diff --git a/grc/data/platforms/python/block_tree.xml b/grc/data/platforms/python/block_tree.xml new file mode 100644 index 000000000..7ac9e5199 --- /dev/null +++ b/grc/data/platforms/python/block_tree.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Block Tree for platform gnuradio python. +################################################### + --> +<cat> + <name></name> <!-- Blank for Root Name --> + <cat> + <name>Sources</name> + <block>gr_sig_source_x</block> + <block>gr_noise_source_x</block> + <block>gr_vector_source_x</block> + <block>random_source_x</block> + <block>gr_glfsr_source_x</block> + <block>gr_null_source</block> + <block>gr_file_source</block> + <block>gr_udp_source</block> + <block>audio_source</block> + <block>gr_wavfile_source</block> + <block>pad_source</block> + </cat> + <cat> + <name>Sinks</name> + <block>gr_vector_sink_x</block> + <block>gr_null_sink</block> + <block>gr_file_sink</block> + <block>gr_udp_sink</block> + <block>audio_sink</block> + <block>gr_wavfile_sink</block> + <block>pad_sink</block> + </cat> + <cat> + <name>Graphical Sinks</name> + <block>wxgui_numbersink2</block> + <block>wxgui_scopesink2</block> + <block>wxgui_fftsink2</block> + <block>wxgui_constellationsink2</block> + <block>wxgui_waterfallsink2</block> + </cat> + <cat> + <name>Operators</name> + <block>gr_add_vxx</block> + <block>gr_sub_xx</block> + <block>gr_multiply_vxx</block> + <block>gr_divide_xx</block> + <block>gr_nlog10_ff</block> + + <block>gr_add_const_vxx</block> + <block>gr_multiply_const_vxx</block> + + <block>gr_not_xx</block> + <block>gr_and_xx</block> + <block>gr_or_xx</block> + <block>gr_xor_xx</block> + + <block>gr_max_xx</block> + <block>gr_argmax_xx</block> + <block>gr_rms_xx</block> + <block>gr_integrate_xx</block> + + <block>gr_conjugate_cc</block> + + <block>gr_fft_vxx</block> + <block>blks2_logpwrfft_x</block> + </cat> + <cat> + <name>Type Conversions</name> + <block>gr_complex_to_arg</block> + <block>gr_complex_to_mag</block> + <block>gr_complex_to_mag_squared</block> + <block>gr_complex_to_real</block> + <block>gr_complex_to_imag</block> + + <block>gr_complex_to_float</block> + <block>gr_float_to_complex</block> + + <block>gr_float_to_short</block> + <block>gr_short_to_float</block> + + <block>gr_float_to_char</block> + <block>gr_char_to_float</block> + + <block>gr_float_to_uchar</block> + <block>gr_uchar_to_float</block> + + <block>gr_complex_to_interleaved_short</block> + <block>gr_interleaved_short_to_complex</block> + </cat> + <cat> + <name>Stream Conversions</name> + <block>gr_interleave</block> + <block>gr_deinterleave</block> + + <block>gr_streams_to_stream</block> + <block>gr_stream_to_streams</block> + + <block>gr_streams_to_vector</block> + <block>gr_vector_to_streams</block> + + <block>gr_stream_to_vector</block> + <block>gr_vector_to_stream</block> + + <block>blks2_stream_to_vector_decimator</block> + </cat> + <cat> + <name>Misc Conversions</name> + <block>gr_unpacked_to_packed_xx</block> + <block>gr_packed_to_unpacked_xx</block> + <block>gr_unpack_k_bits_bb</block> + <block>gr_binary_slicer_fb</block> + <block>gr_chunks_to_symbols_xx</block> + <block>gr_map_bb</block> + </cat> + <cat> + <name>Synchronizers</name> + <block>gr_clock_recovery_mm_xx</block> + + <block>gr_costas_loop_cc</block> + <block>gr_dd_mpsk_sync_cc</block> + <block>gr_mpsk_sync_cc</block> + <block>gr_mpsk_receiver_cc</block> + + <block>gr_pll_carriertracking_cc</block> + <block>gr_pll_freqdet_cf</block> + <block>gr_pll_refout_cc</block> + + <block>gr_correlate_access_code_bb</block> + <block>gr_pn_correlator_cc</block> + <block>gr_simple_correlator</block> + <block>gr_simple_framer</block> + </cat> + <cat> + <name>Level Controls</name> + <block>gr_dpll_bb</block> + <block>gr_peak_detector_xb</block> + <block>gr_peak_detector2_fb</block> + <block>gr_sample_and_hold_xx</block> + + <block>gr_agc_xx</block> + <block>gr_agc2_xx</block> + <block>gr_feedforward_agc_cc</block> + + <block>gr_mute_xx</block> + <block>gr_simple_squelch_cc</block> + <block>blks2_standard_squelch</block> + <block>gr_pwr_squelch_xx</block> + <block>gr_threshold_ff</block> + </cat> + <cat> + <name>Filters</name> + <!-- FIR convenience filters --> + <block>low_pass_filter</block> + <block>high_pass_filter</block> + <block>band_pass_filter</block> + <block>band_reject_filter</block> + <!-- Filters that take taps as aruments --> + <block>gr_fir_filter_xxx</block> + <block>gr_interp_fir_filter_xxx</block> + <block>gr_fft_filter_xxx</block> + <block>gr_freq_xlating_fir_filter_xxx</block> + <block>gr_iir_filter_ffd</block> + <block>gr_filter_delay_fc</block> + <block>blks2_channel_model</block> + <!-- Other filters --> + <block>gr_single_pole_iir_filter_xx</block> + <block>gr_hilbert_fc</block> + <block>gr_goertzel_fc</block> + <block>gr_cma_equalizer_cc</block> + <block>gr_rational_resampler_base_xxx</block> + <block>blks2_rational_resampler_xxx</block> + <block>gr_fractional_interpolator_xx</block> + <block>gr_keep_one_in_n</block> + <block>gr_moving_average_xx</block> + <block>gr_iqcomp_cc</block> + </cat> + <cat> + <name>Modulators</name> + <block>gr_vco_f</block> + <block>gr_frequency_modulator_fc</block> + <block>gr_phase_modulator_fc</block> + <block>gr_quadrature_demod_cf</block> + <block>gr_cpfsk_bc</block> + + <block>gr_diff_phasor_cc</block> + <block>gr_constellation_decoder_cb</block> + + <block>gr_diff_encoder_bb</block> + <block>gr_diff_decoder_bb</block> + + <block>blks2_wfm_tx</block> + <block>blks2_wfm_rcv</block> + <block>blks2_wfm_rcv_pll</block> + + <block>blks2_nbfm_tx</block> + <block>blks2_nbfm_rx</block> + + <block>blks2_am_demod_cf</block> + <block>blks2_fm_demod_cf</block> + <block>blks2_fm_deemph</block> + <block>blks2_fm_preemph</block> + + <block>blks2_dxpsk_mod</block> + <block>blks2_dxpsk_demod</block> + + <block>blks2_gmsk_mod</block> + <block>blks2_gmsk_demod</block> + + <block>blks2_qamx_mod</block> + <block>blks2_qamx_demod</block> + + <block>blks2_synthesis_filterbank</block> + <block>blks2_analysis_filterbank</block> + </cat> + <cat> + <name>Error Correction</name> + + <block>blks2_packet_decoder</block> + <block>blks2_packet_encoder</block> + + <block>gr_encode_ccsds_27_bb</block> + <block>gr_decode_ccsds_27_fb</block> + </cat> + <cat> + <name>Trellis</name> + <block>trellis_encoder_xx</block> + <block>trellis_metrics_x</block> + <block>trellis_permutation</block> + <block>trellis_siso_combined_f</block> + <block>trellis_siso_f</block> + <block>trellis_viterbi_combined_xx</block> + <block>trellis_viterbi_x</block> + </cat> + <cat> + <name>USRP</name> + <block>usrp_simple_source_x</block> + <block>usrp_simple_sink_x</block> + <block>usrp_dual_source_x</block> + <block>usrp_dual_sink_x</block> + </cat> + <cat> + <name>Variables</name> + <block>variable</block> + <block>variable_slider</block> + <block>variable_chooser</block> + <block>variable_text_box</block> + <block>variable_sink</block> + <block>parameter</block> + </cat> + <cat> + <name>Misc</name> + <block>note</block> + <block>import</block> + + <block>gr_throttle</block> + <block>gr_delay</block> + <block>gr_repeat</block> + + <block>blks2_selector</block> + <block>blks2_valve</block> + <block>blks2_error_rate</block> + + <block>gr_head</block> + <block>gr_skiphead</block> + + <block>gr_kludge_copy</block> + <block>gr_nop</block> + + <block>xmlrpc_server</block> + <block>xmlrpc_client</block> + </cat> +</cat> diff --git a/grc/data/platforms/python/blocks/Makefile.am b/grc/data/platforms/python/blocks/Makefile.am new file mode 100644 index 000000000..766156477 --- /dev/null +++ b/grc/data/platforms/python/blocks/Makefile.am @@ -0,0 +1,210 @@ +# +# Copyright 2008 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. +# + +include $(top_srcdir)/grc/Makefile.inc + +ourdatadir = $(grc_python_blocks_dir) + +DATA_FILES = \ + audio_sink.xml \ + audio_source.xml \ + band_pass_filter.xml \ + band_reject_filter.xml \ + blks2_am_demod_cf.xml \ + blks2_analysis_filterbank.xml \ + blks2_channel_model.xml \ + blks2_dxpsk_demod.xml \ + blks2_dxpsk_mod.xml \ + blks2_error_rate.xml \ + blks2_fm_deemph.xml \ + blks2_fm_demod_cf.xml \ + blks2_fm_preemph.xml \ + blks2_gmsk_demod.xml \ + blks2_gmsk_mod.xml \ + blks2_logpwrfft_x.xml \ + blks2_nbfm_rx.xml \ + blks2_nbfm_tx.xml \ + blks2_packet_decoder.xml \ + blks2_packet_encoder.xml \ + blks2_qamx_demod.xml \ + blks2_qamx_mod.xml \ + blks2_rational_resampler_xxx.xml \ + blks2_selector.xml \ + blks2_standard_squelch.xml \ + blks2_stream_to_vector_decimator.xml \ + blks2_synthesis_filterbank.xml \ + blks2_valve.xml \ + blks2_wfm_rcv.xml \ + blks2_wfm_rcv_pll.xml \ + blks2_wfm_tx.xml \ + gr_add_const_vxx.xml \ + gr_add_vxx.xml \ + gr_agc2_xx.xml \ + gr_agc_xx.xml \ + gr_and_xx.xml \ + gr_argmax_xx.xml \ + gr_binary_slicer_fb.xml \ + gr_char_to_float.xml \ + gr_chunks_to_symbols.xml \ + gr_clock_recovery_mm_xx.xml \ + gr_cma_equalizer_cc.xml \ + gr_complex_to_arg.xml \ + gr_complex_to_float.xml \ + gr_complex_to_imag.xml \ + gr_complex_to_interleaved_short.xml \ + gr_complex_to_mag.xml \ + gr_complex_to_mag_squared.xml \ + gr_complex_to_real.xml \ + gr_conjugate_cc.xml \ + gr_constellation_decoder_cb.xml \ + gr_correlate_access_code_bb.xml \ + gr_costas_loop_cc.xml \ + gr_cpfsk_bc.xml \ + gr_dd_mpsk_sync_cc.xml \ + gr_decode_ccsds_27_fb.xml \ + gr_deinterleave.xml \ + gr_delay.xml \ + gr_diff_decoder_bb.xml \ + gr_diff_encoder_bb.xml \ + gr_diff_phasor_cc.xml \ + gr_divide_xx.xml \ + gr_dpll_bb.xml \ + gr_encode_ccsds_27_bb.xml \ + gr_feedforward_agc_cc.xml \ + gr_fft_filter_xxx.xml \ + gr_fft_vxx.xml \ + gr_file_sink.xml \ + gr_file_source.xml \ + gr_filter_delay_fc.xml \ + gr_fir_filter_xxx.xml \ + gr_float_to_char.xml \ + gr_float_to_complex.xml \ + gr_float_to_short.xml \ + gr_float_to_uchar.xml \ + gr_fractional_interpolator_xx.xml \ + gr_freq_xlating_fir_filter_xxx.xml \ + gr_frequency_modulator_fc.xml \ + gr_glfsr_source_x.xml \ + gr_goertzel_fc.xml \ + gr_head.xml \ + gr_hilbert_fc.xml \ + gr_iir_filter_ffd.xml \ + gr_integrate_xx.xml \ + gr_interleave.xml \ + gr_interleaved_short_to_complex.xml \ + gr_interp_fir_filter_xxx.xml \ + gr_iqcomp_cc.xml \ + gr_keep_one_in_n.xml \ + gr_kludge_copy.xml \ + gr_map_bb.xml \ + gr_max_xx.xml \ + gr_moving_average_xx.xml \ + gr_mpsk_receiver_cc.xml \ + gr_mpsk_sync_cc.xml \ + gr_multiply_const_vxx.xml \ + gr_multiply_vxx.xml \ + gr_mute_xx.xml \ + gr_nlog10_ff.xml \ + gr_noise_source_x.xml \ + gr_nop.xml \ + gr_not_xx.xml \ + gr_null_sink.xml \ + gr_null_source.xml \ + gr_or_xx.xml \ + gr_packed_to_unpacked_xx.xml \ + gr_peak_detector2_fb.xml \ + gr_peak_detector_xb.xml \ + gr_phase_modulator_fc.xml \ + gr_pll_carriertracking_cc.xml \ + gr_pll_freqdet_cf.xml \ + gr_pll_refout_cc.xml \ + gr_pn_correlator_cc.xml \ + gr_pwr_squelch_xx.xml \ + gr_quadrature_demod_cf.xml \ + gr_rational_resampler_base_xxx.xml \ + gr_repeat.xml \ + gr_rms_xx.xml \ + gr_sample_and_hold_xx.xml \ + gr_short_to_float.xml \ + gr_sig_source_x.xml \ + gr_simple_correlator.xml \ + gr_simple_framer.xml \ + gr_simple_squelch_cc.xml \ + gr_single_pole_iir_filter_xx.xml \ + gr_skiphead.xml \ + gr_stream_to_streams.xml \ + gr_stream_to_vector.xml \ + gr_streams_to_stream.xml \ + gr_streams_to_vector.xml \ + gr_sub_xx.xml \ + gr_threshold_ff.xml \ + gr_throttle.xml \ + gr_uchar_to_float.xml \ + gr_udp_sink.xml \ + gr_udp_source.xml \ + gr_unpack_k_bits_bb.xml \ + gr_unpacked_to_packed_xx.xml \ + gr_vco_f.xml \ + gr_vector_sink_x.xml \ + gr_vector_source_x.xml \ + gr_vector_to_stream.xml \ + gr_vector_to_streams.xml \ + gr_wavfile_sink.xml \ + gr_wavfile_source.xml \ + gr_xor_xx.xml \ + high_pass_filter.xml \ + import.xml \ + low_pass_filter.xml \ + note.xml \ + options.xml \ + pad_sink.xml \ + pad_source.xml \ + parameter.xml \ + preferences.xml \ + random_source_x.xml \ + trellis_encoder_xx.xml \ + trellis_metrics_x.xml \ + trellis_permutation.xml \ + trellis_siso_combined_f.xml \ + trellis_siso_f.xml \ + trellis_viterbi_combined_xx.xml \ + trellis_viterbi_x.xml \ + usrp_diagnostics.xml \ + usrp_dual_sink_x.xml \ + usrp_dual_source_x.xml \ + usrp_simple_sink_x.xml \ + usrp_simple_source_x.xml \ + variable.xml \ + variable_chooser.xml \ + variable_sink.xml \ + variable_slider.xml \ + variable_text_box.xml \ + wxgui_constellationsink2.xml \ + wxgui_fftsink2.xml \ + wxgui_numbersink2.xml \ + wxgui_scopesink2.xml \ + wxgui_waterfallsink2.xml \ + xmlrpc_client.xml \ + xmlrpc_server.xml + +ourdata_DATA = $(DATA_FILES) + +EXTRA_DIST = $(DATA_FILES) diff --git a/grc/data/platforms/python/blocks/audio_sink.xml b/grc/data/platforms/python/blocks/audio_sink.xml new file mode 100644 index 000000000..56c5980fc --- /dev/null +++ b/grc/data/platforms/python/blocks/audio_sink.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Audio Sink +################################################### + --> +<block> + <name>Audio Sink</name> + <key>audio_sink</key> + <import>from gnuradio import audio</import> + <make>audio.sink($samp_rate, $device_name, $ok_to_block)</make> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>32000</value> + <type>enum</type> + <option> + <name>16KHz</name> + <key>16000</key> + </option> + <option> + <name>22.05KHz</name> + <key>22050</key> + </option> + <option> + <name>24KHz</name> + <key>24000</key> + </option> + <option> + <name>32KHz</name> + <key>32000</key> + </option> + <option> + <name>44.1KHz</name> + <key>44100</key> + </option> + <option> + <name>48KHz</name> + <key>48000</key> + </option> + </param> + <param> + <name>Device Name</name> + <key>device_name</key> + <value></value> + <type>string</type> + </param> + <param> + <name>OK to Block</name> + <key>ok_to_block</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>1</value> + <type>int</type> + </param> + <check>0 < $num_inputs</check> + <sink> + <name>in</name> + <type>float</type> + <nports>$num_inputs</nports> + </sink> + <doc> +Not all sampling rates will be supported by your hardware. + +Leave the device name blank to choose deafult audio device. \ +Audio device names may look like hw:0,0 + +The audio sink can have multiple inputs depending upon your hardware. \ +For example, set the inputs to 2 for stereo audio. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/audio_source.xml b/grc/data/platforms/python/blocks/audio_source.xml new file mode 100644 index 000000000..2ae74e491 --- /dev/null +++ b/grc/data/platforms/python/blocks/audio_source.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Audio Source +################################################### + --> +<block> + <name>Audio Source</name> + <key>audio_source</key> + <import>from gnuradio import audio</import> + <make>audio.source($samp_rate, $device_name, $ok_to_block)</make> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>32000</value> + <type>enum</type> + <option> + <name>16KHz</name> + <key>16000</key> + </option> + <option> + <name>22.05KHz</name> + <key>22050</key> + </option> + <option> + <name>24KHz</name> + <key>24000</key> + </option> + <option> + <name>32KHz</name> + <key>32000</key> + </option> + <option> + <name>44.1KHz</name> + <key>44100</key> + </option> + <option> + <name>48KHz</name> + <key>48000</key> + </option> + </param> + <param> + <name>Device Name</name> + <key>device_name</key> + <value></value> + <type>string</type> + </param> + <param> + <name>OK to Block</name> + <key>ok_to_block</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Num Outputs</name> + <key>num_outputs</key> + <value>1</value> + <type>int</type> + </param> + <check>0 < $num_outputs</check> + <source> + <name>out</name> + <type>float</type> + <nports>$num_outputs</nports> + </source> + <doc> +Not all sampling rates will be supported by your hardware. + +Leave the device name blank to choose deafult audio device. \ +Audio device names may look like hw:0,0 + +The audio source can have multiple outputs depending upon your hardware. \ +For example, set the outputs to 2 for stereo audio. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/band_pass_filter.xml b/grc/data/platforms/python/blocks/band_pass_filter.xml new file mode 100644 index 000000000..2dac2960e --- /dev/null +++ b/grc/data/platforms/python/blocks/band_pass_filter.xml @@ -0,0 +1,125 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Band Pass Filter: Custom wrapper +################################################### + --> +<block> + <name>Band Pass Filter</name> + <key>band_pass_filter</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.$(type)($decim, firdes.band_pass( + $gain, $samp_rate, $low_cutoff_freq, $high_cutoff_freq, $width, firdes.$window, $beta))</make> + <callback>set_taps(firdes.band_pass($gain, $samp_rate, $low_cutoff_freq, $high_cutoff_freq, $width, firdes.$window, $beta))</callback> + <param> + <name>FIR Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Decimating)</name> + <key>fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Complex->Complex (Interpolating)</name> + <key>interp_fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Float->Float (Decimating)</name> + <key>fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + <option> + <name>Float->Float (Interpolating)</name> + <key>interp_fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Low Cutoff Freq</name> + <key>low_cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>High Cutoff Freq</name> + <key>high_cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>Transition Width</name> + <key>width</key> + <type>real</type> + </param> + <param> + <name>Window</name> + <key>window</key> + <type>enum</type> + <option> + <name>Hamming</name> + <key>WIN_HAMMING</key> + </option> + <option> + <name>Hann</name> + <key>WIN_HANN</key> + </option> + <option> + <name>Blackman</name> + <key>WIN_BLACKMAN</key> + </option> + <option> + <name>Rectangular</name> + <key>WIN_RECTANGULAR</key> + </option> + <option> + <name>Kaiser</name> + <key>WIN_KAISER</key> + </option> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <value>6.76</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +This filter is a convenience wrapper for an fir filter and a firdes taps generating function. + +The decimation paramater becomes interpolation when the filter type is set to interpolating. + +Sample rate, cutoff frequency, and transition width are in Hertz. + +The beta paramater only applies to the Kaiser window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/band_reject_filter.xml b/grc/data/platforms/python/blocks/band_reject_filter.xml new file mode 100644 index 000000000..ed6a5fa88 --- /dev/null +++ b/grc/data/platforms/python/blocks/band_reject_filter.xml @@ -0,0 +1,125 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Band Reject Filter: Custom wrapper +################################################### + --> +<block> + <name>Band Reject Filter</name> + <key>band_reject_filter</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.$(type)($decim, firdes.band_reject( + $gain, $samp_rate, $low_cutoff_freq, $high_cutoff_freq, $width, firdes.$window, $beta))</make> + <callback>set_taps(firdes.band_reject($gain, $samp_rate, $low_cutoff_freq, $high_cutoff_freq, $width, firdes.$window, $beta))</callback> + <param> + <name>FIR Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Decimating)</name> + <key>fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Complex->Complex (Interpolating)</name> + <key>interp_fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Float->Float (Decimating)</name> + <key>fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + <option> + <name>Float->Float (Interpolating)</name> + <key>interp_fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Low Cutoff Freq</name> + <key>low_cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>High Cutoff Freq</name> + <key>high_cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>Transition Width</name> + <key>width</key> + <type>real</type> + </param> + <param> + <name>Window</name> + <key>window</key> + <type>enum</type> + <option> + <name>Hamming</name> + <key>WIN_HAMMING</key> + </option> + <option> + <name>Hann</name> + <key>WIN_HANN</key> + </option> + <option> + <name>Blackman</name> + <key>WIN_BLACKMAN</key> + </option> + <option> + <name>Rectangular</name> + <key>WIN_RECTANGULAR</key> + </option> + <option> + <name>Kaiser</name> + <key>WIN_KAISER</key> + </option> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <value>6.76</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +This filter is a convenience wrapper for an fir filter and a firdes taps generating function. + +The decimation paramater becomes interpolation when the filter type is set to interpolating. + +Sample rate, cutoff frequency, and transition width are in Hertz. + +The beta paramater only applies to the Kaiser window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_am_demod_cf.xml b/grc/data/platforms/python/blocks/blks2_am_demod_cf.xml new file mode 100644 index 000000000..898c613be --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_am_demod_cf.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<!-- +################################################### +##AM Demod +################################################### + --> +<block> + <name>AM Demod</name> + <key>blks2_am_demod_cf</key> + <import>from gnuradio import blks2</import> + <make>blks2.am_demod_cf( + channel_rate=$chan_rate, + audio_decim=$audio_decim, + audio_pass=$audio_pass, + audio_stop=$audio_stop, +)</make> + <param> + <name>Channel Rate</name> + <key>chan_rate</key> + <type>real</type> + </param> + <param> + <name>Audio Decimation</name> + <key>audio_decim</key> + <type>int</type> + </param> + <param> + <name>Audio Pass</name> + <key>audio_pass</key> + <value>5000</value> + <type>real</type> + </param> + <param> + <name>Audio Stop</name> + <key>audio_stop</key> + <value>5500</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_analysis_filterbank.xml b/grc/data/platforms/python/blocks/blks2_analysis_filterbank.xml new file mode 100644 index 000000000..93cfa30af --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_analysis_filterbank.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Analysis Filterbank +################################################### + --> +<block> + <name>Analysis Filterbank</name> + <key>blks2_analysis_filterbank</key> + <import>from gnuradio import blks2</import> + <make>blks2.analysis_filterbank(mpoints=$mpoints, taps=$taps)</make> + <param> + <name>MPoints</name> + <key>mpoints</key> + <value>3</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>complex_vector</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + <nports>$mpoints</nports> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_channel_model.xml b/grc/data/platforms/python/blocks/blks2_channel_model.xml new file mode 100644 index 000000000..88805636c --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_channel_model.xml @@ -0,0 +1,60 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Channel Model +################################################### + --> +<block> + <name>Channel Model</name> + <key>blks2_channel_model</key> + <import>from gnuradio import blks2</import> + <import>from gnuradio.gr import firdes</import> + <make>blks2.channel_model( + noise_voltage=$noise_voltage, + frequency_offset=$freq_offset, + epsilon=$epsilon, + taps=$taps, + noise_seed=$seed, +)</make> + <callback>set_noise_voltage($noise_voltage)</callback> + <callback>set_frequency_offset($freq_offset)</callback> + <callback>set_taps($taps)</callback> + <param> + <name>Noise Voltage</name> + <key>noise_voltage</key> + <value>0.0</value> + <type>real</type> + </param> + <param> + <name>Frequency Offset</name> + <key>freq_offset</key> + <value>0.0</value> + <type>real</type> + </param> + <param> + <name>Epsilon</name> + <key>epsilon</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <value>1.0, 0.0</value> + <type>complex_vector</type> + </param> + <param> + <name>Seed</name> + <key>seed</key> + <value>42</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/grc/data/platforms/python/blocks/blks2_dxpsk_demod.xml b/grc/data/platforms/python/blocks/blks2_dxpsk_demod.xml new file mode 100644 index 000000000..20c7bd7f7 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_dxpsk_demod.xml @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<!-- +################################################### +##DPSK Demod - 2, 4, 8 +################################################### + --> +<block> + <name>DPSK Demod</name> + <key>blks2_dxpsk_demod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)_demod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + costas_alpha=$costas_alpha, + gain_mu=$gain_mu, + mu=$mu, + omega_relative_limit=$omega_relative_limit, + gray_code=$gray_code, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>DBPSK</name> + <key>dbpsk</key> + </option> + <option> + <name>DQPSK</name> + <key>dqpsk</key> + </option> + <option> + <name>D8PSK</name> + <key>d8psk</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Costas Alpha</name> + <key>costas_alpha</key> + <value>0.175</value> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <value>0.175</value> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <value>0.5</value> + <type>real</type> + </param> + <param> + <name>Omega Relative Limit</name> + <key>omega_relative_limit</key> + <value>0.005</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>enum</type> + <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> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_dxpsk_mod.xml b/grc/data/platforms/python/blocks/blks2_dxpsk_mod.xml new file mode 100644 index 000000000..e165fe9b7 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_dxpsk_mod.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##DPSK Mod - 2, 4, 8 +################################################### + --> +<block> + <name>DPSK Mod</name> + <key>blks2_dxpsk_mod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)_mod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + gray_code=$gray_code, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>DBPSK</name> + <key>dbpsk</key> + </option> + <option> + <name>DQPSK</name> + <key>dqpsk</key> + </option> + <option> + <name>D8PSK</name> + <key>d8psk</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>enum</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>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_error_rate.xml b/grc/data/platforms/python/blocks/blks2_error_rate.xml new file mode 100644 index 000000000..79703f6e9 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_error_rate.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Error Rate: +## Custom blks2 block +################################################### + --> +<block> + <name>Error Rate</name> + <key>blks2_error_rate</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <make>grc_blks2.error_rate( + type=$type, + win_size=$win_size, + bits_per_symbol=$bits_per_symbol, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Bit Error Rate</name> + <key>"BER"</key> + </option> + <option> + <name>Symbol Error Rate</name> + <key>"SER"</key> + </option> + </param> + <param> + <name>Window Size</name> + <key>win_size</key> + <value>1000</value> + <type>int</type> + </param> + <param> + <name>Bits per Symbol</name> + <key>bits_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <sink> + <name>ref</name> + <type>byte</type> + </sink> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> + <doc> +Calculate the bit error rate (BER) or the symbol error rate (SER) over a number of samples given by the window size. \ +The actual window size will start at size one and grow to the full window size as new samples arrive. \ +Once the window has reached full size, old samples are shifted out of the window and new samples shfited in. + +The error block compares the input byte stream to the reference byte stream. \ +For example, the reference byte stream could be the input to a modulator, \ +and the input byte stream could be the output of a modulator. + +Each byte in the incoming stream represents one symbol. \ +The bits per symbol parameter is only useful for calculating the BER. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_fm_deemph.xml b/grc/data/platforms/python/blocks/blks2_fm_deemph.xml new file mode 100644 index 000000000..6f38dab6d --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_fm_deemph.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FM Deemphasis +################################################### + --> +<block> + <name>FM Deemphasis</name> + <key>blks2_fm_deemph</key> + <import>from gnuradio import blks2</import> + <make>blks2.fm_deemph(fs=$samp_rate, tau=$tau)</make> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <type>real</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_fm_demod_cf.xml b/grc/data/platforms/python/blocks/blks2_fm_demod_cf.xml new file mode 100644 index 000000000..2ce1fb973 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_fm_demod_cf.xml @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FM Demod +################################################### + --> +<block> + <name>FM Demod</name> + <key>blks2_fm_demod_cf</key> + <import>from gnuradio import blks2</import> + <make>blks2.fm_demod_cf( + channel_rate=$chan_rate, + audio_decim=$audio_decim, + deviation=$deviation, + audio_pass=$audio_pass, + audio_stop=$audio_stop, + gain=$gain, + tau=$tau, +)</make> + <param> + <name>Channel Rate</name> + <key>chan_rate</key> + <type>real</type> + </param> + <param> + <name>Audio Decimation</name> + <key>audio_decim</key> + <type>int</type> + </param> + <param> + <name>Deviation</name> + <key>deviation</key> + <value>75000</value> + <type>real</type> + </param> + <param> + <name>Audio Pass</name> + <key>audio_pass</key> + <value>15000</value> + <type>real</type> + </param> + <param> + <name>Audio Stop</name> + <key>audio_stop</key> + <value>16000</value> + <type>real</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_fm_preemph.xml b/grc/data/platforms/python/blocks/blks2_fm_preemph.xml new file mode 100644 index 000000000..672a7a7b2 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_fm_preemph.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FM Preemphasis +################################################### + --> +<block> + <name>FM Preemphasis</name> + <key>blks2_fm_preemph</key> + <import>from gnuradio import blks2</import> + <make>blks2.fm_preemph(fs=$samp_rate, tau=$tau)</make> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <type>real</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_gmsk_demod.xml b/grc/data/platforms/python/blocks/blks2_gmsk_demod.xml new file mode 100644 index 000000000..c81039815 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_gmsk_demod.xml @@ -0,0 +1,56 @@ +<?xml version="1.0"?> +<!-- +################################################### +##GMSK Demod +################################################### + --> +<block> + <name>GMSK Demod</name> + <key>blks2_gmsk_demod</key> + <import>from gnuradio import blks2</import> + <make>blks2.gmsk_demod( + samples_per_symbol=$samples_per_symbol, + gain_mu=$gain_mu, + mu=$mu, + omega_relative_limit=$omega_relative_limit, + freq_error=$freq_error, +)</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> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_gmsk_mod.xml b/grc/data/platforms/python/blocks/blks2_gmsk_mod.xml new file mode 100644 index 000000000..ab57357eb --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_gmsk_mod.xml @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- +################################################### +##GMSK Mod +################################################### + --> +<block> + <name>GMSK Mod</name> + <key>blks2_gmsk_mod</key> + <import>from gnuradio import blks2</import> + <make>blks2.gmsk_mod( + samples_per_symbol=$samples_per_symbol, + bt=$bt, +)</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> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_logpwrfft_x.xml b/grc/data/platforms/python/blocks/blks2_logpwrfft_x.xml new file mode 100644 index 000000000..ef49c443e --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_logpwrfft_x.xml @@ -0,0 +1,89 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Log Power FFT +################################################### + --> +<block> + <name>Log Power FFT</name> + <key>blks2_logpwrfft_x</key> + <import>from gnuradio import blks2</import> + <make>blks2.logpwrfft_$(type.fcn)( + sample_rate=$sample_rate, + fft_size=$fft_size, + ref_scale=$ref_scale, + frame_rate=$frame_rate, + avg_alpha=$avg_alpha, + average=$average, +)</make> + <callback>set_sample_rate($sample_rate)</callback> + <callback>set_avg_alpha($avg_alpha)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + </param> + <param> + <name>Sample Rate</name> + <key>sample_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>FFT Size</name> + <key>fft_size</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Reference Scale</name> + <key>ref_scale</key> + <value>2</value> + <type>real</type> + </param> + <param> + <name>Frame Rate</name> + <key>frame_rate</key> + <value>30</value> + <type>real</type> + </param> + <param> + <name>Average Alpha</name> + <key>avg_alpha</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Average</name> + <key>average</key> + <value>False</value> + <type>enum</type> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$fft_size</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_nbfm_rx.xml b/grc/data/platforms/python/blocks/blks2_nbfm_rx.xml new file mode 100644 index 000000000..d332b9a6b --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_nbfm_rx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##NBFM Receive +################################################### + --> +<block> + <name>NBFM Receive</name> + <key>blks2_nbfm_rx</key> + <import>from gnuradio import blks2</import> + <make>blks2.nbfm_rx( + audio_rate=$audio_rate, + quad_rate=$quad_rate, + tau=$tau, + max_dev=$max_dev, +)</make> + <param> + <name>Audio Rate</name> + <key>audio_rate</key> + <type>int</type> + </param> + <param> + <name>Quadrature Rate</name> + <key>quad_rate</key> + <type>int</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <param> + <name>Max Deviation</name> + <key>max_dev</key> + <value>5e3</value> + <type>real</type> + </param> + <check>$quad_rate%$audio_rate == 0</check> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_nbfm_tx.xml b/grc/data/platforms/python/blocks/blks2_nbfm_tx.xml new file mode 100644 index 000000000..3aa7ede0e --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_nbfm_tx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##NBFM Transmit +################################################### + --> +<block> + <name>NBFM Transmit</name> + <key>blks2_nbfm_tx</key> + <import>from gnuradio import blks2</import> + <make>blks2.nbfm_tx( + audio_rate=$audio_rate, + quad_rate=$quad_rate, + tau=$tau, + max_dev=$max_dev, +)</make> + <param> + <name>Audio Rate</name> + <key>audio_rate</key> + <type>int</type> + </param> + <param> + <name>Quadrature Rate</name> + <key>quad_rate</key> + <type>int</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <param> + <name>Max Deviation</name> + <key>max_dev</key> + <value>5e3</value> + <type>real</type> + </param> + <check>$quad_rate%$audio_rate == 0</check> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_packet_decoder.xml b/grc/data/platforms/python/blocks/blks2_packet_decoder.xml new file mode 100644 index 000000000..d360bc177 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_packet_decoder.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Packet Decoder +################################################### + --> +<block> + <name>Packet Decoder</name> + <key>blks2_packet_decoder</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <import>from gnuradio import gr</import> + <make>grc_blks2.packet_decoder( + item_size_out=$type.size*$vlen, + access_code=$access_code, + threshold=$threshold, +)</make> + <param> + <name>Output Type</name> + <key>type</key> + <value>float</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Access Code</name> + <key>access_code</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Threshold</name> + <key>threshold</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> + <doc> +Packet decoder block, for use with the gnuradio demodulator blocks: gmsk, psk, qam. + +Access Code: string of 1's and 0's, leave blank for default. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_packet_encoder.xml b/grc/data/platforms/python/blocks/blks2_packet_encoder.xml new file mode 100644 index 000000000..ea9927225 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_packet_encoder.xml @@ -0,0 +1,117 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Packet Encoder +################################################### + --> +<block> + <name>Packet Encoder</name> + <key>blks2_packet_encoder</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <import>from gnuradio import gr</import> + <make>grc_blks2.packet_encoder( + item_size_in=$type.size*$vlen, + samples_per_symbol=$samples_per_symbol, + bits_per_symbol=$bits_per_symbol, + access_code=$access_code, + pad_for_usrp=$pad_for_usrp, + payload_length=$payload_length, +)</make> + <param> + <name>Input Type</name> + <key>type</key> + <value>float</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <type>int</type> + </param> + <param> + <name>Bits/Symbol</name> + <key>bits_per_symbol</key> + <type>int</type> + </param> + <param> + <name>Access Code</name> + <key>access_code</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Pad for USRP</name> + <key>pad_for_usrp</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Payload Length</name> + <key>payload_length</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> + <doc> +Packet encoder block, for use with the gnuradio modulator blocks: gmsk, psk, qam. + +Access Code: string of 1's and 0's, leave blank for default. + +Bits/Symbol should be set accordingly: + gmsk -> 1 + dbpsk -> 1 + dqpsk -> 2 + d8psk -> 3 + qam8 -> 3 + qam16 -> 4 + qam64 -> 6 + qam256 -> 8 + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_qamx_demod.xml b/grc/data/platforms/python/blocks/blks2_qamx_demod.xml new file mode 100644 index 000000000..93dbe4bb0 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_qamx_demod.xml @@ -0,0 +1,99 @@ +<?xml version="1.0"?> +<!-- +################################################### +##QAM Demod - 8, 16, 64, 256 +################################################### + --> +<block> + <name>QAM Demod</name> + <key>blks2_qamx_demod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)_demod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + costas_alpha=$costas_alpha, + gain_mu=$gain_mu, + mu=$mu, + omega_relative_limit=$omega_relative_limit, + gray_code=$gray_code, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>QAM8</name> + <key>qam8</key> + </option> + <option> + <name>QAM16</name> + <key>qam16</key> + </option> + <option> + <name>QAM64</name> + <key>qam64</key> + </option> + <option> + <name>QAM256</name> + <key>qam256</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Costas Alpha</name> + <key>costas_alpha</key> + <value>0.175</value> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <value>0.03</value> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <value>0.05</value> + <type>real</type> + </param> + <param> + <name>Omega Relative Limit</name> + <key>omega_relative_limit</key> + <value>0.005</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>enum</type> + <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> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_qamx_mod.xml b/grc/data/platforms/python/blocks/blks2_qamx_mod.xml new file mode 100644 index 000000000..25a9fb240 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_qamx_mod.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<!-- +################################################### +##QAM Mod - 8, 16, 64, 256 +################################################### + --> +<block> + <name>QAM Mod</name> + <key>blks2_qamx_mod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)_mod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + gray_code=$gray_code, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>QAM8</name> + <key>qam8</key> + </option> + <option> + <name>QAM16</name> + <key>qam16</key> + </option> + <option> + <name>QAM64</name> + <key>qam64</key> + </option> + <option> + <name>QAM256</name> + <key>qam256</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>enum</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>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_rational_resampler_xxx.xml b/grc/data/platforms/python/blocks/blks2_rational_resampler_xxx.xml new file mode 100644 index 000000000..2f81a50e5 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_rational_resampler_xxx.xml @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Rational Resampler +################################################### + --> +<block> + <name>Rational Resampler</name> + <key>blks2_rational_resampler_xxx</key> + <import>from gnuradio import blks2</import> + <import>from gnuradio.gr import firdes</import> + <make>blks2.rational_resampler_$(type)( + interpolation=$interp, + decimation=$decim, +#if $taps.eval + taps=$taps, +#else + taps=None, +#end if +#if $fractional_bw.eval != 0 + fractional_bw=$fractional_bw, +#else + fractional_bw=None, +#end if +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <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>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Interpolation</name> + <key>interp</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <value>[]</value> + <type>$type.taps</type> + </param> + <param> + <name>Fractional BW</name> + <key>fractional_bw</key> + <value>0</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +Leave taps empty for automatic value. +Leave fractional bandwidth 0 for automatic value. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_selector.xml b/grc/data/platforms/python/blocks/blks2_selector.xml new file mode 100644 index 000000000..457f8695e --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_selector.xml @@ -0,0 +1,97 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Selector: +## Custom blks2 block +################################################### + --> +<block> + <name>Selector</name> + <key>blks2_selector</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <make>grc_blks2.selector( + item_size=$type.size*$vlen, + num_inputs=$num_inputs, + num_outputs=$num_outputs, + input_index=$input_index, + output_index=$output_index, +)</make> + <callback>set_input_index($input_index)</callback> + <callback>set_output_index($output_index)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Num Outputs</name> + <key>num_outputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Input Index</name> + <key>input_index</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Output Index</name> + <key>output_index</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_outputs</nports> + </source> + <doc> +Connect the sink at input index to the source at output index. Leave all other ports disconnected. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_standard_squelch.xml b/grc/data/platforms/python/blocks/blks2_standard_squelch.xml new file mode 100644 index 000000000..fa32c6c31 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_standard_squelch.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Standard Squelch +################################################### + --> +<block> + <name>Standard Squelch</name> + <key>blks2_standard_squelch</key> + <import>from gnuradio import blks2</import> + <make>blks2.standard_squelch(audio_rate=$audio_rate) +$id.set_threshold($threshold)</make> + <callback>set_threshold($threshold)</callback> + <param> + <name>Audio Rate</name> + <key>audio_rate</key> + <type>real</type> + </param> + <param> + <name>Threshold</name> + <key>threshold</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_stream_to_vector_decimator.xml b/grc/data/platforms/python/blocks/blks2_stream_to_vector_decimator.xml new file mode 100644 index 000000000..25f8f7a62 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_stream_to_vector_decimator.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Stream to Vector Decimator +################################################### + --> +<block> + <name>Stream to Vec Decim</name> + <key>blks2_stream_to_vector_decimator</key> + <import>from gnuradio import blks2</import> + <make>blks2.stream_to_vector_decimator( + item_size=$type.size, + sample_rate=$sample_rate, + vec_rate=$vec_rate, + vec_len=$vlen, +)</make> + <callback>set_sample_rate($sample_rate)</callback> + <callback>set_vec_rate($vec_rate)</callback> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Sample Rate</name> + <key>sample_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Vec Rate</name> + <key>vec_rate</key> + <value>30</value> + <type>real</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1024</value> + <type>int</type> + </param> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_synthesis_filterbank.xml b/grc/data/platforms/python/blocks/blks2_synthesis_filterbank.xml new file mode 100644 index 000000000..5979ed3f7 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_synthesis_filterbank.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Synthesis Filterbank +################################################### + --> +<block> + <name>Synthesis Filterbank</name> + <key>blks2_synthesis_filterbank</key> + <import>from gnuradio import blks2</import> + <make>blks2.synthesis_filterbank(mpoints=$mpoints, taps=$taps)</make> + <param> + <name>MPoints</name> + <key>mpoints</key> + <value>3</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>complex_vector</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + <nports>$mpoints</nports> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_valve.xml b/grc/data/platforms/python/blocks/blks2_valve.xml new file mode 100644 index 000000000..47c553523 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_valve.xml @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Valve: +## Custom blks2 block +################################################### + --> +<block> + <name>Valve</name> + <key>blks2_valve</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <make>grc_blks2.valve(item_size=$type.size*$vlen, open=bool($open))</make> + <callback>set_open(bool($open))</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Open</name> + <key>open</key> + <value>0</value> + <type>raw</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_outputs</nports> + </source> + <doc> +Connect output to input when valve is closed (not open). + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_wfm_rcv.xml b/grc/data/platforms/python/blocks/blks2_wfm_rcv.xml new file mode 100644 index 000000000..37fb3ba8c --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_wfm_rcv.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<!-- +################################################### +##WBFM Receive +################################################### + --> +<block> + <name>WBFM Receive</name> + <key>blks2_wfm_rcv</key> + <import>from gnuradio import blks2</import> + <make>blks2.wfm_rcv( + quad_rate=$quad_rate, + audio_decimation=$audio_decimation, +)</make> + <param> + <name>Quadrature Rate</name> + <key>quad_rate</key> + <type>real</type> + </param> + <param> + <name>Audio Decimation</name> + <key>audio_decimation</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_wfm_rcv_pll.xml b/grc/data/platforms/python/blocks/blks2_wfm_rcv_pll.xml new file mode 100644 index 000000000..3563a1f2a --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_wfm_rcv_pll.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<!-- +################################################### +##WBFM Receive PLL +################################################### + --> +<block> + <name>WBFM Receive PLL</name> + <key>blks2_wfm_rcv_pll</key> + <import>from gnuradio import blks2</import> + <make>blks2.wfm_rcv_pll( + demod_rate=$quad_rate, + audio_decimation=$audio_decimation, +)</make> + <param> + <name>Quadrature Rate</name> + <key>quad_rate</key> + <type>real</type> + </param> + <param> + <name>Audio Decimation</name> + <key>audio_decimation</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/blks2_wfm_tx.xml b/grc/data/platforms/python/blocks/blks2_wfm_tx.xml new file mode 100644 index 000000000..cff92d819 --- /dev/null +++ b/grc/data/platforms/python/blocks/blks2_wfm_tx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##WBFM Transmit +################################################### + --> +<block> + <name>WBFM Transmit</name> + <key>blks2_wfm_tx</key> + <import>from gnuradio import blks2</import> + <make>blks2.wfm_tx( + audio_rate=$audio_rate, + quad_rate=$quad_rate, + tau=$tau, + max_dev=$max_dev, +)</make> + <param> + <name>Audio Rate</name> + <key>audio_rate</key> + <type>int</type> + </param> + <param> + <name>Quadrature Rate</name> + <key>quad_rate</key> + <type>int</type> + </param> + <param> + <name>Tau</name> + <key>tau</key> + <value>75e-6</value> + <type>real</type> + </param> + <param> + <name>Max Deviation</name> + <key>max_dev</key> + <value>75e3</value> + <type>real</type> + </param> + <check>$quad_rate%$audio_rate == 0</check> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_add_const_vxx.xml b/grc/data/platforms/python/blocks/gr_add_const_vxx.xml new file mode 100644 index 000000000..9f1c545ab --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_add_const_vxx.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Add Const Block: +## all types, 1 output, 1 input & const +################################################### + --> +<block> + <name>Add Const</name> + <key>gr_add_const_vxx</key> + <import>from gnuradio import gr</import> + <make>gr.add_const_v$(type.fcn)($const)</make> + <callback>set_k($const)</callback> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>const_type:complex_vector</opt> + <opt>fcn:cc</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>const_type:real_vector</opt> + <opt>fcn:ff</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>const_type:int_vector</opt> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>const_type:int_vector</opt> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Constant</name> + <key>const</key> + <value>0</value> + <type>$type.const_type</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>len($const) == $vlen</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_add_vxx.xml b/grc/data/platforms/python/blocks/gr_add_vxx.xml new file mode 100644 index 000000000..479cdaae4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_add_vxx.xml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Add Block: +## all types, 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Add</name> + <key>gr_add_vxx</key> + <import>from gnuradio import gr</import> + <make>gr.add_v$(type.fcn)($vlen)</make> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_inputs > 1</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_agc2_xx.xml b/grc/data/platforms/python/blocks/gr_agc2_xx.xml new file mode 100644 index 000000000..fb3ae5704 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_agc2_xx.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##AGC2 +################################################### + --> +<block> + <name>AGC2</name> + <key>gr_agc2_xx</key> + <import>from gnuradio import gr</import> + <make>gr.agc2_$(type.fcn)($attack_rate, $decay_rate, $reference, $gain, $max_gain)</make> + <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>Attack Rate</name> + <key>attack_rate</key> + <value>1e-1</value> + <type>real</type> + </param> + <param> + <name>Decay Rate</name> + <key>decay_rate</key> + <value>1e-2</value> + <type>real</type> + </param> + <param> + <name>Reference</name> + <key>reference</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Max Gain</name> + <key>max_gain</key> + <value>0.0</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/grc/data/platforms/python/blocks/gr_agc_xx.xml b/grc/data/platforms/python/blocks/gr_agc_xx.xml new file mode 100644 index 000000000..c87d239ed --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_agc_xx.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##AGC +################################################### + --> +<block> + <name>AGC</name> + <key>gr_agc_xx</key> + <import>from gnuradio import gr</import> + <make>gr.agc_$(type.fcn)($rate, $reference, $gain, $max_gain)</make> + <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>Rate</name> + <key>rate</key> + <value>1e-4</value> + <type>real</type> + </param> + <param> + <name>Reference</name> + <key>reference</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Max Gain</name> + <key>max_gain</key> + <value>0.0</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/grc/data/platforms/python/blocks/gr_and_xx.xml b/grc/data/platforms/python/blocks/gr_and_xx.xml new file mode 100644 index 000000000..9ed006090 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_and_xx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Logical And Block +################################################### + --> +<block> + <name>And</name> + <key>gr_and_xx</key> + <import>from gnuradio import gr</import> + <make>gr.and_$(type.fcn)()</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_argmax_xx.xml b/grc/data/platforms/python/blocks/gr_argmax_xx.xml new file mode 100644 index 000000000..e3e4e3ead --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_argmax_xx.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<!-- +################################################### +##ArgMax: +## 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Argmax</name> + <key>gr_argmax_xx</key> + <import>from gnuradio import gr</import> + <make>gr.argmax_$(type.fcn)($vlen)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:fs</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:is</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:dd</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>short</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_binary_slicer_fb.xml b/grc/data/platforms/python/blocks/gr_binary_slicer_fb.xml new file mode 100644 index 000000000..85d71e709 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_binary_slicer_fb.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Binary Slicer +################################################### + --> +<block> + <name>Binary Slicer</name> + <key>gr_binary_slicer_fb</key> + <import>from gnuradio import gr</import> + <make>gr.binary_slicer_fb()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_char_to_float.xml b/grc/data/platforms/python/blocks/gr_char_to_float.xml new file mode 100644 index 000000000..9ab778051 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_char_to_float.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Char to Float: +################################################### + --> +<block> + <name>Char To Float</name> + <key>gr_char_to_float</key> + <import>from gnuradio import gr</import> + <make>gr.char_to_float()</make> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_chunks_to_symbols.xml b/grc/data/platforms/python/blocks/gr_chunks_to_symbols.xml new file mode 100644 index 000000000..b54e710ef --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_chunks_to_symbols.xml @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Chunks to Symbols +################################################### + --> +<block> + <name>Chunks to Symbols</name> + <key>gr_chunks_to_symbols_xx</key> + <import>from gnuradio import gr</import> + <make>gr.chunks_to_symbols_$(in_type.fcn)$(out_type.fcn)($symbol_table, $dimension)</make> + <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> + <sink> + <name>in</name> + <type>$in_type</type> + </sink> + <source> + <name>out</name> + <type>$out_type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_clock_recovery_mm_xx.xml b/grc/data/platforms/python/blocks/gr_clock_recovery_mm_xx.xml new file mode 100644 index 000000000..613cc23bf --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_clock_recovery_mm_xx.xml @@ -0,0 +1,64 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Clock Recovery MM +################################################### + --> +<block> + <name>Clock Recovery MM</name> + <key>gr_clock_recovery_mm_xx</key> + <import>from gnuradio import gr</import> + <make>gr.clock_recovery_mm_$(type.fcn)($omega, $gain_omega, $mu, $gain_mu, $omega_relative_limit)</make> + <callback>set_omega($omega)</callback> + <callback>set_gain_omega($gain_omega)</callback> + <callback>set_mu($mu)</callback> + <callback>set_gain_mu($gain_mu)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:cc</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:ff</opt> + </option> + </param> + <param> + <name>Omega</name> + <key>omega</key> + <type>real</type> + </param> + <param> + <name>Gain Omega</name> + <key>gain_omega</key> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <type>real</type> + </param> + <param> + <name>Omega Relative Limit</name> + <key>omega_relative_limit</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_cma_equalizer_cc.xml b/grc/data/platforms/python/blocks/gr_cma_equalizer_cc.xml new file mode 100644 index 000000000..142fb6d81 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_cma_equalizer_cc.xml @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- +################################################### +##CMA Equalizer +################################################### + --> +<block> + <name>CMA Equalizer</name> + <key>gr_cma_equalizer_cc</key> + <import>from gnuradio import gr</import> + <make>gr.cma_equalizer_cc($num_taps, $modulus, $mu)</make> + <param> + <name>Num Taps</name> + <key>num_taps</key> + <value>64</value> + <type>int</type> + </param> + <param> + <name>Modulus</name> + <key>modulus</key> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_arg.xml b/grc/data/platforms/python/blocks/gr_complex_to_arg.xml new file mode 100644 index 000000000..a7bbacd74 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_arg.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Arg +################################################### + --> +<block> + <name>Complex to Arg</name> + <key>gr_complex_to_arg</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_arg($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_float.xml b/grc/data/platforms/python/blocks/gr_complex_to_float.xml new file mode 100644 index 000000000..5b02c3d34 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_float.xml @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Float: +## one or two output streams +################################################### + --> +<block> + <name>Complex To Float</name> + <key>gr_complex_to_float</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_float($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + <optional>1</optional> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_imag.xml b/grc/data/platforms/python/blocks/gr_complex_to_imag.xml new file mode 100644 index 000000000..7c120eedd --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_imag.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Imaginary +################################################### + --> +<block> + <name>Complex to Imag</name> + <key>gr_complex_to_imag</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_imag($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_interleaved_short.xml b/grc/data/platforms/python/blocks/gr_complex_to_interleaved_short.xml new file mode 100644 index 000000000..5e999599a --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_interleaved_short.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Interleaved Short: +################################################### + --> +<block> + <name>Complex To IShort</name> + <key>gr_complex_to_interleaved_short</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_interleaved_short()</make> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>short</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_mag.xml b/grc/data/platforms/python/blocks/gr_complex_to_mag.xml new file mode 100644 index 000000000..adc95f207 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_mag.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Magnitude +################################################### + --> +<block> + <name>Complex to Mag</name> + <key>gr_complex_to_mag</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_mag($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_mag_squared.xml b/grc/data/platforms/python/blocks/gr_complex_to_mag_squared.xml new file mode 100644 index 000000000..cd23bfb5c --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_mag_squared.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Magnitude Squared +################################################### + --> +<block> + <name>Complex to Mag^2</name> + <key>gr_complex_to_mag_squared</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_mag_squared($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_complex_to_real.xml b/grc/data/platforms/python/blocks/gr_complex_to_real.xml new file mode 100644 index 000000000..ae9ec7b14 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_complex_to_real.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex to Real +################################################### + --> +<block> + <name>Complex to Real</name> + <key>gr_complex_to_real</key> + <import>from gnuradio import gr</import> + <make>gr.complex_to_real($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_conjugate_cc.xml b/grc/data/platforms/python/blocks/gr_conjugate_cc.xml new file mode 100644 index 000000000..0b4deb347 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_conjugate_cc.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Complex Conjugate +################################################### + --> +<block> + <name>Complex Conjugate</name> + <key>gr_conjugate_cc</key> + <import>from gnuradio import gr</import> + <make>gr.conjugate_cc()</make> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_constellation_decoder_cb.xml b/grc/data/platforms/python/blocks/gr_constellation_decoder_cb.xml new file mode 100644 index 000000000..99d897a3a --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_constellation_decoder_cb.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Constellation Decoder +################################################### + --> +<block> + <name>Constellation Decoder</name> + <key>gr_constellation_decoder_cb</key> + <import>from gnuradio import gr</import> + <make>gr.constellation_decoder_cb($sym_position, $sym_value_out)</make> + <param> + <name>Symbol Position</name> + <key>sym_position</key> + <type>complex_vector</type> + </param> + <param> + <name>Symbol Value Out</name> + <key>sym_value_out</key> + <type>int_vector</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_correlate_access_code_bb.xml b/grc/data/platforms/python/blocks/gr_correlate_access_code_bb.xml new file mode 100644 index 000000000..e13d2d070 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_correlate_access_code_bb.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Correlate Access Code +################################################### + --> +<block> + <name>Correlate Access Code</name> + <key>gr_correlate_access_code_bb</key> + <import>from gnuradio import gr</import> + <make>gr.correlate_access_code_bb($access_code, $threshold)</make> + <param> + <name>Access Code</name> + <key>access_code</key> + <value>101010</value> + <type>string</type> + </param> + <param> + <name>Threshold</name> + <key>threshold</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_costas_loop_cc.xml b/grc/data/platforms/python/blocks/gr_costas_loop_cc.xml new file mode 100644 index 000000000..e0db8bc5d --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_costas_loop_cc.xml @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Costas Loop +################################################### + --> +<block> + <name>Costas Loop</name> + <key>gr_costas_loop_cc</key> + <import>from gnuradio import gr</import> + <make>gr.costas_loop_cc($alpha, $beta, $max_freq, $min_freq, $order)</make> + <callback>set_alpha($alpha)</callback> + <callback>set_beta($beta)</callback> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <param> + <name>Order</name> + <key>order</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> + <source> + <name>out</name> + <type>complex</type> + <optional>1</optional> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_cpfsk_bc.xml b/grc/data/platforms/python/blocks/gr_cpfsk_bc.xml new file mode 100644 index 000000000..12450b0c3 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_cpfsk_bc.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<!-- +################################################### +##CPFSK +################################################### + --> +<block> + <name>CPFSK</name> + <key>gr_cpfsk_bc</key> + <import>from gnuradio import gr</import> + <make>cpfsk_bc($k, $amplitude, $samples_per_symbol)</make> + <callback>set_amplitude($amplitude)</callback> + <param> + <name>K</name> + <key>k</key> + <type>real</type> + </param> + <param> + <name>Amplitude</name> + <key>amplitude</key> + <type>real</type> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_dd_mpsk_sync_cc.xml b/grc/data/platforms/python/blocks/gr_dd_mpsk_sync_cc.xml new file mode 100644 index 000000000..aed0e8d31 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_dd_mpsk_sync_cc.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##DD MPSK Sync +################################################### + --> +<block> + <name>DD MPSK Sync</name> + <key>gr_dd_mpsk_sync_cc</key> + <import>from gnuradio import gr</import> + <make>gr.dd_mpsk_sync_cc($alpha, $beta, $max_freq, $min_freq, $ref_phase, $omega, $gain_omega, $mu, $gain_mu)</make> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <param> + <name>Reference Phase</name> + <key>ref_phase</key> + <type>real</type> + </param> + <param> + <name>Omega</name> + <key>omega</key> + <type>real</type> + </param> + <param> + <name>Gain Omega</name> + <key>gain_omega</key> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_decode_ccsds_27_fb.xml b/grc/data/platforms/python/blocks/gr_decode_ccsds_27_fb.xml new file mode 100644 index 000000000..03b31db83 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_decode_ccsds_27_fb.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Decode CCSDS 27 +################################################### + --> +<block> + <name>Decode CCSDS 27</name> + <key>gr_decode_ccsds_27_fb</key> + <import>from gnuradio import gr</import> + <make>gr.decode_ccsds_27_fb()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_deinterleave.xml b/grc/data/platforms/python/blocks/gr_deinterleave.xml new file mode 100644 index 000000000..a7482978c --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_deinterleave.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Deinterleave +################################################### + --> +<block> + <name>Deinterleave</name> + <key>gr_deinterleave</key> + <import>from gnuradio import gr</import> + <make>gr.deinterleave($type.size*$vlen)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_delay.xml b/grc/data/platforms/python/blocks/gr_delay.xml new file mode 100644 index 000000000..b9d429798 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_delay.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Delay +################################################### + --> +<block> + <name>Delay</name> + <key>gr_delay</key> + <import>from gnuradio import gr</import> + <make>gr.head($type.size*$vlen, $delay)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Delay</name> + <key>delay</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_diff_decoder_bb.xml b/grc/data/platforms/python/blocks/gr_diff_decoder_bb.xml new file mode 100644 index 000000000..ea7cf1734 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_diff_decoder_bb.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Differential Decoder +################################################### + --> +<block> + <name>Differential Decoder</name> + <key>gr_diff_decoder_bb</key> + <import>from gnuradio import gr</import> + <make>gr.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/grc/data/platforms/python/blocks/gr_diff_encoder_bb.xml b/grc/data/platforms/python/blocks/gr_diff_encoder_bb.xml new file mode 100644 index 000000000..21241eac2 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_diff_encoder_bb.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Differential Encoder +################################################### + --> +<block> + <name>Differential Encoder</name> + <key>gr_diff_encoder_bb</key> + <import>from gnuradio import gr</import> + <make>gr.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/grc/data/platforms/python/blocks/gr_diff_phasor_cc.xml b/grc/data/platforms/python/blocks/gr_diff_phasor_cc.xml new file mode 100644 index 000000000..2b2d7e372 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_diff_phasor_cc.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Differential Phasor +################################################### + --> +<block> + <name>Differential Phasor</name> + <key>gr_diff_phasor_cc</key> + <import>from gnuradio import gr</import> + <make>gr.diff_phasor_cc()</make> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_divide_xx.xml b/grc/data/platforms/python/blocks/gr_divide_xx.xml new file mode 100644 index 000000000..7f8752919 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_divide_xx.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Divide Block: +## all types, 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Divide</name> + <key>gr_divide_xx</key> + <import>from gnuradio import gr</import> + <make>gr.divide_$(type.fcn)()</make> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_dpll_bb.xml b/grc/data/platforms/python/blocks/gr_dpll_bb.xml new file mode 100644 index 000000000..044d398ff --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_dpll_bb.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Detect Peak +################################################### + --> +<block> + <name>Detect Peak</name> + <key>gr_dpll_bb</key> + <import>from gnuradio import gr</import> + <make>gr.dpll_bb($period, $gain)</make> + <param> + <name>Period</name> + <key>period</key> + <type>real</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_encode_ccsds_27_bb.xml b/grc/data/platforms/python/blocks/gr_encode_ccsds_27_bb.xml new file mode 100644 index 000000000..f31e6b6c8 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_encode_ccsds_27_bb.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Encode CCSDS 27 +################################################### + --> +<block> + <name>Encode CCSDS 27</name> + <key>gr_encode_ccsds_27_bb</key> + <import>from gnuradio import gr</import> + <make>gr.encode_ccsds_27_bb()</make> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_feedforward_agc_cc.xml b/grc/data/platforms/python/blocks/gr_feedforward_agc_cc.xml new file mode 100644 index 000000000..24e80953f --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_feedforward_agc_cc.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Feed Forward AGC +################################################### + --> +<block> + <name>Feed Forward AGC</name> + <key>gr_feedforward_agc_cc</key> + <import>from gnuradio import gr</import> + <make>gr.feedforward_agc_cc($num_samples, $reference)</make> + <param> + <name>Num Samples</name> + <key>num_samples</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Reference</name> + <key>reference</key> + <value>1.0</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/grc/data/platforms/python/blocks/gr_fft_filter_xxx.xml b/grc/data/platforms/python/blocks/gr_fft_filter_xxx.xml new file mode 100644 index 000000000..c1633094b --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_fft_filter_xxx.xml @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FFT Filter +################################################### + --> +<block> + <name>FFT Filter</name> + <key>gr_fft_filter_xxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.fft_filter_$(type)($decim, $taps)</make> + <callback>set_taps($taps)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_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>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>$type.taps</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_fft_vxx.xml b/grc/data/platforms/python/blocks/gr_fft_vxx.xml new file mode 100644 index 000000000..c2c13d0ae --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_fft_vxx.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FFT +################################################### + --> +<block> + <name>FFT</name> + <key>gr_fft_vxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio import window</import> + <make>#if $type.eval == "complex" +gr.fft_vcc($fft_size, $forward, $window, $shift) +#else +gr.fft_vfc($fft_size, $forward, $window) +#end if</make> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>hide_shift:</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>hide_shift:all</opt> + </option> + </param> + <param> + <name>FFT Size</name> + <key>fft_size</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Forward/Reverse</name> + <key>forward</key> + <type>enum</type> + <option> + <name>Forward</name> + <key>True</key> + </option> + <option> + <name>Reverse</name> + <key>False</key> + </option> + </param> + <param> + <name>Window</name> + <key>window</key> + <value>window.blackmanharris(1024)</value> + <type>real_vector</type> + </param> + <param> + <name>Shift</name> + <key>shift</key> + <type>enum</type> + <hide>$type.hide_shift</hide> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$fft_size</vlen> + </sink> + <source> + <name>out</name> + <type>complex</type> + <vlen>$fft_size</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_file_sink.xml b/grc/data/platforms/python/blocks/gr_file_sink.xml new file mode 100644 index 000000000..880dc2759 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_file_sink.xml @@ -0,0 +1,60 @@ +<?xml version="1.0"?> +<!-- +################################################### +##File Sink +################################################### + --> +<block> + <name>File Sink</name> + <key>gr_file_sink</key> + <import>from gnuradio import gr</import> + <make>gr.file_sink($type.size*$vlen, $file)</make> + <param> + <name>File</name> + <key>file</key> + <value></value> + <type>file_save</type> + </param> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> +</block> diff --git a/grc/data/platforms/python/blocks/gr_file_source.xml b/grc/data/platforms/python/blocks/gr_file_source.xml new file mode 100644 index 000000000..fcc7a7040 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_file_source.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<!-- +################################################### +##File Source +################################################### + --> +<block> + <name>File Source</name> + <key>gr_file_source</key> + <import>from gnuradio import gr</import> + <make>gr.file_source($type.size*$vlen, $file, $repeat)</make> + <param> + <name>File</name> + <key>file</key> + <value></value> + <type>file_open</type> + </param> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Repeat</name> + <key>repeat</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_filter_delay_fc.xml b/grc/data/platforms/python/blocks/gr_filter_delay_fc.xml new file mode 100644 index 000000000..30d65bf82 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_filter_delay_fc.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Filter Delay +################################################### + --> +<block> + <name>Filter Delay</name> + <key>gr_filter_delay_fc</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.filter_delay_fc($taps)</make> + <param> + <name>Taps</name> + <key>taps</key> + <type>real_vector</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <sink> + <name>in</name> + <type>float</type> + <optional>1</optional> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_fir_filter_xxx.xml b/grc/data/platforms/python/blocks/gr_fir_filter_xxx.xml new file mode 100644 index 000000000..c4de8f539 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_fir_filter_xxx.xml @@ -0,0 +1,80 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Decimating FIR Filter +################################################### + --> +<block> + <name>Decimating FIR Filter</name> + <key>gr_fir_filter_xxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.fir_filter_$(type)($decim, $taps)</make> + <callback>set_taps($taps)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <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->Complex (Complex Taps)</name> + <key>fcc</key> + <opt>input:float</opt> + <opt>output:complex</opt> + <opt>taps:complex_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> + <option> + <name>Float->Short (Real Taps)</name> + <key>fsf</key> + <opt>input:float</opt> + <opt>output:short</opt> + <opt>taps:real_vector</opt> + </option> + <option> + <name>Short->Complex (Complex Taps)</name> + <key>scc</key> + <opt>input:short</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>$type.taps</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_float_to_char.xml b/grc/data/platforms/python/blocks/gr_float_to_char.xml new file mode 100644 index 000000000..5714130ac --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_float_to_char.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Float to Char: +################################################### + --> +<block> + <name>Float To Char</name> + <key>gr_float_to_char</key> + <import>from gnuradio import gr</import> + <make>gr.gr_float_to_char()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_float_to_complex.xml b/grc/data/platforms/python/blocks/gr_float_to_complex.xml new file mode 100644 index 000000000..e8734fc6a --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_float_to_complex.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Float to Complex: +## one or two input streams +################################################### + --> +<block> + <name>Float To Complex</name> + <key>gr_float_to_complex</key> + <import>from gnuradio import gr</import> + <make>gr.float_to_complex()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <sink> + <name>in</name> + <type>float</type> + <optional>1</optional> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_float_to_short.xml b/grc/data/platforms/python/blocks/gr_float_to_short.xml new file mode 100644 index 000000000..cb2bcd4be --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_float_to_short.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Float to Short: +################################################### + --> +<block> + <name>Float To Short</name> + <key>gr_float_to_short</key> + <import>from gnuradio import gr</import> + <make>gr.float_to_short()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>short</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_float_to_uchar.xml b/grc/data/platforms/python/blocks/gr_float_to_uchar.xml new file mode 100644 index 000000000..aa804d7d9 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_float_to_uchar.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Float to Unsigned Char: +################################################### + --> +<block> + <name>Float To UChar</name> + <key>gr_float_to_uchar</key> + <import>from gnuradio import gr</import> + <make>gr.float_to_uchar()</make> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_fractional_interpolator_xx.xml b/grc/data/platforms/python/blocks/gr_fractional_interpolator_xx.xml new file mode 100644 index 000000000..8d65ff8bf --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_fractional_interpolator_xx.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Fractional Interpolator +################################################### + --> +<block> + <name>Fractional Interpolator</name> + <key>gr_fractional_interpolator_xx</key> + <import>from gnuradio import gr</import> + <make>gr.fractional_interpolator_$(type.fcn)($phase_shift, $interp_ratio)</make> + <callback>set_interp_ratio($interp_ratio)</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>Phase Shift</name> + <key>phase_shift</key> + <type>real</type> + </param> + <param> + <name>Interpolation Ratio</name> + <key>interp_ratio</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_freq_xlating_fir_filter_xxx.xml b/grc/data/platforms/python/blocks/gr_freq_xlating_fir_filter_xxx.xml new file mode 100644 index 000000000..e3ee66977 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_freq_xlating_fir_filter_xxx.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Frequency Xlating Filter +################################################### + --> +<block> + <name>Frequency Xlating FIR Filter</name> + <key>gr_freq_xlating_fir_filter_xxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.freq_xlating_fir_filter_$(type)($decim, $taps, $center_freq, $samp_rate)</make> + <callback>set_taps($taps)</callback> + <callback>set_center_freq($center_freq)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <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->Complex (Complex Taps)</name> + <key>fcc</key> + <opt>input:float</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <option> + <name>Float->Complex (Real Taps)</name> + <key>fcf</key> + <opt>input:float</opt> + <opt>output:complex</opt> + <opt>taps:real_vector</opt> + </option> + <option> + <name>Short->Complex (Complex Taps)</name> + <key>scc</key> + <opt>input:short</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <option> + <name>Short->Complex (Real Taps)</name> + <key>scf</key> + <opt>input:short</opt> + <opt>output:complex</opt> + <opt>taps:real_vector</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>$type.taps</type> + </param> + <param> + <name>Center Frequency</name> + <key>center_freq</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_frequency_modulator_fc.xml b/grc/data/platforms/python/blocks/gr_frequency_modulator_fc.xml new file mode 100644 index 000000000..f18d9f1e1 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_frequency_modulator_fc.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Frequency Modulator +################################################### + --> +<block> + <name>Frequency Mod</name> + <key>gr_frequency_modulator_fc</key> + <import>from gnuradio import gr</import> + <make>gr.frequency_modulator_fc($sensitivity)</make> + <param> + <name>Sensitivity</name> + <key>sensitivity</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_glfsr_source_x.xml b/grc/data/platforms/python/blocks/gr_glfsr_source_x.xml new file mode 100644 index 000000000..88fb66797 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_glfsr_source_x.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##GLFSR Source +################################################### + --> +<block> + <name>GLFSR Source</name> + <key>gr_glfsr_source_x</key> + <import>from gnuradio import gr</import> + <make>gr.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> + <type>int</type> + </param> + <param> + <name>Seed</name> + <key>seed</key> + <type>int</type> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_goertzel_fc.xml b/grc/data/platforms/python/blocks/gr_goertzel_fc.xml new file mode 100644 index 000000000..2105445d1 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_goertzel_fc.xml @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Goertzel +################################################### + --> +<block> + <name>Goertzel</name> + <key>gr_goertzel_fc</key> + <import>from gnuradio import gr</import> + <make>gr.goertzel_fc($rate, $len, $freq)</make> + <param> + <name>Rate</name> + <key>rate</key> + <type>int</type> + </param> + <param> + <name>Length</name> + <key>len</key> + <type>int</type> + </param> + <param> + <name>Frequency</name> + <key>freq</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_head.xml b/grc/data/platforms/python/blocks/gr_head.xml new file mode 100644 index 000000000..e5ff7f6aa --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_head.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Head +################################################### + --> +<block> + <name>Head</name> + <key>gr_head</key> + <import>from gnuradio import gr</import> + <make>gr.head($type.size*$vlen, $num_items)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Items</name> + <key>num_items</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_hilbert_fc.xml b/grc/data/platforms/python/blocks/gr_hilbert_fc.xml new file mode 100644 index 000000000..165e8da23 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_hilbert_fc.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Hilbert +################################################### + --> +<block> + <name>Hilbert</name> + <key>gr_hilbert_fc</key> + <import>from gnuradio import gr</import> + <make>gr.hilbert_fc($num_taps)</make> + <param> + <name>Num Taps</name> + <key>num_taps</key> + <value>64</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_iir_filter_ffd.xml b/grc/data/platforms/python/blocks/gr_iir_filter_ffd.xml new file mode 100644 index 000000000..9799150e8 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_iir_filter_ffd.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##IIR Filter +################################################### + --> +<block> + <name>IIR Filter</name> + <key>gr_iir_filter_ffd</key> + <import>from gnuradio import gr</import> + <make>gr.iir_filter_ffd($fftaps, $fbtaps)</make> + <callback>set_taps($fftaps, $fbtaps)</callback> + <param> + <name>Feed-forward Taps</name> + <key>fftaps</key> + <type>real_vector</type> + </param> + <param> + <name>Feedback Taps</name> + <key>fbtaps</key> + <type>real_vector</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_integrate_xx.xml b/grc/data/platforms/python/blocks/gr_integrate_xx.xml new file mode 100644 index 000000000..d0ebd42e2 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_integrate_xx.xml @@ -0,0 +1,50 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Integrate +################################################### + --> +<block> + <name>Integrate</name> + <key>gr_integrate_xx</key> + <import>from gnuradio import gr</import> + <make>gr.integrate_$(type.fcn)($decim)</make> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_interleave.xml b/grc/data/platforms/python/blocks/gr_interleave.xml new file mode 100644 index 000000000..3db16ab55 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_interleave.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Interleave +################################################### + --> +<block> + <name>Interleave</name> + <key>gr_interleave</key> + <import>from gnuradio import gr</import> + <make>gr.interleave($type.size*$vlen)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_interleaved_short_to_complex.xml b/grc/data/platforms/python/blocks/gr_interleaved_short_to_complex.xml new file mode 100644 index 000000000..e3023e499 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_interleaved_short_to_complex.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Interleaved Short to Complex: +################################################### + --> +<block> + <name>IShort To Complex</name> + <key>gr_interleaved_short_to_complex</key> + <import>from gnuradio import gr</import> + <make>gr.interleaved_short_to_complex()</make> + <sink> + <name>in</name> + <type>short</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_interp_fir_filter_xxx.xml b/grc/data/platforms/python/blocks/gr_interp_fir_filter_xxx.xml new file mode 100644 index 000000000..55375ae02 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_interp_fir_filter_xxx.xml @@ -0,0 +1,80 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Interpolating FIR Filter +################################################### + --> +<block> + <name>Interpolating FIR Filter</name> + <key>gr_interp_fir_filter_xxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.interp_fir_filter_$(type)($interp, $taps)</make> + <callback>set_taps($taps)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <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->Complex (Complex Taps)</name> + <key>fcc</key> + <opt>input:float</opt> + <opt>output:complex</opt> + <opt>taps:complex_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> + <option> + <name>Float->Short (Real Taps)</name> + <key>fsf</key> + <opt>input:float</opt> + <opt>output:short</opt> + <opt>taps:real_vector</opt> + </option> + <option> + <name>Short->Complex (Complex Taps)</name> + <key>scc</key> + <opt>input:short</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + </param> + <param> + <name>Interpolation</name> + <key>interp</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>$type.taps</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_iqcomp_cc.xml b/grc/data/platforms/python/blocks/gr_iqcomp_cc.xml new file mode 100644 index 000000000..1603bdc42 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_iqcomp_cc.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##IQ Comp +################################################### + --> +<block> + <name>IQ Comp</name> + <key>gr_iqcomp_cc</key> + <import>from gnuradio import gr</import> + <make>gr.iqcomp_cc($mu)</make> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_keep_one_in_n.xml b/grc/data/platforms/python/blocks/gr_keep_one_in_n.xml new file mode 100644 index 000000000..21595b755 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_keep_one_in_n.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Keep 1 in N +################################################### + --> +<block> + <name>Keep 1 in N</name> + <key>gr_keep_one_in_n</key> + <import>from gnuradio import gr</import> + <make>gr.keep_one_in_n($type.size*$vlen, $n)</make> + <callback>set_n($n)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>N</name> + <key>n</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$n > 0</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_kludge_copy.xml b/grc/data/platforms/python/blocks/gr_kludge_copy.xml new file mode 100644 index 000000000..3c817c572 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_kludge_copy.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Kludge Copy +################################################### + --> +<block> + <name>Copy</name> + <key>gr_kludge_copy</key> + <import>from gnuradio import gr</import> + <make>gr.kludge_copy($type.size*$vlen)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_map_bb.xml b/grc/data/platforms/python/blocks/gr_map_bb.xml new file mode 100644 index 000000000..20d6bd2b4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_map_bb.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Map +################################################### + --> +<block> + <name>Map</name> + <key>gr_map_bb</key> + <import>from gnuradio import gr</import> + <make>gr.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/grc/data/platforms/python/blocks/gr_max_xx.xml b/grc/data/platforms/python/blocks/gr_max_xx.xml new file mode 100644 index 000000000..9dbbe60e5 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_max_xx.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Max: +## 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Max</name> + <key>gr_max_xx</key> + <import>from gnuradio import gr</import> + <make>gr.max_$(type.fcn)($vlen)</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>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:dd</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_moving_average_xx.xml b/grc/data/platforms/python/blocks/gr_moving_average_xx.xml new file mode 100644 index 000000000..2c3be4033 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_moving_average_xx.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Moving Average +################################################### + --> +<block> + <name>Moving Average</name> + <key>gr_moving_average_xx</key> + <import>from gnuradio import gr</import> + <make>gr.moving_average_$(type.fcn)($length, $scale, $max_iter)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:cc</opt> + <opt>scale:complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:ff</opt> + <opt>scale:real</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + <opt>scale:int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + <opt>scale:int</opt> + </option> + </param> + <param> + <name>Length</name> + <key>length</key> + <value>1000</value> + <type>int</type> + </param> + <param> + <name>Scale</name> + <key>scale</key> + <value>1</value> + <type>$type.scale</type> + </param> + <param> + <name>Max Iter</name> + <key>max_iter</key> + <value>4000</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_mpsk_receiver_cc.xml b/grc/data/platforms/python/blocks/gr_mpsk_receiver_cc.xml new file mode 100644 index 000000000..843c3a4c1 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_mpsk_receiver_cc.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<!-- +################################################### +##MPSK Receiver +################################################### + --> +<block> + <name>MPSK Receiver</name> + <key>gr_mpsk_receiver_cc</key> + <import>from gnuradio import gr</import> + <make>gr.mpsk_receiver_cc($M, $theta, $alpha, $beta, $fmin, $fmax, $mu, $gain_mu, $omega, $gain_omega, $omega_relative_limit)</make> + <callback>set_alpha($alpha)</callback> + <callback>set_beta($beta)</callback> + <callback>set_mu($mu)</callback> + <callback>set_gain_mu($gain_mu)</callback> + <callback>set_omega($omega)</callback> + <callback>set_gain_omega($gain_omega)</callback> + <param> + <name>M</name> + <key>M</key> + <type>int</type> + </param> + <param> + <name>Theta</name> + <key>theta</key> + <type>real</type> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>fmin</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>fmax</key> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <type>real</type> + </param> + <param> + <name>Omega</name> + <key>omega</key> + <type>real</type> + </param> + <param> + <name>Gain Omega</name> + <key>gain_omega</key> + <type>real</type> + </param> + <param> + <name>Omega Relative Limit</name> + <key>omega_relative_limit</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_mpsk_sync_cc.xml b/grc/data/platforms/python/blocks/gr_mpsk_sync_cc.xml new file mode 100644 index 000000000..fd08f8340 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_mpsk_sync_cc.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<!-- +################################################### +##MPSK Sync +################################################### + --> +<block> + <name>MPSK Sync</name> + <key>gr_mpsk_sync_cc</key> + <import>from gnuradio import gr</import> + <make>gr.mpsk_sync_cc($alpha, $beta, $max_freq, $min_freq, $ref_phase, $omega, $gain_omega, $mu, $gain_mu)</make> + <callback>set_mu($mu)</callback> + <callback>set_gain_mu($gain_mu)</callback> + <callback>set_omega($omega)</callback> + <callback>set_gain_omega($gain_omega)</callback> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <param> + <name>Reference Phase</name> + <key>ref_phase</key> + <type>real</type> + </param> + <param> + <name>Omega</name> + <key>omega</key> + <type>real</type> + </param> + <param> + <name>Gain Omega</name> + <key>gain_omega</key> + <type>real</type> + </param> + <param> + <name>Mu</name> + <key>mu</key> + <type>real</type> + </param> + <param> + <name>Gain Mu</name> + <key>gain_mu</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_multiply_const_vxx.xml b/grc/data/platforms/python/blocks/gr_multiply_const_vxx.xml new file mode 100644 index 000000000..1309d75cd --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_multiply_const_vxx.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Multiply Const Block: +## all types, 1 output, 1 input & const +################################################### + --> +<block> + <name>Multiply Const</name> + <key>gr_multiply_const_vxx</key> + <import>from gnuradio import gr</import> + <make>gr.multiply_const_v$(type.fcn)($const)</make> + <callback>set_k($const)</callback> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>const_type:complex_vector</opt> + <opt>fcn:cc</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>const_type:real_vector</opt> + <opt>fcn:ff</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>const_type:int_vector</opt> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>const_type:int_vector</opt> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Constant</name> + <key>const</key> + <value>0</value> + <type>$type.const_type</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>len($const) == $vlen</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_multiply_vxx.xml b/grc/data/platforms/python/blocks/gr_multiply_vxx.xml new file mode 100644 index 000000000..ea0d555b6 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_multiply_vxx.xml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Multiply Block: +## all types, 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Multiply</name> + <key>gr_multiply_vxx</key> + <import>from gnuradio import gr</import> + <make>gr.multiply_v$(type.fcn)($vlen)</make> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_inputs > 1</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_mute_xx.xml b/grc/data/platforms/python/blocks/gr_mute_xx.xml new file mode 100644 index 000000000..668d7c599 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_mute_xx.xml @@ -0,0 +1,53 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Mute Block: +## Cast input to bool. +################################################### + --> +<block> + <name>Mute</name> + <key>gr_mute_xx</key> + <import>from gnuradio import gr</import> + <make>gr.mute_$(type.fcn)(bool($mute))</make> + <callback>set_mute(bool($mute))</callback> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Mute</name> + <key>mute</key> + <value>False</value> + <type>raw</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_nlog10_ff.xml b/grc/data/platforms/python/blocks/gr_nlog10_ff.xml new file mode 100644 index 000000000..935078236 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_nlog10_ff.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Log10 Block: +## float in/ float out +################################################### + --> +<block> + <name>Log10</name> + <key>gr_nlog10_ff</key> + <import>from gnuradio import gr</import> + <make>gr.nlog10_ff($n, $vlen, $k)</make> + <param> + <name>n</name> + <key>n</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>k</name> + <key>k</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>float</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>float</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_noise_source_x.xml b/grc/data/platforms/python/blocks/gr_noise_source_x.xml new file mode 100644 index 000000000..664a108d3 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_noise_source_x.xml @@ -0,0 +1,76 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Noise Source +################################################### + --> +<block> + <name>Noise Source</name> + <key>gr_noise_source_x</key> + <import>from gnuradio import gr</import> + <make>gr.noise_source_$(type.fcn)($noise_type, $amp, $seed)</make> + <callback>set_amplitude($amp)</callback> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Noise Type</name> + <key>noise_type</key> + <value>gr.GR_GAUSSIAN</value> + <type>enum</type> + <option> + <name>Uniform</name> + <key>gr.GR_UNIFORM</key> + </option> + <option> + <name>Gaussian</name> + <key>gr.GR_GAUSSIAN</key> + </option> + <option> + <name>Laplacian</name> + <key>gr.GR_LAPLACIAN</key> + </option> + <option> + <name>Impulse</name> + <key>gr.GR_IMPULSE</key> + </option> + </param> + <param> + <name>Amplitude</name> + <key>amp</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Seed</name> + <key>seed</key> + <value>42</value> + <type>int</type> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_nop.xml b/grc/data/platforms/python/blocks/gr_nop.xml new file mode 100644 index 000000000..127a78a55 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_nop.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Nop +################################################### + --> +<block> + <name>Nop</name> + <key>gr_nop</key> + <import>from gnuradio import gr</import> + <make>gr.nop($type.size*$vlen)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_not_xx.xml b/grc/data/platforms/python/blocks/gr_not_xx.xml new file mode 100644 index 000000000..7af7e4b6b --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_not_xx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Logical Not Block +################################################### + --> +<block> + <name>Not</name> + <key>gr_not_xx</key> + <import>from gnuradio import gr</import> + <make>gr.not_$(type.fcn)()</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_null_sink.xml b/grc/data/platforms/python/blocks/gr_null_sink.xml new file mode 100644 index 000000000..ed106b495 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_null_sink.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Null Sink +################################################### + --> +<block> + <name>Null Sink</name> + <key>gr_null_sink</key> + <import>from gnuradio import gr</import> + <make>gr.null_sink($type.size*$vlen)</make> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> +</block> diff --git a/grc/data/platforms/python/blocks/gr_null_source.xml b/grc/data/platforms/python/blocks/gr_null_source.xml new file mode 100644 index 000000000..6132eae3c --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_null_source.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Null Source +################################################### + --> +<block> + <name>Null Source</name> + <key>gr_null_source</key> + <import>from gnuradio import gr</import> + <make>gr.null_source($type.size*$vlen)</make> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_or_xx.xml b/grc/data/platforms/python/blocks/gr_or_xx.xml new file mode 100644 index 000000000..b374aa22a --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_or_xx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Logical Or Block +################################################### + --> +<block> + <name>Or</name> + <key>gr_or_xx</key> + <import>from gnuradio import gr</import> + <make>gr.or_$(type.fcn)()</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_packed_to_unpacked_xx.xml b/grc/data/platforms/python/blocks/gr_packed_to_unpacked_xx.xml new file mode 100644 index 000000000..5fd9729a4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_packed_to_unpacked_xx.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Packed to Unpacked +################################################### + --> +<block> + <name>Packed to Unpacked</name> + <key>gr_packed_to_unpacked_xx</key> + <import>from gnuradio import gr</import> + <make>gr.packed_to_unpacked_$(type.fcn)($bits_per_chunk, $endianness)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Bits per Chunk</name> + <key>bits_per_chunk</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Endianness</name> + <key>endianness</key> + <type>enum</type> + <option> + <name>MSB</name> + <key>gr.GR_MSB_FIRST</key> + </option> + <option> + <name>LSB</name> + <key>gr.GR_LSB_FIRST</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_peak_detector2_fb.xml b/grc/data/platforms/python/blocks/gr_peak_detector2_fb.xml new file mode 100644 index 000000000..6c496da77 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_peak_detector2_fb.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Peak Detector2 +################################################### + --> +<block> + <name>Peak Detector2</name> + <key>gr_peak_detector2_fb</key> + <import>from gnuradio import gr</import> + <make>gr.peak_detector2_fb($threshold_factor_rise, $look_ahead, $alpha)</make> + <callback>set_threshold_factor_rise($threshold_factor_rise)</callback> + <callback>set_look_ahead($look_ahead)</callback> + <callback>set_alpha($alpha)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>TH Factor Rise</name> + <key>threshold_factor_rise</key> + <type>real</type> + </param> + <param> + <name>Look Ahead</name> + <key>look_ahead</key> + <type>int</type> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_peak_detector_xb.xml b/grc/data/platforms/python/blocks/gr_peak_detector_xb.xml new file mode 100644 index 000000000..394b0697f --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_peak_detector_xb.xml @@ -0,0 +1,64 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Peak Detector +################################################### + --> +<block> + <name>Peak Detector</name> + <key>gr_peak_detector_xb</key> + <import>from gnuradio import gr</import> + <make>gr.peak_detector_$(type.fcn)b($threshold_factor_rise, $threshold_factor_fall, $look_ahead, $alpha)</make> + <callback>set_threshold_factor_rise($threshold_factor_rise)</callback> + <callback>set_threshold_factor_fall($threshold_factor_fall)</callback> + <callback>set_look_ahead($look_ahead)</callback> + <callback>set_alpha($alpha)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>TH Factor Rise</name> + <key>threshold_factor_rise</key> + <type>real</type> + </param> + <param> + <name>TH Factor Fall</name> + <key>threshold_factor_fall</key> + <type>real</type> + </param> + <param> + <name>Look Ahead</name> + <key>look_ahead</key> + <type>int</type> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_phase_modulator_fc.xml b/grc/data/platforms/python/blocks/gr_phase_modulator_fc.xml new file mode 100644 index 000000000..758c50863 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_phase_modulator_fc.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Phase Modulator +################################################### + --> +<block> + <name>Phase Mod</name> + <key>gr_phase_modulator_fc</key> + <import>from gnuradio import gr</import> + <make>gr.phase_modulator_fc($sensitivity)</make> + <param> + <name>Sensitivity</name> + <key>sensitivity</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_pll_carriertracking_cc.xml b/grc/data/platforms/python/blocks/gr_pll_carriertracking_cc.xml new file mode 100644 index 000000000..5b876b259 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_pll_carriertracking_cc.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<!-- +################################################### +##PLL Carrier Tracking +################################################### + --> +<block> + <name>PLL Carrier Tracking</name> + <key>gr_pll_carriertracking_cc</key> + <import>from gnuradio import gr</import> + <make>gr.pll_carriertracking_cc($alpha, $beta, $max_freq, $min_freq)</make> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_pll_freqdet_cf.xml b/grc/data/platforms/python/blocks/gr_pll_freqdet_cf.xml new file mode 100644 index 000000000..8ec1fb3bb --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_pll_freqdet_cf.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<!-- +################################################### +##PLL Frequency Det +################################################### + --> +<block> + <name>PLL Freq Det</name> + <key>gr_pll_freqdet_cf</key> + <import>from gnuradio import gr</import> + <make>gr.pll_freqdet_cf($alpha, $beta, $max_freq, $min_freq)</make> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_pll_refout_cc.xml b/grc/data/platforms/python/blocks/gr_pll_refout_cc.xml new file mode 100644 index 000000000..64cf2bfb6 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_pll_refout_cc.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<!-- +################################################### +##PLL Reference Out +################################################### + --> +<block> + <name>PLL Ref Out</name> + <key>gr_pll_refout_cc</key> + <import>from gnuradio import gr</import> + <make>gr.pll_refout_cc($alpha, $beta, $max_freq, $min_freq)</make> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <param> + <name>Max Freq</name> + <key>max_freq</key> + <type>real</type> + </param> + <param> + <name>Min Freq</name> + <key>min_freq</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_pn_correlator_cc.xml b/grc/data/platforms/python/blocks/gr_pn_correlator_cc.xml new file mode 100644 index 000000000..094f46cdf --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_pn_correlator_cc.xml @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- +################################################### +##PN Correlator +################################################### + --> +<block> + <name>PN Correlator</name> + <key>gr_pn_correlator_cc</key> + <import>from gnuradio import gr</import> + <make>gr.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> + <type>int</type> + </param> + <param> + <name>Seed</name> + <key>seed</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/grc/data/platforms/python/blocks/gr_pwr_squelch_xx.xml b/grc/data/platforms/python/blocks/gr_pwr_squelch_xx.xml new file mode 100644 index 000000000..08d621177 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_pwr_squelch_xx.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Power Squelch +################################################### + --> +<block> + <name>Power Squelch</name> + <key>gr_pwr_squelch_xx</key> + <import>from gnuradio import gr</import> + <make>gr.pwr_squelch_$(type.fcn)($threshold, $alpha, $ramp, $gate)</make> + <callback>set_threshold($threshold)</callback> + <callback>set_alpha($alpha)</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>Threshold (dB)</name> + <key>threshold</key> + <type>real</type> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Ramp</name> + <key>ramp</key> + <type>int</type> + </param> + <param> + <name>Gate</name> + <key>gate</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_quadrature_demod_cf.xml b/grc/data/platforms/python/blocks/gr_quadrature_demod_cf.xml new file mode 100644 index 000000000..a0e630c7e --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_quadrature_demod_cf.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Quadrature Demodulator +################################################### + --> +<block> + <name>Quadrature Demod</name> + <key>gr_quadrature_demod_cf</key> + <import>from gnuradio import gr</import> + <make>gr.quadrature_demod_cf($gain)</make> + <param> + <name>Gain</name> + <key>gain</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_rational_resampler_base_xxx.xml b/grc/data/platforms/python/blocks/gr_rational_resampler_base_xxx.xml new file mode 100644 index 000000000..4b7720173 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_rational_resampler_base_xxx.xml @@ -0,0 +1,86 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Rational Resampler Base +################################################### + --> +<block> + <name>Rational Resampler Base</name> + <key>gr_rational_resampler_base_xxx</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.rational_resampler_base_$(type)($interp, $decim, $taps)</make> + <callback>set_taps($taps)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Complex Taps)</name> + <key>ccc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + <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->Complex (Complex Taps)</name> + <key>fcc</key> + <opt>input:float</opt> + <opt>output:complex</opt> + <opt>taps:complex_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> + <option> + <name>Float->Short (Real Taps)</name> + <key>fsf</key> + <opt>input:float</opt> + <opt>output:short</opt> + <opt>taps:real_vector</opt> + </option> + <option> + <name>Short->Complex (Complex Taps)</name> + <key>scc</key> + <opt>input:short</opt> + <opt>output:complex</opt> + <opt>taps:complex_vector</opt> + </option> + </param> + <param> + <name>Interpolation</name> + <key>interp</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Taps</name> + <key>taps</key> + <type>$type.taps</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_repeat.xml b/grc/data/platforms/python/blocks/gr_repeat.xml new file mode 100644 index 000000000..ba652a4d7 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_repeat.xml @@ -0,0 +1,64 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Repeat +################################################### + --> +<block> + <name>Repeat</name> + <key>gr_repeat</key> + <import>from gnuradio import gr</import> + <make>gr.repeat($type.size*$vlen, $interp)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Interpolation</name> + <key>interp</key> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_rms_xx.xml b/grc/data/platforms/python/blocks/gr_rms_xx.xml new file mode 100644 index 000000000..1e0947192 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_rms_xx.xml @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<!-- +################################################### +##RMS +################################################### + --> +<block> + <name>RMS</name> + <key>gr_rms_xx</key> + <import>from gnuradio import gr</import> + <make>gr.rms_$(type.fcn)f($alpha)</make> + <callback>set_alpha($alpha)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_sample_and_hold_xx.xml b/grc/data/platforms/python/blocks/gr_sample_and_hold_xx.xml new file mode 100644 index 000000000..bfe66bb00 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_sample_and_hold_xx.xml @@ -0,0 +1,49 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Sample and Hold +################################################### + --> +<block> + <name>Sample and Hold</name> + <key>gr_sample_and_hold_xx</key> + <import>from gnuradio import gr</import> + <make>gr.sample_and_hold_$(type.fcn)()</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:ff</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <sink> + <name>ctrl</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_short_to_float.xml b/grc/data/platforms/python/blocks/gr_short_to_float.xml new file mode 100644 index 000000000..8dac97c09 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_short_to_float.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Short to Float: +################################################### + --> +<block> + <name>Short To Float</name> + <key>gr_short_to_float</key> + <import>from gnuradio import gr</import> + <make>gr.short_to_float()</make> + <sink> + <name>in</name> + <type>short</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_sig_source_x.xml b/grc/data/platforms/python/blocks/gr_sig_source_x.xml new file mode 100644 index 000000000..7ad0c20a4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_sig_source_x.xml @@ -0,0 +1,99 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Signal Source +################################################### + --> +<block> + <name>Signal Source</name> + <key>gr_sig_source_x</key> + <import>from gnuradio import gr</import> + <make>gr.sig_source_$(type.fcn)($samp_rate, $waveform, $freq, $amp, $offset)</make> + <callback>set_sampling_freq($samp_rate)</callback> + <callback>set_frequency($freq)</callback> + <callback>set_amplitude($amp)</callback> + <callback>set_offset($offset)</callback> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Waveform</name> + <key>waveform</key> + <value>gr.GR_COS_WAVE</value> + <type>enum</type> + <option> + <name>Constant</name> + <key>gr.GR_CONST_WAVE</key> + </option> + <option> + <name>Sine</name> + <key>gr.GR_SIN_WAVE</key> + </option> + <option> + <name>Cosine</name> + <key>gr.GR_COS_WAVE</key> + </option> + <option> + <name>Square</name> + <key>gr.GR_SQR_WAVE</key> + </option> + <option> + <name>Triangle</name> + <key>gr.GR_TRI_WAVE</key> + </option> + <option> + <name>Saw Tooth</name> + <key>gr.GR_SAW_WAVE</key> + </option> + </param> + <param> + <name>Frequency</name> + <key>freq</key> + <value>1000</value> + <type>real</type> + </param> + <param> + <name>Amplitude</name> + <key>amp</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Offset</name> + <key>offset</key> + <value>0</value> + <type>complex</type> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_simple_correlator.xml b/grc/data/platforms/python/blocks/gr_simple_correlator.xml new file mode 100644 index 000000000..820523a64 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_simple_correlator.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple Correlator +################################################### + --> +<block> + <name>Simple Correlator</name> + <key>gr_simple_correlator</key> + <import>from gnuradio import gr</import> + <make>gr.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/grc/data/platforms/python/blocks/gr_simple_framer.xml b/grc/data/platforms/python/blocks/gr_simple_framer.xml new file mode 100644 index 000000000..2a0295c41 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_simple_framer.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple Framer +################################################### + --> +<block> + <name>Simple Framer</name> + <key>gr_simple_framer</key> + <import>from gnuradio import gr</import> + <make>gr.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/grc/data/platforms/python/blocks/gr_simple_squelch_cc.xml b/grc/data/platforms/python/blocks/gr_simple_squelch_cc.xml new file mode 100644 index 000000000..5c0727f5f --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_simple_squelch_cc.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple Squelch +################################################### + --> +<block> + <name>Simple Squelch</name> + <key>gr_simple_squelch_cc</key> + <import>from gnuradio import gr</import> + <make>gr.simple_squelch_cc($threshold, $alpha)</make> + <callback>set_threshold($threshold)</callback> + <callback>set_alpha($alpha)</callback> + <param> + <name>Threshold (dB)</name> + <key>threshold</key> + <type>real</type> + </param> + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_single_pole_iir_filter_xx.xml b/grc/data/platforms/python/blocks/gr_single_pole_iir_filter_xx.xml new file mode 100644 index 000000000..50cf4a82d --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_single_pole_iir_filter_xx.xml @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Single Pole IIR Filter +################################################### + --> +<block> + <name>Single Pole IIR Filter</name> + <key>gr_single_pole_iir_filter_xx</key> + <import>from gnuradio import gr</import> + <make>gr.single_pole_iir_filter_$(type.fcn)($alpha, $vlen)</make> + <callback>set_taps($alpha)</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>Alpha</name> + <key>alpha</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_skiphead.xml b/grc/data/platforms/python/blocks/gr_skiphead.xml new file mode 100644 index 000000000..0849ad298 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_skiphead.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Skip Head +################################################### + --> +<block> + <name>Skip Head</name> + <key>gr_skiphead</key> + <import>from gnuradio import gr</import> + <make>gr.skiphead($type.size*$vlen, $num_items)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Items</name> + <key>num_items</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_stream_to_streams.xml b/grc/data/platforms/python/blocks/gr_stream_to_streams.xml new file mode 100644 index 000000000..82542b8d4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_stream_to_streams.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Stream to Streams +################################################### + --> +<block> + <name>Stream to Streams</name> + <key>gr_stream_to_streams</key> + <import>from gnuradio import gr</import> + <make>gr.stream_to_streams($type.size*$vlen, $num_streams)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_stream_to_vector.xml b/grc/data/platforms/python/blocks/gr_stream_to_vector.xml new file mode 100644 index 000000000..296d786f8 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_stream_to_vector.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Stream to Vector +################################################### + --> +<block> + <name>Stream to Vector</name> + <key>gr_stream_to_vector</key> + <import>from gnuradio import gr</import> + <make>gr.stream_to_vector($type.size*$vlen, $num_items)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Items</name> + <key>num_items</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_items > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen*$num_items</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_streams_to_stream.xml b/grc/data/platforms/python/blocks/gr_streams_to_stream.xml new file mode 100644 index 000000000..7aadd7eef --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_streams_to_stream.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Streams to Stream +################################################### + --> +<block> + <name>Streams to Stream</name> + <key>gr_streams_to_stream</key> + <import>from gnuradio import gr</import> + <make>gr.streams_to_stream($type.size*$vlen, $num_streams)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_streams_to_vector.xml b/grc/data/platforms/python/blocks/gr_streams_to_vector.xml new file mode 100644 index 000000000..4ecdcb2d4 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_streams_to_vector.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Streams to Vector +################################################### + --> +<block> + <name>Streams to Vector</name> + <key>gr_streams_to_vector</key> + <import>from gnuradio import gr</import> + <make>gr.streams_to_vector($type.size*$vlen, $num_streams)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen*$num_streams</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_sub_xx.xml b/grc/data/platforms/python/blocks/gr_sub_xx.xml new file mode 100644 index 000000000..488e6c364 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_sub_xx.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Subtract Block: +## all types, 1 output, 2 to inf inputs +################################################### + --> +<block> + <name>Subtract</name> + <key>gr_sub_xx</key> + <import>from gnuradio import gr</import> + <make>gr.sub_$(type.fcn)()</make> + <param> + <name>IO 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> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_threshold_ff.xml b/grc/data/platforms/python/blocks/gr_threshold_ff.xml new file mode 100644 index 000000000..97764d733 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_threshold_ff.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Threshold +################################################### + --> +<block> + <name>Threshold</name> + <key>gr_threshold_ff</key> + <import>from gnuradio import gr</import> + <make>gr.threshold_ff($low, $high, $init)</make> + <param> + <name>Low</name> + <key>low</key> + <value>-100</value> + <type>real</type> + </param> + <param> + <name>High</name> + <key>high</key> + <value>100</value> + <type>real</type> + </param> + <param> + <name>Initial State</name> + <key>init</key> + <value>0</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_throttle.xml b/grc/data/platforms/python/blocks/gr_throttle.xml new file mode 100644 index 000000000..ab8506f55 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_throttle.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Throttle +################################################### + --> +<block> + <name>Throttle</name> + <key>gr_throttle</key> + <import>from gnuradio import gr</import> + <make>gr.throttle($type.size*$vlen, $samples_per_second)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Sample Rate</name> + <key>samples_per_second</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_uchar_to_float.xml b/grc/data/platforms/python/blocks/gr_uchar_to_float.xml new file mode 100644 index 000000000..0a5f7f96a --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_uchar_to_float.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Unsigned Char to Float: +################################################### + --> +<block> + <name>UChar To Float</name> + <key>gr_uchar_to_float</key> + <import>from gnuradio import gr</import> + <make>gr.uchar_to_float()</make> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_udp_sink.xml b/grc/data/platforms/python/blocks/gr_udp_sink.xml new file mode 100644 index 000000000..e9f6c2be8 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_udp_sink.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<!-- +################################################### +##UDP Sink +################################################### + --> +<block> + <name>UDP Sink</name> + <key>gr_udp_sink</key> + <import>from gnuradio import gr</import> + <make>gr.udp_sink($type.size*$vlen, $ipaddr_local, $port_local, $ipaddr_remote, $port_remote, $mtu)</make> + <callback>set_mtu($mtu)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Local IP Address</name> + <key>ipaddr_local</key> + <value>127.0.0.1</value> + <type>string</type> + </param> + <param> + <name>Local Port</name> + <key>port_local</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Remote IP Address</name> + <key>ipaddr_remote</key> + <value>127.0.0.1</value> + <type>string</type> + </param> + <param> + <name>Remote Port</name> + <key>port_remote</key> + <value>1234</value> + <type>int</type> + </param> + <param> + <name>MTU</name> + <key>mtu</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> +</block> diff --git a/grc/data/platforms/python/blocks/gr_udp_source.xml b/grc/data/platforms/python/blocks/gr_udp_source.xml new file mode 100644 index 000000000..f03adf802 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_udp_source.xml @@ -0,0 +1,73 @@ +<?xml version="1.0"?> +<!-- +################################################### +##UDP Source +################################################### + --> +<block> + <name>UDP Source</name> + <key>gr_udp_source</key> + <import>from gnuradio import gr</import> + <make>gr.udp_source($type.size*$vlen, $ipaddr, $port, $mtu)</make> + <callback>set_mtu($mtu)</callback> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>IP Address</name> + <key>ipaddr</key> + <value>127.0.0.1</value> + <type>string</type> + </param> + <param> + <name>Port</name> + <key>port</key> + <value>1234</value> + <type>int</type> + </param> + <param> + <name>MTU</name> + <key>mtu</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_unpack_k_bits_bb.xml b/grc/data/platforms/python/blocks/gr_unpack_k_bits_bb.xml new file mode 100644 index 000000000..9917644ab --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_unpack_k_bits_bb.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Unpack K Bits +################################################### + --> +<block> + <name>Unpack K Bits</name> + <key>gr_unpack_k_bits_bb</key> + <import>from gnuradio import gr</import> + <make>gr.unpack_k_bits_bb($k)</make> + <param> + <name>K</name> + <key>k</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_unpacked_to_packed_xx.xml b/grc/data/platforms/python/blocks/gr_unpacked_to_packed_xx.xml new file mode 100644 index 000000000..f7457eb5c --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_unpacked_to_packed_xx.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Unpacked to Packed +################################################### + --> +<block> + <name>Unpacked to Packed</name> + <key>gr_unpacked_to_packed_xx</key> + <import>from gnuradio import gr</import> + <make>gr.unpacked_to_packed_$(type.fcn)($bits_per_chunk, $endianness)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Bits per Chunk</name> + <key>bits_per_chunk</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Endianness</name> + <key>endianness</key> + <type>enum</type> + <option> + <name>MSB</name> + <key>gr.GR_MSB_FIRST</key> + </option> + <option> + <name>LSB</name> + <key>gr.GR_LSB_FIRST</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_vco_f.xml b/grc/data/platforms/python/blocks/gr_vco_f.xml new file mode 100644 index 000000000..e49c53965 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_vco_f.xml @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- +################################################### +##VCO +################################################### + --> +<block> + <name>VCO</name> + <key>gr_vco_f</key> + <import>from gnuradio import gr</import> + <make>gr.vco_f($samp_rate, $sensitivity, $amplitude)</make> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <type>real</type> + </param> + <param> + <name>Sensitivity</name> + <key>sensitivity</key> + <type>real</type> + </param> + <param> + <name>Amplitude</name> + <key>amplitude</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_vector_sink_x.xml b/grc/data/platforms/python/blocks/gr_vector_sink_x.xml new file mode 100644 index 000000000..d901b1d78 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_vector_sink_x.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Vector sink +################################################### + --> +<block> + <name>Vector Sink</name> + <key>gr_vector_sink_x</key> + <import>from gnuradio import gr</import> + <make>gr.vector_sink_$(type.fcn)()</make> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:b</opt> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> +</block> diff --git a/grc/data/platforms/python/blocks/gr_vector_source_x.xml b/grc/data/platforms/python/blocks/gr_vector_source_x.xml new file mode 100644 index 000000000..240273e42 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_vector_source_x.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Vector Source +################################################### + --> +<block> + <name>Vector Source</name> + <key>gr_vector_source_x</key> + <import>from gnuradio import gr</import> + <make>gr.vector_source_$(type.fcn)($vector, $repeat)</make> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + <opt>vec_type:complex_vector</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + <opt>vec_type:real_vector</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + <opt>vec_type:int_vector</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + <opt>vec_type:int_vector</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:b</opt> + <opt>vec_type:int_vector</opt> + </option> + </param> + <param> + <name>Vector</name> + <key>vector</key> + <value>0, 0, 0</value> + <type>$type.vec_type</type> + </param> + <param> + <name>Repeat</name> + <key>repeat</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_vector_to_stream.xml b/grc/data/platforms/python/blocks/gr_vector_to_stream.xml new file mode 100644 index 000000000..d56d34067 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_vector_to_stream.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Vector to Stream +################################################### + --> +<block> + <name>Vector to Stream</name> + <key>gr_vector_to_stream</key> + <import>from gnuradio import gr</import> + <make>gr.vector_to_stream($type.size*$vlen, $num_items)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Items</name> + <key>num_items</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_items > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen*$num_items</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_vector_to_streams.xml b/grc/data/platforms/python/blocks/gr_vector_to_streams.xml new file mode 100644 index 000000000..86cb56813 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_vector_to_streams.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Vector to Streams +################################################### + --> +<block> + <name>Vector to Streams</name> + <key>gr_vector_to_streams</key> + <import>from gnuradio import gr</import> + <make>gr.vector_to_streams($type.size*$vlen, $num_streams)</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Num Streams</name> + <key>num_streams</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_streams > 0</check> + <check>$vlen >= 1</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen*$num_streams</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_streams</nports> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_wavfile_sink.xml b/grc/data/platforms/python/blocks/gr_wavfile_sink.xml new file mode 100644 index 000000000..f2c8a009f --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_wavfile_sink.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Wav File Sink +################################################### + --> +<block> + <name>Wav File Sink</name> + <key>gr_wavfile_sink</key> + <import>from gnuradio import gr</import> + <make>gr.wavfile_sink($file, $nchan, $samp_rate, $bits_per_sample)</make> + <param> + <name>File</name> + <key>file</key> + <value></value> + <type>file_save</type> + </param> + <param> + <name>N Channels</name> + <key>nchan</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>int</type> + </param> + <param> + <name>Bits per Sample</name> + <key>bits_per_sample</key> + <value>8</value> + <type>int</type> + </param> + <check>1 <= $nchan</check> + <sink> + <name>in</name> + <type>float</type> + <nports>$nchan</nports> + </sink> +</block> diff --git a/grc/data/platforms/python/blocks/gr_wavfile_source.xml b/grc/data/platforms/python/blocks/gr_wavfile_source.xml new file mode 100644 index 000000000..433bb0af2 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_wavfile_source.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Wav File Source +################################################### + --> +<block> + <name>Wav File Source</name> + <key>gr_wavfile_source</key> + <import>from gnuradio import gr</import> + <make>gr.wavfile_source($file, $repeat)</make> + <param> + <name>File</name> + <key>file</key> + <value></value> + <type>file_open</type> + </param> + <param> + <name>Repeat</name> + <key>repeat</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>N Channels</name> + <key>nchan</key> + <value>1</value> + <type>int</type> + </param> + <check>1 <= $nchan</check> + <source> + <name>out</name> + <type>float</type> + <nports>$nchan</nports> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/gr_xor_xx.xml b/grc/data/platforms/python/blocks/gr_xor_xx.xml new file mode 100644 index 000000000..c014cbe57 --- /dev/null +++ b/grc/data/platforms/python/blocks/gr_xor_xx.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Logical Xor Block +################################################### + --> +<block> + <name>Xor</name> + <key>gr_xor_xx</key> + <import>from gnuradio import gr</import> + <make>gr.xor_$(type.fcn)()</make> + <param> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:ii</opt> + </option> + <option> + <name>Shxort</name> + <key>short</key> + <opt>fcn:ss</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:bb</opt> + </option> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <check>$num_inputs >= 2</check> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/high_pass_filter.xml b/grc/data/platforms/python/blocks/high_pass_filter.xml new file mode 100644 index 000000000..0673fd124 --- /dev/null +++ b/grc/data/platforms/python/blocks/high_pass_filter.xml @@ -0,0 +1,120 @@ +<?xml version="1.0"?> +<!-- +################################################### +##High Pass Filter: Custom wrapper +################################################### + --> +<block> + <name>High Pass Filter</name> + <key>high_pass_filter</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.$(type)($decim, firdes.high_pass( + $gain, $samp_rate, $cutoff_freq, $width, firdes.$window, $beta))</make> + <callback>set_taps(firdes.high_pass($gain, $samp_rate, $cutoff_freq, $width, firdes.$window, $beta))</callback> + <param> + <name>FIR Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Decimating)</name> + <key>fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Complex->Complex (Interpolating)</name> + <key>interp_fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Float->Float (Decimating)</name> + <key>fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + <option> + <name>Float->Float (Interpolating)</name> + <key>interp_fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Cutoff Freq</name> + <key>cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>Transition Width</name> + <key>width</key> + <type>real</type> + </param> + <param> + <name>Window</name> + <key>window</key> + <type>enum</type> + <option> + <name>Hamming</name> + <key>WIN_HAMMING</key> + </option> + <option> + <name>Hann</name> + <key>WIN_HANN</key> + </option> + <option> + <name>Blackman</name> + <key>WIN_BLACKMAN</key> + </option> + <option> + <name>Rectangular</name> + <key>WIN_RECTANGULAR</key> + </option> + <option> + <name>Kaiser</name> + <key>WIN_KAISER</key> + </option> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <value>6.76</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +This filter is a convenience wrapper for an fir filter and a firdes taps generating function. + +The decimation paramater becomes interpolation when the filter type is set to interpolating. + +Sample rate, cutoff frequency, and transition width are in Hertz. + +The beta paramater only applies to the Kaiser window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/import.xml b/grc/data/platforms/python/blocks/import.xml new file mode 100644 index 000000000..feea052d3 --- /dev/null +++ b/grc/data/platforms/python/blocks/import.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Import python modules into the namespace +################################################### + --> +<block> + <name>Import</name> + <key>import</key> + <import>$import</import> + <make></make> + <param> + <name>Import</name> + <key>import</key> + <value></value> + <type>import</type> + </param> + <doc> +Import additional python modules into the namespace. + +Examples: +from gnuradio.gr import firdes +import math,cmath +from math import pi + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/low_pass_filter.xml b/grc/data/platforms/python/blocks/low_pass_filter.xml new file mode 100644 index 000000000..1e8802c80 --- /dev/null +++ b/grc/data/platforms/python/blocks/low_pass_filter.xml @@ -0,0 +1,120 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Low Pass Filter: Custom wrapper +################################################### + --> +<block> + <name>Low Pass Filter</name> + <key>low_pass_filter</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.gr import firdes</import> + <make>gr.$(type)($decim, firdes.low_pass( + $gain, $samp_rate, $cutoff_freq, $width, firdes.$window, $beta))</make> + <callback>set_taps(firdes.low_pass($gain, $samp_rate, $cutoff_freq, $width, firdes.$window, $beta))</callback> + <param> + <name>FIR Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Decimating)</name> + <key>fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Complex->Complex (Interpolating)</name> + <key>interp_fir_filter_ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + <option> + <name>Float->Float (Decimating)</name> + <key>fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + <option> + <name>Float->Float (Interpolating)</name> + <key>interp_fir_filter_fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + </option> + </param> + <param> + <name>Decimation</name> + <key>decim</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <value>1</value> + <type>real</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Cutoff Freq</name> + <key>cutoff_freq</key> + <type>real</type> + </param> + <param> + <name>Transition Width</name> + <key>width</key> + <type>real</type> + </param> + <param> + <name>Window</name> + <key>window</key> + <type>enum</type> + <option> + <name>Hamming</name> + <key>WIN_HAMMING</key> + </option> + <option> + <name>Hann</name> + <key>WIN_HANN</key> + </option> + <option> + <name>Blackman</name> + <key>WIN_BLACKMAN</key> + </option> + <option> + <name>Rectangular</name> + <key>WIN_RECTANGULAR</key> + </option> + <option> + <name>Kaiser</name> + <key>WIN_KAISER</key> + </option> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <value>6.76</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +This filter is a convenience wrapper for an fir filter and a firdes taps generating function. + +The decimation paramater becomes interpolation when the filter type is set to interpolating. + +Sample rate, cutoff frequency, and transition width are in Hertz. + +The beta paramater only applies to the Kaiser window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/note.xml b/grc/data/platforms/python/blocks/note.xml new file mode 100644 index 000000000..db6687c03 --- /dev/null +++ b/grc/data/platforms/python/blocks/note.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Note Block (dummy) +################################################### + --> +<block> + <name>Note</name> + <key>note</key> + <make></make> + <param> + <name>Note</name> + <key>note</key> + <value></value> + <type>string</type> + </param> +</block> diff --git a/grc/data/platforms/python/blocks/options.xml b/grc/data/platforms/python/blocks/options.xml new file mode 100644 index 000000000..8e8f06891 --- /dev/null +++ b/grc/data/platforms/python/blocks/options.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Options Block: +## options for window size, +## and flow graph building. +################################################### + --> +<block> + <name>Options</name> + <key>options</key> + <import>from gnuradio import gr +#if $generate_options.eval == 'wx_gui' +from grc_gnuradio import wxgui as grc_wxgui +import wx +#end if +</import> + <make></make> + <param> + <name>Title</name> + <key>title</key> + <value>untitled</value> + <type>string</type> + </param> + <param> + <name>Author</name> + <key>author</key> + <value>unknown</value> + <type>string</type> + </param> + <param> + <name>Description</name> + <key>description</key> + <value>gnuradio flow graph</value> + <type>string</type> + </param> + <param> + <name>Window Size</name> + <key>window_size</key> + <value>1280, 1024</value> + <type>int_vector</type> + </param> + <param> + <name>Generate Options</name> + <key>generate_options</key> + <value>wx_gui</value> + <type>enum</type> + <option> + <name>WX GUI</name> + <key>wx_gui</key> + <opt>hide_category:all</opt> + </option> + <option> + <name>No GUI</name> + <key>no_gui</key> + <opt>hide_category:all</opt> + </option> + <option> + <name>Hier Block</name> + <key>hb</key> + <opt>hide_category:</opt> + </option> + </param> + <param> + <name>Category</name> + <key>category</key> + <value>Custom</value> + <type>string</type> + <hide>$generate_options.hide_category</hide> + </param> + <check>len($window_size) == 2</check> + <check>300 <= $(window_size)[0] <= 2048</check> + <check>300 <= $(window_size)[1] <= 2048</check> + <doc> +The options block sets special parameters for the flow graph. \ +Only one option block is allowed per flow graph. + +Title, author, and description parameters are for identification purposes. + +The window size controls the dimensions of the flow graph editor. \ +The window size (width, height) must be between (300, 300) and (2048, 2048). + +The generate options controls the type of code generated. \ +Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls. + +The id of this block determines the name of the generated file and the name of the class. \ +For example, an id of my_block will generate the file my_block.py and class my_block(gr.... + +The category parameter determines the placement of the block in the block selection window. \ +The category only applies when creating hier blocks. \ +To put hier blocks into the root category, enter / for the category. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/pad_sink.xml b/grc/data/platforms/python/blocks/pad_sink.xml new file mode 100644 index 000000000..477f2ad13 --- /dev/null +++ b/grc/data/platforms/python/blocks/pad_sink.xml @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Pad Sink: IO Pads +################################################### + --> +<block> + <name>Pad Sink</name> + <key>pad_sink</key> + <make></make> + <param> + <name>Num Inputs</name> + <key>nports</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <check>0 < $nports</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$nports</nports> + </sink> + <doc> +This is a sink pad block for creating hierarchical flow graphs. \ +The inputs of this block will become the outputs to this flow graph when it is instantiated as a hierarchical block. \ +Limit one sink pad block per flow graph. + +Remember to set the generate options to hier block. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/pad_source.xml b/grc/data/platforms/python/blocks/pad_source.xml new file mode 100644 index 000000000..b6ef2c55d --- /dev/null +++ b/grc/data/platforms/python/blocks/pad_source.xml @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Pad Source: IO Pads +################################################### + --> +<block> + <name>Pad Source</name> + <key>pad_source</key> + <make></make> + <param> + <name>Num Outputs</name> + <key>nports</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <check>0 < $nports</check> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$nports</nports> + </source> + <doc> +This is a source pad block for creating hierarchical flow graphs. \ +The outputs of this block will become the inputs to this flow graph when it is instantiated as a hierarchical block. \ +Limit one source pad block per flow graph. + +Remember to set the generate options to hier block. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/parameter.xml b/grc/data/platforms/python/blocks/parameter.xml new file mode 100644 index 000000000..b9dcce424 --- /dev/null +++ b/grc/data/platforms/python/blocks/parameter.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Parameter block: a grc variable with key, value +################################################### + --> +<block> + <name>Parameter</name> + <key>parameter</key> + <make>$value</make> + <param> + <name>Label</name> + <key>label</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Value</name> + <key>value</key> + <value>0</value> + <type>raw</type> + </param> + <doc> +This block represents a parameter to the flow graph, \ +used when the flow graph is instantiated as a hier block. + +The paramater value cannot depend on any variables. + +Leave the label blank to use the parameter id as the label. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/preferences.xml b/grc/data/platforms/python/blocks/preferences.xml new file mode 100644 index 000000000..51138c123 --- /dev/null +++ b/grc/data/platforms/python/blocks/preferences.xml @@ -0,0 +1,146 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Global Preferences: +## This block should not appear in the tree. +################################################### + --> +<block> + <name>Preferences</name> + <key>preferences</key> + <make></make> + <!-- Hidden Prefs --> + <param> + <name>Prefs File</name> + <key>prefs_file</key> + <value>.grc</value> + <type>string</type> + </param> + <param> + <name>File Open</name> + <key>file_open</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Files Open</name> + <key>files_open</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Window Size</name> + <key>window_size</key> + <value>800, 600</value> + <type>int_vector</type> + </param> + <!-- Snap to Grid --> + <param> + <name>Snap to Grid</name> + <key>snap_to_grid</key> + <value>off</value> + <type>enum</type> + <option> + <name>Off</name> + <key>off</key> + </option> + <option> + <name>On</name> + <key>on</key> + </option> + </param> + <param> + <name>Grid Size</name> + <key>grid_size</key> + <value>20</value> + <type>enum</type> + <option> + <name>10 pixels</name> + <key>10</key> + </option> + <option> + <name>20 pixels</name> + <key>20</key> + </option> + <option> + <name>50 pixels</name> + <key>50</key> + </option> + <option> + <name>100 pixels</name> + <key>100</key> + </option> + </param> + <param> + <name>Show Grid</name> + <key>show_grid</key> + <value>hide</value> + <type>enum</type> + <option> + <name>Show</name> + <key>show</key> + </option> + <option> + <name>Hide</name> + <key>hide</key> + </option> + </param> + <!-- Appearance Prefs --> + <param> + <name>Show Reports Window</name> + <key>show_reports</key> + <value>show</value> + <type>enum</type> + <option> + <name>Show</name> + <key>show</key> + </option> + <option> + <name>Hide</name> + <key>hide</key> + </option> + </param> + <param> + <name>Show Params Labels</name> + <key>show_params</key> + <value>show</value> + <type>enum</type> + <option> + <name>Show</name> + <key>show</key> + </option> + <option> + <name>Hide</name> + <key>hide</key> + </option> + </param> + <param> + <name>Show ID Label</name> + <key>show_id</key> + <value>show</value> + <type>enum</type> + <option> + <name>Show</name> + <key>show</key> + </option> + <option> + <name>Hide</name> + <key>hide</key> + </option> + </param> + <!-- Misc Prefs --> + <param> + <name>Restore Open Files</name> + <key>restore_files</key> + <value>yes</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>yes</key> + </option> + <option> + <name>No</name> + <key>no</key> + </option> + </param> +</block> diff --git a/grc/data/platforms/python/blocks/random_source_x.xml b/grc/data/platforms/python/blocks/random_source_x.xml new file mode 100644 index 000000000..f04dcd8da --- /dev/null +++ b/grc/data/platforms/python/blocks/random_source_x.xml @@ -0,0 +1,73 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Random Source: +## Custom block +################################################### + --> +<block> + <name>Random Source</name> + <key>random_source_x</key> + <import>from gnuradio import gr</import> + <import>import numpy</import> + <make>gr.vector_source_$(type.fcn)(numpy.random.randint($min, $max, $num_samps), $repeat)</make> + <param> + <name>Output Type</name> + <key>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>Minimum</name> + <key>min</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Maximum</name> + <key>max</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Num Samples</name> + <key>num_samps</key> + <value>1000</value> + <type>int</type> + </param> + <param> + <name>Repeat</name> + <key>repeat</key> + <value>True</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> + <doc> +Generate num samples of random numbers of [min, max). Repeat samples if specified. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_encoder_xx.xml b/grc/data/platforms/python/blocks/trellis_encoder_xx.xml new file mode 100644 index 000000000..74a8cc346 --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_encoder_xx.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis Encoder +################################################### + --> +<block> + <name>Trellis Encoder</name> + <key>trellis_encoder_xx</key> + <import>from gnuradio import trellis</import> + <make>trellis.encoder_$(type)(trellis.fsm($fsm_args), $init_state)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Byte->Byte</name> + <key>bb</key> + <opt>input:byte</opt> + <opt>output:byte</opt> + </option> + <option> + <name>Byte->Short</name> + <key>bs</key> + <opt>input:byte</opt> + <opt>output:short</opt> + </option> + <option> + <name>Byte->Int</name> + <key>bi</key> + <opt>input:byte</opt> + <opt>output:int</opt> + </option> + <option> + <name>Short->Short</name> + <key>ss</key> + <opt>input:short</opt> + <opt>output:short</opt> + </option> + <option> + <name>Short->Int</name> + <key>si</key> + <opt>input:short</opt> + <opt>output:int</opt> + </option> + <option> + <name>Int->Int</name> + <key>ii</key> + <opt>input:int</opt> + <opt>output:int</opt> + </option> + </param> + <param> + <name>FSM Args</name> + <key>fsm_args</key> + <type>raw</type> + </param> + <param> + <name>Initial State</name> + <key>init_state</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <doc> +The fsm arguments are passed directly to the trellis.fsm() constructor. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_metrics_x.xml b/grc/data/platforms/python/blocks/trellis_metrics_x.xml new file mode 100644 index 000000000..f09d54f09 --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_metrics_x.xml @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis Metrics +################################################### + --> +<block> + <name>Trellis Metrics</name> + <key>trellis_metrics_x</key> + <import>from gnuradio import trellis</import> + <make>trellis.metrics_$(type)($card, $dim, $table, $metric_type)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>c</key> + <opt>io:complex</opt> + <opt>table:complex_vector</opt> + </option> + <option> + <name>Float</name> + <key>f</key> + <opt>io:float</opt> + <opt>table:real_vector</opt> + </option> + <option> + <name>Int</name> + <key>i</key> + <opt>io:int</opt> + <opt>table:int_vector</opt> + </option> + <option> + <name>Short</name> + <key>s</key> + <opt>io:short</opt> + <opt>table:int_vector</opt> + </option> + </param> + <param> + <name>Output Cardinality</name> + <key>card</key> + <type>int</type> + </param> + <param> + <name>Dimensionality</name> + <key>dim</key> + <type>int</type> + </param> + <param> + <name>Constellation</name> + <key>table</key> + <type>$type.table</type> + </param> + <param> + <name>Metric Type</name> + <key>metric_type</key> + <type>enum</type> + <option> + <name>Euclidean</name> + <key>trellis.TRELLIS_EUCLIDEAN</key> + </option> + <option> + <name>Hard Symbol</name> + <key>trellis.TRELLIS_HARD_SYMBOL</key> + </option> + <option> + <name>Hard Bit</name> + <key>trellis.TRELLIS_HARD_BIT</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type.io</type> + </sink> + <source> + <name>out</name> + <type>$type.io</type> + </source> + <doc> +Generate metrics required for Viterbi or SISO algorithms. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_permutation.xml b/grc/data/platforms/python/blocks/trellis_permutation.xml new file mode 100644 index 000000000..7721cc71d --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_permutation.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis Permutation +################################################### + --> +<block> + <name>Trellis Permutation</name> + <key>trellis_permutation</key> + <import>from gnuradio import trellis</import> + <make>trellis.permutation($block_size, $table, $syms_per_block, $type.size*$vlen)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Block Size</name> + <key>block_size</key> + <type>int</type> + </param> + <param> + <name>Table</name> + <key>table</key> + <type>int_vector</type> + </param> + <param> + <name>Symbols per Block</name> + <key>syms_per_block</key> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_siso_combined_f.xml b/grc/data/platforms/python/blocks/trellis_siso_combined_f.xml new file mode 100644 index 000000000..98874d7f4 --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_siso_combined_f.xml @@ -0,0 +1,112 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis SISO Combined +################################################### + --> +<block> + <name>Trellis SISO Combo</name> + <key>trellis_siso_combined_f</key> + <import>from gnuradio import trellis</import> + <make>trellis.siso_combined_f(trellis.fsm($fsm_args), $block_size, $init_state, $final_state, $a_post_in, $a_post_out, $siso_type, $dim, $table, $metric_type)</make> + <param> + <name>FSM Args</name> + <key>fsm_args</key> + <type>raw</type> + </param> + <param> + <name>Block Size</name> + <key>block_size</key> + <type>int</type> + </param> + <param> + <name>Initial State</name> + <key>init_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Final State</name> + <key>final_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>A-posteriori In</name> + <key>a_post_in</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>A-posteriori Out</name> + <key>a_post_out</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>SISO Type</name> + <key>siso_type</key> + <type>enum</type> + <option> + <name>Min Sum</name> + <key>trellis.TRELLIS_MIN_SUM</key> + </option> + <option> + <name>Sum Product</name> + <key>trellis.TRELLIS_SUM_PRODUCT</key> + </option> + </param> + <param> + <name>Dimensionality</name> + <key>dim</key> + <type>int</type> + </param> + <param> + <name>Constellation</name> + <key>table</key> + <type>real_vector</type> + </param> + <param> + <name>Metric Type</name> + <key>metric_type</key> + <type>enum</type> + <option> + <name>Euclidean</name> + <key>trellis.TRELLIS_EUCLIDEAN</key> + </option> + <option> + <name>Hard Symbol</name> + <key>trellis.TRELLIS_HARD_SYMBOL</key> + </option> + <option> + <name>Hard Bit</name> + <key>trellis.TRELLIS_HARD_BIT</key> + </option> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> + <doc> +BCJR Algorithm combined with metric calculation. \ +The fsm arguments are passed directly to the trellis.fsm() constructor. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_siso_f.xml b/grc/data/platforms/python/blocks/trellis_siso_f.xml new file mode 100644 index 000000000..2b9cfe5f7 --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_siso_f.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis SISO +################################################### + --> +<block> + <name>Trellis SISO</name> + <key>trellis_siso_f</key> + <import>from gnuradio import trellis</import> + <make>trellis.siso_f(trellis.fsm($fsm_args), $block_size, $init_state, $final_state, $a_post_in, $a_post_out, $siso_type)</make> + <param> + <name>FSM Args</name> + <key>fsm_args</key> + <type>raw</type> + </param> + <param> + <name>Block Size</name> + <key>block_size</key> + <type>int</type> + </param> + <param> + <name>Initial State</name> + <key>init_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Final State</name> + <key>final_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>A-posteriori In</name> + <key>a_post_in</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>A-posteriori Out</name> + <key>a_post_out</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>SISO Type</name> + <key>siso_type</key> + <type>enum</type> + <option> + <name>Min Sum</name> + <key>trellis.TRELLIS_MIN_SUM</key> + </option> + <option> + <name>Sum Product</name> + <key>trellis.TRELLIS_SUM_PRODUCT</key> + </option> + </param> + <sink> + <name>in</name> + <type>float</type> + </sink> + <source> + <name>out</name> + <type>float</type> + </source> + <doc> +BCJR Algorithm. \ +The fsm arguments are passed directly to the trellis.fsm() constructor. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_viterbi_combined_xx.xml b/grc/data/platforms/python/blocks/trellis_viterbi_combined_xx.xml new file mode 100644 index 000000000..0a67d0bfc --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_viterbi_combined_xx.xml @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis Viterbi Combined +################################################### + --> +<block> + <name>Trellis Viterbi Combo</name> + <key>trellis_viterbi_combined_xx</key> + <import>from gnuradio import trellis</import> + <make>trellis.viterbi_combined_$(type)$(out_type)(trellis.fsm($fsm_args), $block_size, $init_state, $final_state, $dim, $table, $metric_type)</make> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>c</key> + <opt>io:complex</opt> + <opt>table:complex_vector</opt> + </option> + <option> + <name>Float</name> + <key>f</key> + <opt>io:float</opt> + <opt>table:real_vector</opt> + </option> + <option> + <name>Int</name> + <key>i</key> + <opt>io:int</opt> + <opt>table:int_vector</opt> + </option> + <option> + <name>Short</name> + <key>s</key> + <opt>io:short</opt> + <opt>table:int_vector</opt> + </option> + </param> + <param> + <name>Output Type</name> + <key>out_type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>i</key> + <opt>io:int</opt> + </option> + <option> + <name>Short</name> + <key>s</key> + <opt>io:short</opt> + </option> + <option> + <name>Byte</name> + <key>b</key> + <opt>io:byte</opt> + </option> + </param> + <param> + <name>FSM Args</name> + <key>fsm_args</key> + <type>raw</type> + </param> + <param> + <name>Block Size</name> + <key>block_size</key> + <type>int</type> + </param> + <param> + <name>Initial State</name> + <key>init_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Final State</name> + <key>final_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Dimensionality</name> + <key>dim</key> + <type>int</type> + </param> + <param> + <name>Constellation</name> + <key>table</key> + <type>$type.table</type> + </param> + <param> + <name>Metric Type</name> + <key>metric_type</key> + <type>enum</type> + <option> + <name>Euclidean</name> + <key>trellis.TRELLIS_EUCLIDEAN</key> + </option> + <option> + <name>Hard Symbol</name> + <key>trellis.TRELLIS_HARD_SYMBOL</key> + </option> + <option> + <name>Hard Bit</name> + <key>trellis.TRELLIS_HARD_BIT</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type.io</type> + </sink> + <source> + <name>out</name> + <type>$out_type.io</type> + </source> + <doc> +Viterbi Decoder combined with metric calculation. \ +The fsm arguments are passed directly to the trellis.fsm() constructor. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/trellis_viterbi_x.xml b/grc/data/platforms/python/blocks/trellis_viterbi_x.xml new file mode 100644 index 000000000..7465b11db --- /dev/null +++ b/grc/data/platforms/python/blocks/trellis_viterbi_x.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Trellis Viterbi +################################################### + --> +<block> + <name>Trellis Viterbi</name> + <key>trellis_viterbi_x</key> + <import>from gnuradio import trellis</import> + <make>trellis.viterbi_$(type)(trellis.fsm($fsm_args), $block_size, $init_state, $final_state)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Int</name> + <key>i</key> + <opt>io:int</opt> + </option> + <option> + <name>Short</name> + <key>s</key> + <opt>io:short</opt> + </option> + <option> + <name>Byte</name> + <key>b</key> + <opt>io:byte</opt> + </option> + </param> + <param> + <name>FSM Args</name> + <key>fsm_args</key> + <type>raw</type> + </param> + <param> + <name>Block Size</name> + <key>block_size</key> + <type>int</type> + </param> + <param> + <name>Initial State</name> + <key>init_state</key> + <value>-1</value> + <type>int</type> + </param> + <param> + <name>Final State</name> + <key>final_state</key> + <value>-1</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>$type.io</type> + </sink> + <source> + <name>out</name> + <type>$type.io</type> + </source> + <doc> +Viterbi Decoder. \ +The fsm arguments are passed directly to the trellis.fsm() constructor. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/usrp_diagnostics.xml b/grc/data/platforms/python/blocks/usrp_diagnostics.xml new file mode 100644 index 000000000..52dd885a4 --- /dev/null +++ b/grc/data/platforms/python/blocks/usrp_diagnostics.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- +################################################### +##USRP Diagnostics: +## This block should not appear in the tree. +################################################### + --> +<block> + <name>USRP Diagnostics</name> + <key>usrp_diagnostics</key> + <make></make> + <param> + <name>USRP Number</name> + <key>usrp_number</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>USRP Type</name> + <key>usrp_type</key> + <value>rx</value> + <type>enum</type> + <option> + <name>Receive</name> + <key>rx</key> + </option> + <option> + <name>Transmit</name> + <key>tx</key> + </option> + </param> + <param> + <name>Side:Subdevice</name> + <key>side_subdev</key> + <value>(0, 0)</value> + <type>enum</type> + <option> + <name>Side A:0</name> + <key>(0, 0)</key> + </option> + <option> + <name>Side B:0</name> + <key>(1, 0)</key> + </option> + <option> + <name>Side A:1</name> + <key>(0, 1)</key> + </option> + <option> + <name>Side B:0</name> + <key>(1, 1)</key> + </option> + </param> +</block> diff --git a/grc/data/platforms/python/blocks/usrp_dual_sink_x.xml b/grc/data/platforms/python/blocks/usrp_dual_sink_x.xml new file mode 100644 index 000000000..acc14b1f6 --- /dev/null +++ b/grc/data/platforms/python/blocks/usrp_dual_sink_x.xml @@ -0,0 +1,154 @@ +<?xml version="1.0"?> +<!-- +################################################### +##USRP Dual Sink +################################################### + --> +<block> + <name>USRP Dual Sink</name> + <key>usrp_dual_sink_x</key> + <import>from grc_gnuradio import usrp as grc_usrp</import> + <make>grc_usrp.dual_sink_$(type.fcn)( + number=$number, + frequency_a=$frequency_a, + frequency_b=$frequency_b, + interpolation=$interpolation, + gain_a=$gain_a, + gain_b=$gain_b, + mux=$mux, + auto_tr=$auto_tr, + tx_enb_a=$tx_enb_a, + tx_enb_b=$tx_enb_b, +)</make> + <callback>set_interp_rate($interpolation)</callback> + <callback>set_frequency_a($frequency_a)</callback> + <callback>set_gain_a($gain_a)</callback> + <callback>set_frequency_b($frequency_b)</callback> + <callback>set_gain_b($gain_b)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Unit Number</name> + <key>number</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Frequency A</name> + <key>frequency_a</key> + <type>real</type> + </param> + <param> + <name>Frequency B</name> + <key>frequency_b</key> + <type>real</type> + </param> + <param> + <name>Interpolation</name> + <key>interpolation</key> + <type>int</type> + </param> + <param> + <name>Gain A</name> + <key>gain_a</key> + <type>real</type> + </param> + <param> + <name>Gain B</name> + <key>gain_b</key> + <type>real</type> + </param> + <param> + <name>Mux</name> + <key>mux</key> + <value>0xba98</value> + <type>hex</type> + </param> + <param> + <name>Auto T/R</name> + <key>auto_tr</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <param> + <name>TX Enable A</name> + <key>tx_enb_a</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <param> + <name>TX Enable B</name> + <key>tx_enb_b</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <sink> + <name>Ain</name> + <type>$type</type> + </sink> + <sink> + <name>Bin</name> + <type>$type</type> + </sink> + <doc> +The USRP sink inputs 128 Megasamples per second / interpolation. + +--- Flex RF specific --- +The "Auto TR" and "TX Enable" settings are flex rf specific and should be left at "Ignore" unless this is a flex rf board. + +If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \ +By default, "Auto TR" is disabled. + +The "Transmit Enable" configures the transmitter to be on or off. \ +Do not leave this unconfigured. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/usrp_dual_source_x.xml b/grc/data/platforms/python/blocks/usrp_dual_source_x.xml new file mode 100644 index 000000000..68526b47e --- /dev/null +++ b/grc/data/platforms/python/blocks/usrp_dual_source_x.xml @@ -0,0 +1,154 @@ +<?xml version="1.0"?> +<!-- +################################################### +##USRP Dual Source +################################################### + --> +<block> + <name>USRP Dual Source</name> + <key>usrp_dual_source_x</key> + <import>from grc_gnuradio import usrp as grc_usrp</import> + <make>grc_usrp.dual_source_$(type.fcn)( + number=$number, + frequency_a=$frequency_a, + frequency_b=$frequency_b, + decimation=$decimation, + gain_a=$gain_a, + gain_b=$gain_b, + mux=$mux, + auto_tr=$auto_tr, + rx_ant_a=$rx_ant_a, + rx_ant_b=$rx_ant_b, +)</make> + <callback>set_decim_rate($decimation)</callback> + <callback>set_frequency_a($frequency_a)</callback> + <callback>set_gain_a($gain_a)</callback> + <callback>set_frequency_b($frequency_b)</callback> + <callback>set_gain_b($gain_b)</callback> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Unit Number</name> + <key>number</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Frequency A</name> + <key>frequency_a</key> + <type>real</type> + </param> + <param> + <name>Frequency B</name> + <key>frequency_b</key> + <type>real</type> + </param> + <param> + <name>Decimation</name> + <key>decimation</key> + <type>int</type> + </param> + <param> + <name>Gain A</name> + <key>gain_a</key> + <type>real</type> + </param> + <param> + <name>Gain B</name> + <key>gain_b</key> + <type>real</type> + </param> + <param> + <name>Mux</name> + <key>mux</key> + <value>0x3210</value> + <type>hex</type> + </param> + <param> + <name>Auto T/R</name> + <key>auto_tr</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <param> + <name>RX Antenna B</name> + <key>rx_ant_a</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>TX/RX</name> + <key>"TX/RX"</key> + </option> + <option> + <name>RX2</name> + <key>"RX2"</key> + </option> + </param> + <param> + <name>RX Antenna B</name> + <key>rx_ant_b</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>TX/RX</name> + <key>"TX/RX"</key> + </option> + <option> + <name>RX2</name> + <key>"RX2"</key> + </option> + </param> + <source> + <name>Aout</name> + <type>$type</type> + </source> + <source> + <name>Bout</name> + <type>$type</type> + </source> + <doc> +The USRP source outputs 64 Megasamples per second / decimation. + +--- Flex RF specific --- +The "Auto TR" and "RX Antenna" settings are flex rf specific and should be left at "Ignore" unless this is a flex rf board. + +If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \ +By default, "Auto TR" is disabled. + +The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \ +By default, 'TX/RX' is selected. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/usrp_simple_sink_x.xml b/grc/data/platforms/python/blocks/usrp_simple_sink_x.xml new file mode 100644 index 000000000..b525d031f --- /dev/null +++ b/grc/data/platforms/python/blocks/usrp_simple_sink_x.xml @@ -0,0 +1,140 @@ +<?xml version="1.0"?> +<!-- +################################################### +##USRP Simple Sink +################################################### + --> +<block> + <name>USRP Sink</name> + <key>usrp_simple_sink_x</key> + <import>from grc_gnuradio import usrp as grc_usrp</import> + <make>grc_usrp.simple_sink_$(type.fcn)( + number=$number, + subdev_spec=$subdev_spec, + frequency=$frequency, + interpolation=$interpolation, + gain=$gain, +#if $mux.eval == hex(0) + mux=None, +#else + mux=$mux, +#end if + auto_tr=$auto_tr, + tx_enb=$tx_enb, +)</make> + <callback>set_interp_rate($interpolation)</callback> + <callback>set_frequency($frequency)</callback> + <callback>set_gain($gain)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Unit Number</name> + <key>number</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Subdev Spec</name> + <key>subdev_spec</key> + <value>auto</value> + <type>enum</type> + <option> + <name>Auto</name> + <key>None</key> + </option> + <option> + <name>Side A</name> + <key>(0, 0)</key> + </option> + <option> + <name>Side B</name> + <key>(1, 0)</key> + </option> + </param> + <param> + <name>Frequency</name> + <key>frequency</key> + <type>real</type> + </param> + <param> + <name>Interpolation</name> + <key>interpolation</key> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <type>real</type> + </param> + <param> + <name>Mux</name> + <key>mux</key> + <value>0x0</value> + <type>hex</type> + </param> + <param> + <name>Auto T/R</name> + <key>auto_tr</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <param> + <name>TX Enable</name> + <key>tx_enb</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <doc> +The USRP sink inputs 128 Megasamples per second / interpolation. + +--- Flex RF specific --- +The "Auto TR" and "TX Enable" settings are flex rf specific and should be left at "Ignore" unless this is a flex rf board. + +If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \ +By default, "Auto TR" is disabled. + +The "Transmit Enable" configures the transmitter to be on or off. \ +Do not leave this unconfigured. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/usrp_simple_source_x.xml b/grc/data/platforms/python/blocks/usrp_simple_source_x.xml new file mode 100644 index 000000000..a1598583f --- /dev/null +++ b/grc/data/platforms/python/blocks/usrp_simple_source_x.xml @@ -0,0 +1,148 @@ +<?xml version="1.0"?> +<!-- +################################################### +##USRP Simple Source +################################################### + --> +<block> + <name>USRP Source</name> + <key>usrp_simple_source_x</key> + <import>from grc_gnuradio import usrp as grc_usrp</import> + <make>grc_usrp.simple_source_$(type.fcn)( + number=$number, + subdev_spec=$subdev_spec, + frequency=$frequency, + decimation=$decimation, + gain=$gain, +#if $mux.eval == hex(0) + mux=None, +#else + mux=$mux, +#end if + auto_tr=$auto_tr, + rx_ant=$rx_ant, +)</make> + <callback>set_decim_rate($decimation)</callback> + <callback>set_frequency($frequency)</callback> + <callback>set_gain($gain)</callback> + <param> + <name>Output Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + </param> + <param> + <name>Unit Number</name> + <key>number</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Subdev Spec</name> + <key>subdev_spec</key> + <value>auto</value> + <type>enum</type> + <option> + <name>Auto</name> + <key>None</key> + </option> + <option> + <name>Side A:0</name> + <key>(0, 0)</key> + </option> + <option> + <name>Side B:0</name> + <key>(1, 0)</key> + </option> + <option> + <name>Side A:1</name> + <key>(0, 1)</key> + </option> + <option> + <name>Side B:1</name> + <key>(1, 1)</key> + </option> + </param> + <param> + <name>Frequency</name> + <key>frequency</key> + <type>real</type> + </param> + <param> + <name>Decimation</name> + <key>decimation</key> + <type>int</type> + </param> + <param> + <name>Gain</name> + <key>gain</key> + <type>real</type> + </param> + <param> + <name>Mux</name> + <key>mux</key> + <value>0x0</value> + <type>hex</type> + </param> + <param> + <name>Auto T/R</name> + <key>auto_tr</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>Enable</name> + <key>True</key> + </option> + <option> + <name>Disable</name> + <key>False</key> + </option> + </param> + <param> + <name>RX Antenna</name> + <key>rx_ant</key> + <value>None</value> + <type>enum</type> + <option> + <name>Ignore</name> + <key>None</key> + </option> + <option> + <name>TX/RX</name> + <key>"TX/RX"</key> + </option> + <option> + <name>RX2</name> + <key>"RX2"</key> + </option> + </param> + <source> + <name>out</name> + <type>$type</type> + </source> + <doc> +The USRP source outputs 64 Megasamples per second / decimation. + +--- Flex RF specific --- +The "Auto TR" and "RX Antenna" settings are flex rf specific and should be left at "Ignore" unless this is a flex rf board. + +If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \ +By default, "Auto TR" is disabled. + +The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \ +By default, 'TX/RX' is selected. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/variable.xml b/grc/data/platforms/python/blocks/variable.xml new file mode 100644 index 000000000..d620e1607 --- /dev/null +++ b/grc/data/platforms/python/blocks/variable.xml @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Variable block: a grc variable with key, value +################################################### + --> +<block> + <name>Variable</name> + <key>variable</key> + <make>$value</make> + <param> + <name>Value</name> + <key>value</key> + <value>0</value> + <type>raw</type> + </param> + <doc> +This block maps a value to a unique variable. \ +This variable block has no graphical representation. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/variable_chooser.xml b/grc/data/platforms/python/blocks/variable_chooser.xml new file mode 100644 index 000000000..4eba84d4c --- /dev/null +++ b/grc/data/platforms/python/blocks/variable_chooser.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Variable Chooser: a grc variable with multiple choices +################################################### + --> +<block> + <name>Variable Chooser</name> + <key>variable_chooser</key> + <make>$(choices)[$value_index] +_$(id)_control = grc_wxgui.$(chooser_type)_control( + window=self.GetWin(), + callback=self.set_$(id), + #if $label.eval + label=$label, + #else + label="$id", + #end if + index=$value_index, + choices=$choices, + labels=$labels, +) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(_$(id)_control) +#else +self.GridAdd(_$(id)_control, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Label</name> + <key>label</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Value Index</name> + <key>value_index</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Choices</name> + <key>choices</key> + <value>[1, 2, 3]</value> + <type>raw</type> + </param> + <param> + <name>Labels</name> + <key>labels</key> + <value>[]</value> + <type>raw</type> + </param> + <param> + <name>Chooser Type</name> + <key>chooser_type</key> + <value>drop_down</value> + <type>enum</type> + <option> + <name>Drop Down</name> + <key>drop_down</key> + </option> + <option> + <name>Radio Buttons Horizontal</name> + <key>radio_buttons_horizontal</key> + </option> + <option> + <name>Radio Buttons Vertical</name> + <key>radio_buttons_vertical</key> + </option> + <option> + <name>Button</name> + <key>button</key> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <check>$value_index in range(len($choices))</check> + <check>not $labels or len($labels) == len($choices)</check> + <doc> +This block creates a variable with a drop down, radio buttons, or a button. \ +Leave the label blank to use the variable id as the label. \ +The value index is the index of a particular choice, \ +which defines the default choice when the flow graph starts. \ +The choices must be a list of possible values. \ +Leave labels empty to use the choices as the labels. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/variable_sink.xml b/grc/data/platforms/python/blocks/variable_sink.xml new file mode 100644 index 000000000..13737b2cf --- /dev/null +++ b/grc/data/platforms/python/blocks/variable_sink.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Variable Sink: Custom blks2 block +################################################### + --> +<block> + <name>Variable Sink</name> + <key>variable_sink</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <make>grc_blks2.queue_sink_$(type.fcn)($vlen) +grc_blks2.queue_sink_thread(self.$id, set_$(variable))</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:b</opt> + </option> + </param> + <param> + <name>Variable</name> + <key>variable</key> + <value></value> + <type>raw</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <doc> +Read samples from the input stream and write each sample to the variable. + +The variable must be the id of an existing variable block. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/variable_slider.xml b/grc/data/platforms/python/blocks/variable_slider.xml new file mode 100644 index 000000000..2f6374b9a --- /dev/null +++ b/grc/data/platforms/python/blocks/variable_slider.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Variable Slider: a grc variable with key, value, min, max, step +################################################### + --> +<block> + <name>Variable Slider</name> + <key>variable_slider</key> + <make>$value +_$(id)_control = grc_wxgui.slider_$(slider_type)_control( + window=self.GetWin(), + callback=self.set_$(id), + #if $label.eval + label=$label, + #else + label="$id", + #end if + value=$id, + min=$min, + max=$max, + num_steps=$num_steps, +) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(_$(id)_control) +#else +self.GridAdd(_$(id)_control, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Label</name> + <key>label</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Default Value</name> + <key>value</key> + <value>50</value> + <type>real</type> + </param> + <param> + <name>Minimum</name> + <key>min</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Maximum</name> + <key>max</key> + <value>100</value> + <type>real</type> + </param> + <param> + <name>Num Steps</name> + <key>num_steps</key> + <value>100</value> + <type>int</type> + </param> + <param> + <name>Slider Type</name> + <key>slider_type</key> + <value>horizontal</value> + <type>enum</type> + <option> + <name>Horizontal</name> + <key>horizontal</key> + </option> + <option> + <name>Vertical</name> + <key>vertical</key> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <check>$min <= $value <= $max</check> + <check>$min < $max</check> + <check>0 < $num_steps <= 1000</check> + <doc> +This block creates a variable with a slider. \ +Leave the label blank to use the variable id as the label. \ +The value must be a real number. \ +The value must be between the minimum and the maximum. \ +The number of steps must be between 0 and 1000. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/variable_text_box.xml b/grc/data/platforms/python/blocks/variable_text_box.xml new file mode 100644 index 000000000..0dad3d826 --- /dev/null +++ b/grc/data/platforms/python/blocks/variable_text_box.xml @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Variable Text Box: a grc variable with key, value +################################################### + --> +<block> + <name>Variable Text Box</name> + <key>variable_text_box</key> + <make>$value +_$(id)_control = grc_wxgui.text_box_control( + window=self.GetWin(), + callback=self.set_$(id), + #if $label.eval + label=$label, + #else + label="$id", + #end if + value=$id, +) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(_$(id)_control) +#else +self.GridAdd(_$(id)_control, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Label</name> + <key>label</key> + <value></value> + <type>string</type> + </param> + <param> + <name>Default Value</name> + <key>value</key> + <value>0</value> + <type>raw</type> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <doc> +This block creates a variable with a text box. \ +Leave the label blank to use the variable id as the label. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml b/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml new file mode 100644 index 000000000..cf3f29280 --- /dev/null +++ b/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Constellation Sink +################################################### + --> +<block> + <name>Constellation Sink</name> + <key>wxgui_constellationsink2</key> + <import>from gnuradio.wxgui import scopesink2</import> + <make>scopesink2.constellation_sink( + self.GetWin(), + title=$title, + sample_rate=$samp_rate, + frame_decim=$frame_decim, +) +self.$(id).win.$(marker)() +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(self.$(id).win) +#else +self.GridAdd(self.$(id).win, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <callback>set_sample_rate($samp_rate)</callback> + <param> + <name>Title</name> + <key>title</key> + <value>Constellation Plot</value> + <type>string</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Frame Decimation</name> + <key>frame_decim</key> + <value>15</value> + <type>int</type> + </param> + <param> + <name>Marker</name> + <key>marker</key> + <value>set_format_plus</value> + <type>enum</type> + <option> + <name>Line</name> + <key>set_format_line</key> + </option> + <option> + <name>Dot</name> + <key>set_format_dot</key> + </option> + <option> + <name>Plus</name> + <key>set_format_plus</key> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <doc> +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/wxgui_fftsink2.xml b/grc/data/platforms/python/blocks/wxgui_fftsink2.xml new file mode 100644 index 000000000..68b07ba9d --- /dev/null +++ b/grc/data/platforms/python/blocks/wxgui_fftsink2.xml @@ -0,0 +1,148 @@ +<?xml version="1.0"?> +<!-- +################################################### +##FFT Sink +################################################### + --> +<block> + <name>FFT Sink</name> + <key>wxgui_fftsink2</key> + <import>from gnuradio.wxgui import fftsink2</import> + <make>fftsink2.$(type.fcn)( + self.GetWin(), + baseband_freq=$baseband_freq, + y_per_div=$y_per_div, + y_divs=$y_divs, + ref_level=$ref_level, + sample_rate=$samp_rate, + fft_size=$fft_size, + fft_rate=$fft_rate, + average=$average, +#if $avg_alpha.eval == 0 + avg_alpha=None, +#else + avg_alpha=$avg_alpha, +#end if + title=$title, + peak_hold=$peak_hold, +) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(self.$(id).win) +#else +self.GridAdd(self.$(id).win, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Type</name> + <key>type</key> + <value>complex</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:fft_sink_c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:fft_sink_f</opt> + </option> + </param> + <param> + <name>Title</name> + <key>title</key> + <value>FFT Plot</value> + <type>string</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Baseband Freq</name> + <key>baseband_freq</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Y per Div</name> + <key>y_per_div</key> + <value>10</value> + <type>real</type> + </param> + <param> + <name>Y Divs</name> + <key>y_divs</key> + <value>8</value> + <type>real</type> + </param> + <param> + <name>Reference Level</name> + <key>ref_level</key> + <value>50</value> + <type>real</type> + </param> + <param> + <name>FFT Size</name> + <key>fft_size</key> + <value>1024</value> + <type>int</type> + </param> + <param> + <name>Refresh Rate</name> + <key>fft_rate</key> + <value>30</value> + <type>int</type> + </param> + <param> + <name>Average Alpha</name> + <key>avg_alpha</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Average</name> + <key>average</key> + <value>False</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Peak Hold</name> + <key>peak_hold</key> + <value>False</value> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <doc> +Set Average Alpha to 0 for automatic setting. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/wxgui_numbersink2.xml b/grc/data/platforms/python/blocks/wxgui_numbersink2.xml new file mode 100644 index 000000000..e54da3e61 --- /dev/null +++ b/grc/data/platforms/python/blocks/wxgui_numbersink2.xml @@ -0,0 +1,173 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Number Sink +################################################### + --> +<block> + <name>Number Sink</name> + <key>wxgui_numbersink2</key> + <import>from gnuradio.wxgui import numbersink2</import> + <make>numbersink2.$(type.fcn)( + self.GetWin(), + unit=$units, + base_value=$base_value, + minval=$min_value, + maxval=$max_value, + factor=$factor, + decimal_places=$decimal_places, + ref_level=$ref_level, + sample_rate=$samp_rate, + number_rate=$number_rate, + average=$options.average, +#if $avg_alpha.eval == 0 + avg_alpha=None, +#else + avg_alpha=$avg_alpha, +#end if + label=$title, + peak_hold=$options.peak_hold, +) +self.$(id).set_show_gauge($show_gauge) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(self.$(id).win) +#else +self.GridAdd(self.$(id).win, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Type</name> + <key>type</key> + <value>complex</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:number_sink_c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:number_sink_f</opt> + </option> + </param> + <param> + <name>Title</name> + <key>title</key> + <value>Number Plot</value> + <type>string</type> + </param> + <param> + <name>Units</name> + <key>units</key> + <value>Units</value> + <type>string</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Base Value</name> + <key>base_value</key> + <value>0.0</value> + <type>real</type> + </param> + <param> + <name>Min Value</name> + <key>min_value</key> + <value>-100</value> + <type>real</type> + </param> + <param> + <name>Max Value</name> + <key>max_value</key> + <value>100</value> + <type>real</type> + </param> + <param> + <name>Factor</name> + <key>factor</key> + <value>1.0</value> + <type>real</type> + </param> + <param> + <name>Decimal Places</name> + <key>decimal_places</key> + <value>10</value> + <type>int</type> + </param> + <param> + <name>Reference Level</name> + <key>ref_level</key> + <value>50</value> + <type>real</type> + </param> + <param> + <name>Number Rate</name> + <key>number_rate</key> + <value>15</value> + <type>int</type> + </param> + <param> + <name>Average Alpha</name> + <key>avg_alpha</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Options</name> + <key>options</key> + <value>none</value> + <type>enum</type> + <option> + <name>None</name> + <key>none</key> + <opt>peak_hold:False</opt> + <opt>average:False</opt> + </option> + <option> + <name>Average</name> + <key>average</key> + <opt>peak_hold:False</opt> + <opt>average:True</opt> + </option> + <option> + <name>Peak Hold</name> + <key>peak_hold</key> + <opt>peak_hold:True</opt> + <opt>average:False</opt> + </option> + </param> + <param> + <name>Show Gauge</name> + <key>show_gauge</key> + <value>True</value> + <type>enum</type> + <option> + <name>Show</name> + <key>True</key> + </option> + <option> + <name>Hide</name> + <key>False</key> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <doc> +Set Average Alpha to 0 for automatic setting. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/wxgui_scopesink2.xml b/grc/data/platforms/python/blocks/wxgui_scopesink2.xml new file mode 100644 index 000000000..7cf49d5d6 --- /dev/null +++ b/grc/data/platforms/python/blocks/wxgui_scopesink2.xml @@ -0,0 +1,146 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Scope Sink +################################################### + --> +<block> + <name>Scope Sink</name> + <key>wxgui_scopesink2</key> + <import>from gnuradio.wxgui import scopesink2</import> + <import>from gnuradio import gr</import> + <make>scopesink2.$(type.fcn)( + self.GetWin(), + title=$title, + sample_rate=$samp_rate, + frame_decim=$frame_decim, +#if $v_scale.eval == 0 + v_scale=None, +#else + v_scale=$v_scale, +#end if + t_scale=$t_scale, + num_inputs=$num_inputs, +) +self.$(id).win.$(marker)() +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(self.$(id).win) +#else +self.GridAdd(self.$(id).win, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> +<!-- +$(id).win.info.scopesink.set_trigger_channel($(trigger_channel)) +$(id).win.info.scopesink.set_trigger_mode(gr.$(trigger_mode)) --> + <callback>set_sample_rate($samp_rate)</callback> + <param> + <name>Type</name> + <key>type</key> + <value>complex</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:scope_sink_c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:scope_sink_f</opt> + </option> + </param> + <param> + <name>Title</name> + <key>title</key> + <value>Scope Plot</value> + <type>string</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Frame Decimation</name> + <key>frame_decim</key> + <value>15</value> + <type>int</type> + </param> + <param> + <name>V Scale</name> + <key>v_scale</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>T Scale</name> + <key>t_scale</key> + <value>.001</value> + <type>real</type> + </param> + <param> + <name>Marker</name> + <key>marker</key> + <value>set_format_line</value> + <type>enum</type> + <option> + <name>Line</name> + <key>set_format_line</key> + </option> + <option> + <name>Dot</name> + <key>set_format_dot</key> + </option> + <option> + <name>Plus</name> + <key>set_format_plus</key> + </option> + </param> + <!-- <param> + <name>Trigger Channel</name> + <key>trigger_channel</key> + <value>0</value> + <type>int</type> + </param> + <param> + <name>Trigger Mode</name> + <key>trigger_mode</key> + <value>gr_TRIG_AUTO</value> + <type>enum</type> + <option> + <name>Auto</name> + <key>gr_TRIG_AUTO</key> + </option> + <option> + <name>Positive Slope</name> + <key>gr_TRIG_POS_SLOPE</key> + </option> + <option> + <name>Negative Slope</name> + <key>gr_TRIG_NEG_SLOPE</key> + </option> + </param> --> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + <nports>$num_inputs</nports> + </sink> + <doc> +Set the V Scale to 0 for the scope to auto-scale. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/wxgui_waterfallsink2.xml b/grc/data/platforms/python/blocks/wxgui_waterfallsink2.xml new file mode 100644 index 000000000..b5172f094 --- /dev/null +++ b/grc/data/platforms/python/blocks/wxgui_waterfallsink2.xml @@ -0,0 +1,128 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Waterfall Sink +################################################### + --> +<block> + <name>Waterfall Sink</name> + <key>wxgui_waterfallsink2</key> + <import>from gnuradio.wxgui import waterfallsink2</import> + <make>waterfallsink2.$(type.fcn)( + self.GetWin(), + baseband_freq=$baseband_freq, + y_per_div=$y_per_div, + ref_level=$ref_level, + sample_rate=$samp_rate, + fft_size=$fft_size, + fft_rate=$fft_rate, + average=$options.average, +#if $avg_alpha.eval == 0 + avg_alpha=None, +#else + avg_alpha=$avg_alpha, +#end if + title=$title, +) +#set $grid_pos = $grid_pos.eval +#if not grid_pos +self.Add(self.$(id).win) +#else +self.GridAdd(self.$(id).win, $grid_pos[0], $grid_pos[1], $grid_pos[2], $grid_pos[3]) +#end if</make> + <param> + <name>Type</name> + <key>type</key> + <value>complex</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:waterfall_sink_c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:waterfall_sink_f</opt> + </option> + </param> + <param> + <name>Title</name> + <key>title</key> + <value>Waterfall Plot</value> + <type>string</type> + </param> + <param> + <name>Sample Rate</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + <param> + <name>Baseband Freq</name> + <key>baseband_freq</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Y per Div</name> + <key>y_per_div</key> + <value>10</value> + <type>real</type> + </param> + <param> + <name>Reference Level</name> + <key>ref_level</key> + <value>50</value> + <type>real</type> + </param> + <param> + <name>FFT Size</name> + <key>fft_size</key> + <value>512</value> + <type>int</type> + </param> + <param> + <name>FFT Rate</name> + <key>fft_rate</key> + <value>15</value> + <type>int</type> + </param> + <param> + <name>Average Alpha</name> + <key>avg_alpha</key> + <value>0</value> + <type>real</type> + </param> + <param> + <name>Options</name> + <key>options</key> + <value>none</value> + <type>enum</type> + <option> + <name>None</name> + <key>none</key> + <opt>average:False</opt> + </option> + <option> + <name>Average</name> + <key>average</key> + <opt>average:True</opt> + </option> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <doc> +Set Average Alpha to 0 for automatic setting. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/xmlrpc_client.xml b/grc/data/platforms/python/blocks/xmlrpc_client.xml new file mode 100644 index 000000000..82ae8ceed --- /dev/null +++ b/grc/data/platforms/python/blocks/xmlrpc_client.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple XMLRPC Client +################################################### + --> +<block> + <name>XMLRPC Client</name> + <key>xmlrpc_client</key> + <import>import xmlrpclib</import> + <make>xmlrpclib.Server("http://$(addr.eval):$(port)")</make> + <callback>$(callback.eval)($variable)</callback> + <param> + <name>Address</name> + <key>addr</key> + <value>localhost</value> + <type>string</type> + </param> + <param> + <name>Port</name> + <key>port</key> + <value>8080</value> + <type>int</type> + </param> + <param> + <name>Callback</name> + <key>callback</key> + <value>set_</value> + <type>string</type> + </param> + <param> + <name>Variable</name> + <key>variable</key> + <type>raw</type> + </param> + <doc> +This block will create an XMLRPC client. \ +The client will execute the callback on the server when the variable is changed. \ +The callback should be a the name of a function registered on the server. \ +The variable should be an expression containing a the name of a variable in flow graph. + </doc> +</block> diff --git a/grc/data/platforms/python/blocks/xmlrpc_server.xml b/grc/data/platforms/python/blocks/xmlrpc_server.xml new file mode 100644 index 000000000..40e547efc --- /dev/null +++ b/grc/data/platforms/python/blocks/xmlrpc_server.xml @@ -0,0 +1,39 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Simple XMLRPC Server +################################################### + --> +<block> + <name>XMLRPC Server</name> + <key>xmlrpc_server</key> + <import>import SimpleXMLRPCServer</import> + <import>import threading</import> + <make>SimpleXMLRPCServer.SimpleXMLRPCServer(($addr, $port), allow_none=True) +self.$(id).register_instance(self) +threading.Thread(target=self.$(id).serve_forever).start()</make> + <param> + <name>Address</name> + <key>addr</key> + <value>localhost</value> + <type>string</type> + </param> + <param> + <name>Port</name> + <key>port</key> + <value>8080</value> + <type>int</type> + </param> + <doc> +This block will start an XMLRPC server. \ +The server provides access to the run, start, stop, wait functions of the flow graph. \ +The server also provides access to the variable callbacks in the flow graph. \ +Ex: If the variable is called freq, the function provided by the server will be called set_freq(new_freq). + +Example client in python: + +import xmlrpclib +s = xmlrpclib.Server("http://localhost:8080") +s.set_freq(5000) + </doc> +</block> diff --git a/grc/data/platforms/python/default_flow_graph.grc.xml b/grc/data/platforms/python/default_flow_graph.grc.xml new file mode 100644 index 000000000..dea26f3a5 --- /dev/null +++ b/grc/data/platforms/python/default_flow_graph.grc.xml @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Default Flow Graph: +## include an options block and a variable for sample rate +################################################### + --> +<flow_graph> + <block> + <key>options</key> + <param> + <key>id</key> + <value>top_block</value> + </param> + <param> + <key>_coordinate</key> + <value>(10, 10)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>id</key> + <value>samp_rate</value> + </param> + <param> + <key>value</key> + <value>32000</value> + </param> + <param> + <key>_coordinate</key> + <value>(10, 170)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> +</flow_graph> diff --git a/grc/data/platforms/python/flow_graph.tmpl b/grc/data/platforms/python/flow_graph.tmpl new file mode 100644 index 000000000..2341ef46f --- /dev/null +++ b/grc/data/platforms/python/flow_graph.tmpl @@ -0,0 +1,195 @@ +#!/usr/bin/env python +######################################################## +##Cheetah template - gnuradio_python +## +##@param imports the import statements +##@param flow_graph the flow_graph +##@param variables the variable blocks +##@param controls the variables with gui controls +##@param parameters the paramater blocks +##@param blocks the signal blocks +##@param connections the connections +##@param generate_options the type of flow graph +##@param var_id2expr variable id map to expression +##@param var_id2deps variable id map to direct dependencies +##@param var_id2cbs variable id map to callback strings +######################################################## +#import time +#set $DIVIDER = '#'*50 +$DIVIDER +# Gnuradio Python Flow Graph +$('# Title: %s'%$flow_graph.get_option('title')) +$('# Author: %s'%$flow_graph.get_option('author')) +$('# Description: %s'%$flow_graph.get_option('description')) +$('# Generated: %s'%time.ctime()) +$DIVIDER + +######################################################## +##Create Imports +######################################################## +#for $imp in $imports +$imp +#end for + +######################################################## +##Create Class +## Write the class declaration for a top or hier block. +## The parameter names are the arguments to __init__. +## Determine the absolute icon path (wx gui only). +## Setup the IO signature (hier block only). +######################################################## +#set $class_name = $flow_graph.get_option('id') +#set $param_str = ', '.join(['self'] + ['%s=%s'%(param.get_id(), param.get_make()) for param in $parameters]) +#if $generate_options == 'wx_gui' + #from gnuradio.grc.platforms.base.Constants import DATA_DIR + #from gnuradio.grc.gui.Constants import MAIN_WINDOW_PREFIX +class $(class_name)(grc_wxgui.top_block_gui): + + def __init__($param_str): + grc_wxgui.top_block_gui.__init__( + self, + title="$MAIN_WINDOW_PREFIX - Executing: $flow_graph.get_option('title')", + icon="$(os.path.join($DATA_DIR, 'grc-icon-32.png'))", + ) +#elif $generate_options == 'no_gui' +class $(class_name)(gr.top_block): + + def __init__($param_str): + gr.top_block.__init__(self, "$flow_graph.get_option('title')") +#elif $generate_options == 'hb' + #set $in_sig = $flow_graph.get_input_signature() + #set $out_sig = $flow_graph.get_output_signature() +class $(class_name)(gr.hier_block2): + + def __init__($param_str): + gr.hier_block2.__init__( + self, + "$flow_graph.get_option('title')", + gr.io_signature($in_sig.nports, $in_sig.nports, $in_sig.size*$in_sig.vlen), + gr.io_signature($out_sig.nports, $out_sig.nports, $out_sig.size*$out_sig.vlen), + ) +#end if +######################################################## +##Create Parameters +## Set the parameter to a property of self.. +######################################################## +#if $parameters + + $DIVIDER + # Parameters + $DIVIDER +#end if +#for $param in $parameters + self.$param.get_id() = $param.get_id() +#end for +######################################################## +##Create Variables +## Set the variable to a property of self. +## Write the first line of the variable make. +######################################################## +#if $variables + + $DIVIDER + # Variables + $DIVIDER +#end if +#for $var in $variables + #set $code = $var.get_make().splitlines()[0] + self.$var.get_id() = $var.get_id() = $code +#end for +######################################################## +##Create Controls +## Write the variable make (excluding first line). +## Indent each line with 2 tabs. +######################################################## +#if $controls + + $DIVIDER + # Controls + $DIVIDER +#end if +#for $ctrl in $controls + #set $code = '\n\t\t'.join($ctrl.get_make().splitlines()[1:]) + $code +#end for +######################################################## +##Create Blocks +## Write the block make, and indent with 2 tabs. +######################################################## +#if $blocks + + $DIVIDER + # Blocks + $DIVIDER +#end if +#for $blk in filter(lambda b: b.get_make(), $blocks) + #set $code = '\n\t\t'.join($blk.get_make().splitlines()) + $("self.%s = %s"%($blk.get_id(), $code)) +#end for +######################################################## +##Create Connections +## The port name should be the id of the parent block. +## However, port names for IO pads should be self. +######################################################## +#if $connections + + $DIVIDER + # Connections + $DIVIDER +#end if +#for $con in $connections + #set $source = $con.get_source() + #set $sink = $con.get_sink() + #if $source.get_parent().get_key() == 'pad_source' + #set $source_name = 'self' + #else + #set $source_name = 'self.' + $source.get_parent().get_id() + #end if + #if $sink.get_parent().get_key() == 'pad_sink' + #set $sink_name = 'self' + #else + #set $sink_name = 'self.' + $sink.get_parent().get_id() + #end if + $("self.connect((%s, %s), (%s, %s))"%( + $source_name, + $source.get_key(), + $sink_name, + $sink.get_key(), + ) + ) +#end for + +######################################################## +##Create Callbacks +## Write a set method for this variable that calls the callbacks +## and sets the direct variable dependencies. +######################################################## +#for $var in $parameters + $variables + #set $id = $var.get_id() + def set_$(id)(self, $id): + self.$id = $id + #for $dep in $var_id2deps[$id] + self.set_$(dep)($var_id2expr[$dep]) + #end for + #for $callback in $var_id2cbs[$id] + self.$callback + #end for + +#end for +######################################################## +##Create Main +## For top block code, generate a main routine. +## Instantiate the top block and run as gui or cli. +######################################################## +#if $generate_options != 'hb' +if __name__ == '__main__': + tb = $(class_name)() + #if $generate_options == 'wx_gui' + tb.Run() + #elif $generate_options == 'no_gui' + tb.start() + raw_input('Press Enter to quit: ') + tb.stop() + #end if +#end if + |