-
Notifications
You must be signed in to change notification settings - Fork 8
/
cache_v2.json
1 lines (1 loc) · 666 KB
/
cache_v2.json
1
'{"version": "f162a7df", "cached-at": null, "cache": {"/lib/share/gnuradio/grc/blocks/analog.tree.yml": {"cached-at": 1646515617, "data": {"[Core]": [{"Level Controllers": ["analog_agc_xx", "analog_agc2_xx", "analog_agc3_xx", "analog_feedforward_agc_cc", "analog_ctcss_squelch_ff", "analog_pwr_squelch_xx", "analog_simple_squelch_cc", "analog_standard_squelch", "analog_rail_ff"]}, {"Modulators": ["analog_frequency_modulator_fc", "analog_phase_modulator_fc", "analog_quadrature_demod_cf", "analog_nbfm_tx", "analog_nbfm_rx", "analog_wfm_tx", "analog_wfm_rcv", "analog_wfm_rcv_pll", "analog_am_demod_cf", "analog_fm_demod_cf", "analog_fm_deemph", "analog_fm_preemph"]}, {"Waveform Generators": ["analog_sig_source_x", "analog_const_source_x", "analog_noise_source_x", "analog_fastnoise_source_x", "analog_random_source_x", "analog_random_uniform_source_x"]}, {"Synchronizers": ["analog_pll_carriertracking_cc", "analog_pll_freqdet_cf", "analog_pll_refout_cc"]}, {"Peak Detectors": ["analog_dpll_bb"]}, {"Measurement Tools": ["analog_probe_avg_mag_sqrd_x"]}]}}, "/lib/share/gnuradio/grc/blocks/analog_agc2_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_agc2_xx", "label": "AGC2", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "attack_rate", "label": "Attack Rate", "dtype": "real", "default": "1e-1"}, {"id": "decay_rate", "label": "Decay Rate", "dtype": "real", "default": "1e-2"}, {"id": "reference", "label": "Reference", "dtype": "real", "default": "1.0"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1.0"}, {"id": "max_gain", "label": "Max Gain", "dtype": "real", "default": "65536"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.agc2_${type.fcn}(${attack_rate}, ${decay_rate}, ${reference}, ${gain})\\nself.${id}.set_max_gain(${max_gain})", "callbacks": ["set_attack_rate(${attack_rate})", "set_decay_rate(${decay_rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/agc2_${type.fcn}.h>"], "declarations": "analog::agc2_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::agc2_${type.fcn}::make(${attack_rate}, ${decay_rate}, ${reference}, ${gain});\\nthis->${id}->set_max_gain(${max_gain});", "callbacks": ["set_attack_rate(${attack_rate})", "set_decay_rate(${decay_rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_agc3_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_agc3_xx", "label": "AGC3", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex"], "option_attributes": {"fcn": ["cc"]}, "hide": "part"}, {"id": "attack_rate", "label": "Attack Rate", "dtype": "real", "default": "1e-3"}, {"id": "decay_rate", "label": "Decay Rate", "dtype": "real", "default": "1e-4"}, {"id": "reference", "label": "Reference", "dtype": "real", "default": "1.0"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1.0"}, {"id": "max_gain", "label": "Max Gain", "dtype": "real", "default": "65536"}, {"id": "iir_update_decim", "label": "IIR Update Decimation", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.agc3_${type.fcn}(${attack_rate}, ${decay_rate}, ${reference}, ${gain}, ${iir_update_decim})\\nself.${id}.set_max_gain(${max_gain})", "callbacks": ["set_attack_rate(${attack_rate})", "set_decay_rate(${decay_rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/agc3_${type.fcn}.h>"], "declarations": "analog::agc3_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::agc3_${type.fcn}::make(${attack_rate}, ${decay_rate}, ${reference}, ${gain}, ${iir_update_decim});\\nthis->${id}->set_max_gain(${max_gain});", "callbacks": ["set_attack_rate(${attack_rate})", "set_decay_rate(${decay_rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_agc_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_agc_xx", "label": "AGC", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "rate", "label": "Rate", "dtype": "real", "default": "1e-4"}, {"id": "reference", "label": "Reference", "dtype": "real", "default": "1.0"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1.0"}, {"id": "max_gain", "label": "Max Gain", "dtype": "real", "default": "65536"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.agc_${type.fcn}(${rate}, ${reference}, ${gain})\\nself.${id}.set_max_gain(${max_gain})", "callbacks": ["set_rate(${rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/agc_${type.fcn}.h>"], "declarations": "analog::agc_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::agc_${type.fcn}::make(${rate}, ${reference}, ${gain});\\nthis->${id}->set_max_gain(${max_gain});", "callbacks": ["set_rate(${rate})", "set_reference(${reference})", "set_gain(${gain})", "set_max_gain(${max_gain})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_am_demod_cf.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_am_demod_cf", "label": "AM Demod", "flags": ["python"], "parameters": [{"id": "chan_rate", "label": "Channel Rate", "dtype": "real"}, {"id": "audio_decim", "label": "Audio Decimation", "dtype": "int"}, {"id": "audio_pass", "label": "Audio Pass", "dtype": "real", "default": "5000"}, {"id": "audio_stop", "label": "Audio Stop", "dtype": "real", "default": "5500"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "asserts": ["${ audio_pass > 0 }", "${audio_pass < audio_stop }"], "templates": {"imports": "from gnuradio import analog", "make": "analog.am_demod_cf(\\n\\tchannel_rate=${chan_rate},\\n\\taudio_decim=${audio_decim},\\n\\taudio_pass=${audio_pass},\\n\\taudio_stop=${audio_stop},\\n)"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_const_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_const_source_x", "label": "Constant Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"const_type": ["complex", "real", "int", "short", "byte"], "fcn": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "const", "label": "Constant", "dtype": "${ type.const_type }", "default": "0"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.sig_source_${type.fcn}(0, analog.GR_CONST_WAVE, 0, 0, ${const})", "callbacks": ["set_offset(${const})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/sig_source.h>"], "declarations": "analog::sig_source_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::sig_source_${type.fcn}::make(0, analog::GR_CONST_WAVE, 0, 0, ${const});", "callbacks": ["set_offset(${const})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_cpfsk_bc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_cpfsk_bc", "label": "CPFSK", "category": "[Core]/Deprecated", "flags": ["python", "cpp"], "parameters": [{"id": "k", "label": "K", "dtype": "real"}, {"id": "amplitude", "label": "Amplitude", "dtype": "real"}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.cpfsk_bc(${k}, ${amplitude}, ${samples_per_symbol})", "callbacks": ["set_amplitude(${amplitude})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/cpfsk_bc.h>"], "make": "this->${id} = analog::cpfsk_bc::make(${k}, ${amplitude}, ${samples_per_symbol});", "callbacks": ["set_amplitude(${amplitude})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_ctcss_squelch_ff.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_ctcss_squelch_ff", "label": "CTCSS Squelch", "flags": ["python", "cpp"], "parameters": [{"id": "rate", "label": "Sampling Rate (Hz)", "dtype": "real", "default": "samp_rate"}, {"id": "freq", "label": "Tone Frequency", "dtype": "real", "default": "100.0"}, {"id": "level", "label": "Level", "dtype": "real", "default": "0.01"}, {"id": "len", "label": "Length", "dtype": "int", "default": "0"}, {"id": "ramp", "label": "Ramp", "dtype": "int", "default": "0"}, {"id": "gate", "label": "Gate", "dtype": "bool", "default": "False"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.ctcss_squelch_ff(${rate}, ${freq}, ${level}, ${len}, ${ramp}, ${gate})", "callbacks": ["set_level(${level})", "set_frequency(${freq})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/ctcss_squelch_ff.h>"], "make": "this->${id} = analog::ctcss_squelch_ff::make(${rate}, ${freq}, ${level}, ${len}, ${ramp}, ${gate});", "callbacks": ["set_level(${level})", "set_frequency(${freq})"], "link": ["gnuradio::gnuradio-analog"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_dpll_bb.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_dpll_bb", "label": "Detect Peak", "flags": ["python", "cpp"], "parameters": [{"id": "period", "label": "Period", "dtype": "real"}, {"id": "gain", "label": "Gain", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.dpll_bb(${period}, ${gain})", "callbacks": ["set_gain(${gain})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/dpll_bb.h>"], "make": "this->${id} = analog::dpll_bb::make(${period}, ${gain});", "callbacks": ["set_gain(${gain})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_fastnoise_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_fastnoise_source_x", "label": "Fast Noise Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["c", "f", "i", "s"]}, "hide": "part"}, {"id": "noise_type", "label": "Noise Type", "dtype": "raw", "default": "analog.GR_GAUSSIAN", "options": ["analog.GR_UNIFORM", "analog.GR_GAUSSIAN", "analog.GR_LAPLACIAN", "analog.GR_IMPULSE"], "option_labels": ["Uniform", "Gaussian", "Laplacian", "Impulse"]}, {"id": "amp", "label": "Amplitude", "dtype": "real", "default": "1"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "samples", "label": "Variate Pool Size", "dtype": "int", "default": "8192"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.fastnoise_source_${type.fcn}(${noise_type}, ${amp}, ${seed}, ${samples})", "callbacks": ["set_type(${noise_type})", "set_amplitude(${amp})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/fastnoise_source.h>"], "make": "this->${id} = analog::fastnoise_source_${type.fcn}::make(${noise_type}, ${amp}, ${seed}, ${samples});", "callbacks": ["set_type(${noise_type})", "set_amplitude(${amp})"], "link": ["gnuradio::gnuradio-analog"], "translations": {"analog\\\\.": "analog::"}}, "documentation": "The fast noise source works by pre-generating a pool of random variates taken from the specified distribution. At runtime, samples are then uniform randomly chosen from this pool which is a very fast operation.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_feedforward_agc_cc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_feedforward_agc_cc", "label": "Feed Forward AGC", "flags": ["python", "cpp"], "parameters": [{"id": "num_samples", "label": "Num Samples", "dtype": "int", "default": "1024"}, {"id": "reference", "label": "Reference", "dtype": "real", "default": "1.0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.feedforward_agc_cc(${num_samples}, ${reference})"}, "cpp_templates": {"includes": ["#include <gnuradio/analog/feedforward_agc_cc.h>"], "make": "this->${id} = analog::feedforward_agc_cc::make(${num_samples}, ${reference});", "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_fm_deemph.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_fm_deemph", "label": "FM Deemphasis", "flags": ["python"], "parameters": [{"id": "samp_rate", "label": "Sample Rate", "dtype": "real"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.fm_deemph(fs=${samp_rate}, tau=${tau})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_fm_demod_cf.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_fm_demod_cf", "label": "FM Demod", "flags": ["python"], "parameters": [{"id": "chan_rate", "label": "Channel Rate", "dtype": "real"}, {"id": "audio_decim", "label": "Audio Decimation", "dtype": "int"}, {"id": "deviation", "label": "Deviation", "dtype": "real", "default": "75000"}, {"id": "audio_pass", "label": "Audio Pass", "dtype": "real", "default": "15000"}, {"id": "audio_stop", "label": "Audio Stop", "dtype": "real", "default": "16000"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1.0"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.fm_demod_cf(\\n\\tchannel_rate=${chan_rate},\\n\\taudio_decim=${audio_decim},\\n\\tdeviation=${deviation},\\n\\taudio_pass=${audio_pass},\\n\\taudio_stop=${audio_stop},\\n\\tgain=${gain},\\n\\ttau=${tau},\\n)"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_fm_preemph.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_fm_preemph", "label": "FM Preemphasis", "flags": ["python"], "parameters": [{"id": "samp_rate", "label": "Sample Rate", "dtype": "real"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}, {"id": "fh", "label": "High Corner Freq", "dtype": "real", "default": "-1.0"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.fm_preemph(fs=${samp_rate}, tau=${tau}, fh=${fh})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_fmdet_cf.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_fmdet_cf", "label": "FM Detector", "flags": ["python"], "parameters": [{"id": "samplerate", "label": "Sample rate", "dtype": "real"}, {"id": "freq_low", "label": "Lowest frequency", "dtype": "real"}, {"id": "freq_high", "label": "Highest frequency", "dtype": "real"}, {"id": "scl", "label": "Scale factor", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.fmdet_cf(\\n\\tsamplerate=${samplerate},\\n\\tfreq_low=${freq_low},\\n\\tfreq_high=${freq_high},\\n\\tscl=${scl}\\n)"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_frequency_modulator_fc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_frequency_modulator_fc", "label": "Frequency Mod", "flags": ["python", "cpp"], "parameters": [{"id": "sensitivity", "label": "Sensitivity", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.frequency_modulator_fc(${sensitivity})", "callbacks": ["set_sensitivity(${sensitivity})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/frequency_modulator_fc.h>"], "declarations": "gr::analog::frequency_modulator_fc::sptr ${id};", "make": "this->${id} = analog::frequency_modulator_fc::make(${sensitivity});", "callbacks": ["set_sensitivity(${sensitivity})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_nbfm_rx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_nbfm_rx", "label": "NBFM Receive", "flags": ["python"], "parameters": [{"id": "audio_rate", "label": "Audio Rate", "dtype": "int"}, {"id": "quad_rate", "label": "Quadrature Rate", "dtype": "int"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}, {"id": "max_dev", "label": "Max Deviation", "dtype": "real", "default": "5e3"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "asserts": ["${ (quad_rate)%(audio_rate) == 0 }"], "templates": {"imports": "from gnuradio import analog", "make": "analog.nbfm_rx(\\n\\taudio_rate=${audio_rate},\\n\\tquad_rate=${quad_rate},\\n\\ttau=${tau},\\n\\tmax_dev=${max_dev},\\n )", "callbacks": ["set_max_deviation(${max_dev})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_nbfm_tx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_nbfm_tx", "label": "NBFM Transmit", "flags": ["python"], "parameters": [{"id": "audio_rate", "label": "Audio Rate", "dtype": "int"}, {"id": "quad_rate", "label": "Quadrature Rate", "dtype": "int"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}, {"id": "max_dev", "label": "Max Deviation", "dtype": "real", "default": "5e3"}, {"id": "fh", "label": "Preemphasis High Corner Freq", "dtype": "real", "default": "-1.0"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "asserts": ["${ (quad_rate)%(audio_rate) == 0 }"], "templates": {"imports": "from gnuradio import analog", "make": "analog.nbfm_tx(\\n\\taudio_rate=${audio_rate},\\n\\tquad_rate=${quad_rate},\\n\\ttau=${tau},\\n\\tmax_dev=${max_dev},\\n\\tfh=${fh},\\n )", "callbacks": ["set_max_deviation(${max_dev})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_noise_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_noise_source_x", "label": "Noise Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["c", "f", "i", "s"]}, "hide": "part"}, {"id": "noise_type", "label": "Noise Type", "dtype": "raw", "default": "analog.GR_GAUSSIAN", "options": ["analog.GR_UNIFORM", "analog.GR_GAUSSIAN", "analog.GR_LAPLACIAN", "analog.GR_IMPULSE"], "option_labels": ["Uniform", "Gaussian", "Laplacian", "Impulse"]}, {"id": "amp", "label": "Amplitude", "dtype": "real", "default": "1"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.noise_source_${type.fcn}(${noise_type}, ${amp}, ${seed})", "callbacks": ["set_type(${noise_type})", "set_amplitude(${amp})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/noise_source.h>"], "declarations": "analog::noise_source_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::noise_source_${type.fcn}::make(${noise_type}, ${amp}, ${seed});", "callbacks": ["set_type(${noise_type})", "set_amplitude(${amp})"], "link": ["gnuradio::gnuradio-analog"], "translations": {"analog\\\\.": "analog::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_phase_modulator_fc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_phase_modulator_fc", "label": "Phase Mod", "flags": ["python", "cpp"], "parameters": [{"id": "sensitivity", "label": "Sensitivity", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.phase_modulator_fc(${sensitivity})", "callbacks": ["set_sensitivity(${sensitivity})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/phase_modulator_fc.h>"], "make": "this->${id} = analog::phase_modulator_fc::make(${sensitivity});", "link": ["gnuradio::gnuradio-analog"], "callbacks": ["set_sensitivity(${sensitivity})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_pll_carriertracking_cc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_pll_carriertracking_cc", "label": "PLL Carrier Tracking", "flags": ["python", "cpp"], "parameters": [{"id": "w", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "min_freq", "label": "Min Phase/sample", "dtype": "real"}, {"id": "max_freq", "label": "Max Phase/sample", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.pll_carriertracking_cc(${w}, ${max_freq}, ${min_freq})", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/pll_carriertracking_${type.fcn}.h>"], "make": "this->${id} = analog::pll_carriertracking_cc::make(${w}, ${max_freq}, ${min_freq});", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_pll_freqdet_cf.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_pll_freqdet_cf", "label": "PLL Frequency Detector", "flags": ["python", "cpp"], "parameters": [{"id": "w", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "min_freq", "label": "Min Phase/sample", "dtype": "real"}, {"id": "max_freq", "label": "Max Phase/sample", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.pll_freqdet_cf(${w}, ${max_freq}, ${min_freq})", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/pll_freqdet_cf.h>"], "make": "this->${id} = analog::pll_freqdet_cf::make(${w}, ${max_freq}, ${min_freq});", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_pll_refout_cc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_pll_refout_cc", "label": "PLL Carrier Regeneration", "flags": ["python", "cpp"], "parameters": [{"id": "w", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "min_freq", "label": "Min Phase/sample", "dtype": "real"}, {"id": "max_freq", "label": "Max Phase/sample", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.pll_refout_cc(${w}, ${max_freq}, ${min_freq})", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/pll_refout_cc.h>"], "make": "this->${id} = analog::pll_refout_cc::make(${w}, ${max_freq}, ${min_freq});", "callbacks": ["set_loop_bandwidth(${w})", "set_max_freq(${max_freq})", "set_min_freq(${min_freq})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_probe_avg_mag_sqrd_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_probe_avg_mag_sqrd_x", "label": "Probe Avg Mag^2", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["c", "f", "cf"], "option_labels": ["Complex", "Float", "Complex->Float"], "option_attributes": {"hide": ["all", "all", "none"], "input": ["complex", "float", "complex"], "optional": ["1", "1", "0"]}, "hide": "part"}, {"id": "threshold", "label": "Threshold (dB)", "dtype": "real", "default": "0"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "float", "optional": true, "hide": "${ type.hide }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.probe_avg_mag_sqrd_${type}(${threshold}, ${alpha})", "callbacks": ["set_alpha(${alpha})", "set_threshold(${threshold})", "reset()"]}, "documentation": "Available functions to probe: level()\\n\\nUse with the function probe block.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_pwr_squelch_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_pwr_squelch_xx", "label": "Power Squelch", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "threshold", "label": "Threshold (dB)", "dtype": "real"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "1e-4"}, {"id": "ramp", "label": "Ramp", "dtype": "int", "default": "0"}, {"id": "gate", "label": "Gate", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"]}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.pwr_squelch_${type.fcn}(${threshold}, ${alpha}, ${ramp}, ${gate})", "callbacks": ["set_threshold(${threshold})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/pwr_squelch_${type.fcn}.h>"], "make": "this->${id} = analog::pwr_squelch_${type.fcn}::make(${threshold}, ${alpha}, ${ramp}, ${gate});", "callbacks": ["set_threshold(${threshold})", "set_alpha(${alpha})"], "link": ["gnuradio::gnuradio-analog"], "translations": {"true": true, "false": false}}, "documentation": "This will either pass the input unchanged or block it, depending on\\nwhether its envelope is over a certain threshold. The envelope is calculated\\nby taking the squared magnitude of the signal and lowpassing it with a\\nsingle pole IIR filter (with the specified alpha).\\n\\nThe ramp parameter specifies the attack / release time, in samples.\\nA sinusodial ramp is used to progressively mute / unmute the input.\\nIf ramp is set to 0, input is muted / unmuted without a ramp.\\n\\nFor realtime applications you\'ll want to set the gate parameter to\\nfalse, which produces zeros when the input is muted. If it is true,\\nthe block will stop producing samples when in muted state.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_quadrature_demod_cf.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_quadrature_demod_cf", "label": "Quadrature Demod", "flags": ["python"], "parameters": [{"id": "gain", "label": "Gain", "dtype": "real", "default": "samp_rate/(2*math.pi*fsk_deviation_hz)"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog\\nimport math", "make": "analog.quadrature_demod_cf(${gain})", "callbacks": ["set_gain(${gain})"]}, "documentation": "This can be used to demod FM, FSK, GMSK, etc. The input is complex\\nbaseband, output is the signal frequency in relation to the sample\\nrate, multiplied with the gain.\\n\\nMathematically, this block calculates the product of the one-sample\\ndelayed input and the conjugate undelayed signal, and then calculates\\nthe argument of the resulting complex number:\\n\\ny[n] = \\\\mathrm{arg}\\\\left(x[n] \\\\, \\\\bar x [n-1]\\\\right).\\n\\nLet x be a complex sinusoid with amplitude A>0, (absolute)\\nfrequency f\\\\in\\\\mathbb R and phase \\\\phi_0\\\\in[0;2\\\\pi] sampled at\\nf_s>0 so, without loss of generality,\\n\\nx[n]= A e^{j2\\\\pi( \\\\frac f{f_s} n + \\\\phi_0)}\\\\f\\n\\nthen\\n\\ny[n] = \\\\mathrm{arg}\\\\left(A e^{j2\\\\pi\\\\left( \\\\frac f{f_s} n + \\\\phi_0\\\\right)} \\\\overline{A e^{j2\\\\pi( \\\\frac f{f_s} (n-1) + \\\\phi_0)}}\\\\right)\\\\ = \\\\mathrm{arg}\\\\left(A^2 e^{j2\\\\pi\\\\left( \\\\frac f{f_s} n + \\\\phi_0\\\\right)} e^{-j2\\\\pi( \\\\frac f{f_s} (n-1) + \\\\phi_0)}\\\\right)\\\\ = \\\\mathrm{arg}\\\\left( A^2 e^{j2\\\\pi\\\\left( \\\\frac f{f_s} n + \\\\phi_0 - \\\\frac f{f_s} (n-1) - \\\\phi_0\\\\right)}\\\\right)\\\\ = \\\\mathrm{arg}\\\\left( A^2 e^{j2\\\\pi\\\\left( \\\\frac f{f_s} n - \\\\frac f{f_s} (n-1)\\\\right)}\\\\right)\\\\ = \\\\mathrm{arg}\\\\left( A^2 e^{j2\\\\pi\\\\left( \\\\frac f{f_s} \\\\left(n-(n-1)\\\\right)\\\\right)}\\\\right)\\\\ = \\\\mathrm{arg}\\\\left( A^2 e^{j2\\\\pi \\\\frac f{f_s}}\\\\right) \\\\intertext{$A$ is real, so is $A^2$ and hence only \\\\textit{scales}, therefore $\\\\mathrm{arg}(\\\\cdot)$ is invariant:} = \\\\mathrm{arg}\\\\left(e^{j2\\\\pi \\\\frac f{f_s}}\\\\right)\\\\= \\\\frac f{f_s}\\\\\\\\", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_rail_ff.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_rail_ff", "label": "Rail", "flags": ["python", "cpp"], "parameters": [{"id": "lo", "label": "Low clipping", "dtype": "real"}, {"id": "hi", "label": "Hi clipping", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.rail_ff(${lo}, ${hi})", "callbacks": ["set_lo(${lo})", "set_hi(${hi})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/rail_ff.h>"], "make": "this->${id} = analog::rail_ff::make(${lo}, ${hi});", "callbacks": ["set_lo(${lo})", "set_hi(${hi})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_random_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_random_source_x", "label": "Random Source", "flags": ["python"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["i", "s", "b"]}, "hide": "part"}, {"id": "min", "label": "Minimum", "dtype": "int", "default": "0"}, {"id": "max", "label": "Maximum", "dtype": "int", "default": "2"}, {"id": "num_samps", "label": "Num Samples", "dtype": "int", "default": "1000"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks\\nimport numpy", "make": "blocks.vector_source_${type.fcn}(list(map(int, numpy.random.randint(${min}, ${max}, ${num_samps}))), ${repeat})"}, "documentation": "Generate num samples of random numbers of [min, max). Repeat samples if specified.\\n\\nEx: With min=0 and max=2, the sequence 01110101... will be generated.\\n\\nThis block wraps Vector Source, i.e. it creates a vector source using a vector filled with values returned from calling np.random.randint(min, max, num_samps) once\\n\\nIf you would like a traditional random number generator, use Random Uniform Source instead", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_random_uniform_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_random_uniform_source_x", "label": "Random Uniform Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["i", "s", "b"], "offset_type": ["int", "int", "int"]}, "hide": "part"}, {"id": "minimum", "label": "Minimum", "dtype": "int"}, {"id": "maximum", "label": "Maximum", "dtype": "int"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.random_uniform_source_${type.fcn}(${minimum}, ${maximum}, ${seed})"}, "cpp_templates": {"includes": ["#include <gnuradio/analog/random_uniform_source.h>"], "declarations": "analog::random_uniform_source_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::random_uniform_source_${type.fcn}::make(${minimum}, ${maximum}, ${seed});", "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_sig_source_x.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_sig_source_x", "label": "Signal Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"], "offset_type": ["complex", "real", "int", "short", "byte"]}, "hide": "part"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "waveform", "label": "Waveform", "dtype": "raw", "default": "analog.GR_COS_WAVE", "options": ["analog.GR_CONST_WAVE", "analog.GR_SIN_WAVE", "analog.GR_COS_WAVE", "analog.GR_SQR_WAVE", "analog.GR_TRI_WAVE", "analog.GR_SAW_WAVE"], "option_labels": ["Constant", "Sine", "Cosine", "Square", "Triangle", "Saw Tooth"]}, {"id": "freq", "label": "Frequency", "dtype": "real", "default": "1000"}, {"id": "amp", "label": "Amplitude", "dtype": "real", "default": "1"}, {"id": "offset", "label": "Offset", "dtype": "${ type.offset_type }", "default": "0"}, {"id": "phase", "label": "Initial Phase (Radians)", "dtype": "real", "default": "0"}], "inputs": [{"domain": "message", "id": "cmd", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.sig_source_${type.fcn}(${samp_rate}, ${waveform}, ${freq}, ${amp}, ${offset}, ${phase})", "callbacks": ["set_sampling_freq(${samp_rate})", "set_waveform(${waveform})", "set_frequency(${freq})", "set_amplitude(${amp})", "set_offset(${offset})", "set_phase(${phase})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/sig_source.h>"], "declarations": "analog::sig_source_${type.fcn}::sptr ${id};", "make": "this->${id} = analog::sig_source_${type.fcn}::make(${samp_rate}, ${waveform}, ${freq}, ${amp}, ${offset},${phase});", "callbacks": ["set_sampling_freq(${samp_rate})", "set_waveform(${waveform})", "set_frequency(${freq})", "set_amplitude(${amp})", "set_offset(${offset})", "set_phase(${phase})"], "link": ["gnuradio::gnuradio-analog"], "translations": {"analog\\\\.": "analog::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_simple_squelch_cc.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_simple_squelch_cc", "label": "Simple Squelch", "flags": ["python", "cpp"], "parameters": [{"id": "threshold", "label": "Threshold (dB)", "dtype": "real"}, {"id": "alpha", "label": "Alpha", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.simple_squelch_cc(${threshold}, ${alpha})", "callbacks": ["set_threshold(${threshold})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/analog/simple_squelch_cc.h>"], "make": "this->${id} = analog::simple_squelch_cc::make(${threshold}, ${alpha});", "callbacks": ["set_threshold(${threshold})", "set_alpha(${alpha})"], "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_standard_squelch.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_standard_squelch", "label": "Standard Squelch", "flags": ["python"], "parameters": [{"id": "audio_rate", "label": "Audio Rate", "dtype": "real"}, {"id": "threshold", "label": "Threshold", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.standard_squelch(audio_rate=${audio_rate})\\nself.${id}.set_threshold(${threshold})", "callbacks": ["set_threshold(${threshold})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_wfm_rcv.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_wfm_rcv", "label": "WBFM Receive", "flags": ["python"], "parameters": [{"id": "quad_rate", "label": "Quadrature Rate", "dtype": "real"}, {"id": "audio_decimation", "label": "Audio Decimation", "dtype": "int"}, {"id": "deemph_tau", "label": "Deemphasis Tau", "dtype": "real", "default": "75e-6"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.wfm_rcv(\\n\\tquad_rate=${quad_rate},\\n\\taudio_decimation=${audio_decimation},\\n\\tdeemph_tau=${deemph_tau},\\n)"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_wfm_rcv_pll.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_wfm_rcv_pll", "label": "WBFM Receive PLL", "flags": ["python"], "parameters": [{"id": "quad_rate", "label": "Quadrature Rate", "dtype": "real"}, {"id": "audio_decimation", "label": "Audio Decimation", "dtype": "int"}, {"id": "deemph_tau", "label": "Deemphasis Tau", "dtype": "real", "default": "75e-6"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"label": "Lout", "domain": "stream", "dtype": "float"}, {"label": "Rout", "domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import analog", "make": "analog.wfm_rcv_pll(\\n\\tdemod_rate=${quad_rate},\\n\\taudio_decimation=${audio_decimation},\\n\\tdeemph_tau=${deemph_tau},\\n)"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/analog_wfm_tx.block.yml": {"cached-at": 1646515617, "data": {"id": "analog_wfm_tx", "label": "WBFM Transmit", "flags": ["python", "cpp"], "parameters": [{"id": "audio_rate", "label": "Audio Rate", "dtype": "int"}, {"id": "quad_rate", "label": "Quadrature Rate", "dtype": "int"}, {"id": "tau", "label": "Tau", "dtype": "real", "default": "75e-6"}, {"id": "max_dev", "label": "Max Deviation", "dtype": "real", "default": "75e3"}, {"id": "fh", "label": "Preemphasis High Corner Freq", "dtype": "real", "default": "-1.0"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "asserts": ["${ (quad_rate)%(audio_rate) == 0 }"], "templates": {"imports": "from gnuradio import analog", "make": "analog.wfm_tx(\\n\\taudio_rate=${audio_rate},\\n\\tquad_rate=${quad_rate},\\n\\ttau=${tau},\\n\\tmax_dev=${max_dev},\\n\\tfh=${fh},\\n)"}, "cpp_templates": {"includes": ["#include <gnuradio/analog/frequency_modulator_fc.h>", "#include <gnuradio/math.h>"], "declarations": "gr::analog::frequency_modulator_fc::sptr ${id};", "make": "this->${id} = gr::analog::frequency_modulator_fc::make(2 * (GR_M_PI) * ${max_dev} / ${quad_rate});", "link": ["gnuradio::gnuradio-analog"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks.tree.yml": {"cached-at": 1646515617, "data": {"[Core]": [{"Audio": ["blocks_wavfile_source", "blocks_wavfile_sink"]}, {"Boolean Operators": ["blocks_and_xx", "blocks_and_const_xx", "blocks_not_xx", "blocks_or_xx", "blocks_xor_xx"]}, {"Byte Operators": ["blocks_packed_to_unpacked_xx", "blocks_unpacked_to_packed_xx", "blocks_pack_k_bits_bb", "blocks_unpack_k_bits_bb", "blocks_repack_bits_bb"]}, {"Control Port": ["blocks_ctrlport_monitor", "blocks_ctrlport_monitor_performance", "blocks_ctrlport_probe2_x", "blocks_ctrlport_probe2_c", "blocks_ctrlport_probe_c"]}, {"Debug Tools": ["blocks_vector_sink_x", "blocks_tag_debug", "blocks_message_debug", "blocks_message_strobe", "blocks_message_strobe_random", "blocks_tags_strobe", "blocks_test_tag_variable_rate_ff"]}, {"File Operators": ["blocks_wavfile_source", "blocks_wavfile_sink", "blocks_file_source", "blocks_file_sink", "blocks_file_descriptor_source", "blocks_file_descriptor_sink", "blocks_file_meta_source", "blocks_file_meta_sink", "blocks_tagged_file_sink", "blocks_sigmf_source_minimal", "blocks_sigmf_sink_minimal"]}, {"IQ Correction": ["blocks_correctiq_auto", "blocks_correctiq_man", "blocks_swapiq", "blocks_correctiq"]}, {"Level Controllers": ["blocks_mute_xx", "blocks_sample_and_hold_xx", "blocks_moving_average_xx", "blocks_threshold_ff"]}, {"Math Operators": ["blocks_abs_xx", "blocks_add_xx", "blocks_add_const_vxx", "blocks_divide_xx", "blocks_exponentiate_const_cci", "blocks_multiply_xx", "blocks_multiply_const_xx", "blocks_multiply_const_vxx", "blocks_multiply_conjugate_cc", "blocks_multiply_matrix_xx", "blocks_multiply_by_tag_value_cc", "blocks_sub_xx", "blocks_conjugate_cc", "blocks_integrate_xx", "blocks_nlog10_ff", "blocks_rms_xx", "blocks_rotator_cc", "blocks_transcendental", "blocks_argmax_xx", "blocks_max_xx", "blocks_min_xx"]}, {"Measurement Tools": ["blocks_message_debug", "blocks_tag_debug", "blocks_probe_signal_x", "blocks_probe_signal_vx", "blocks_probe_rate", "blocks_ctrlport_probe2_c", "blocks_ctrlport_probe_c"]}, {"Message Tools": ["blocks_message_strobe", "blocks_message_strobe_random", "blocks_message_debug", "blocks_tagged_stream_multiply_length", "blocks_var_to_msg", "blocks_msgpair_to_var", "blocks_msg_meta_to_pair"]}, {"Misc": ["blocks_throttle", "blocks_vector_source_x", "blocks_head", "blocks_skiphead", "blocks_delay", "blocks_null_source", "blocks_null_sink", "blocks_copy", "blocks_selector", "blocks_nop", "blocks_phase_shift", "xmlrpc_server", "xmlrpc_client"]}, {"Modulators": ["blocks_vco_f", "blocks_vco_c"]}, {"Peak Detectors": ["blocks_burst_tagger", "blocks_peak_detector_xb", "blocks_peak_detector2_fb", "blocks_plateau_detector_fb"]}, {"Stream Operators": ["blocks_deinterleave", "blocks_interleave", "blocks_keep_m_in_n", "blocks_keep_one_in_n", "blocks_stream_demux", "blocks_stream_mux", "blocks_stream_to_streams", "blocks_stream_to_vector", "blocks_streams_to_stream", "blocks_streams_to_vector", "blocks_stream_to_vector_decimator", "blocks_vector_to_stream", "blocks_vector_to_streams", "blocks_matrix_interleaver", "blocks_patterned_interleaver", "blocks_endian_swap", "blocks_vector_insert_x", "blocks_tagged_stream_mux", "blocks_repeat", "blocks_regenerate_bb", "blocks_stretch_ff"]}, {"Stream Tag Tools": ["blocks_tag_debug", "blocks_tag_gate", "blocks_tag_share", "blocks_tagged_file_sink", "blocks_tagged_stream_mux", "blocks_tagged_stream_align", "blocks_stream_to_tagged_stream", "blocks_test_tag_variable_rate_ff"]}, {"Type Converters": ["blocks_char_to_float", "blocks_char_to_short", "blocks_complex_to_interleaved_char", "blocks_complex_to_interleaved_short", "blocks_complex_to_float", "blocks_complex_to_magphase", "blocks_complex_to_imag", "blocks_complex_to_real", "blocks_complex_to_mag", "blocks_complex_to_mag_squared", "blocks_complex_to_arg", "blocks_float_to_char", "blocks_float_to_complex", "blocks_magphase_to_complex", "blocks_float_to_int", "blocks_float_to_short", "blocks_float_to_uchar", "blocks_int_to_float", "blocks_interleaved_short_to_complex", "blocks_interleaved_char_to_complex", "blocks_short_to_char", "blocks_short_to_float", "blocks_uchar_to_float"]}, {"Waveform Generators": ["blocks_vco_f", "blocks_vco_c"]}, {"Variables": ["variable_tag_object"]}]}}, "/lib/share/gnuradio/grc/blocks/blocks_abs_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_abs_xx", "label": "Abs", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "float"], "option_attributes": {"fcn": ["ii", "ss", "ff"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.abs_${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/abs_blk.h>"], "declarations": "blocks::abs_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::abs_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_add_const_vxx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_add_const_vxx", "label": "Add Const", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"vconst_type": ["complex_vector", "real_vector", "int_vector", "int_vector", "int_vector"], "const_type": ["complex", "real", "int", "int", "int"], "fcn": ["cc", "ff", "ii", "ss", "bb"]}, "hide": "part"}, {"id": "const", "label": "Constant", "dtype": "${ type.const_type if vlen == 1 else type.vconst_type }", "default": "0"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }", "${ (vlen > 1 and len(const) == vlen) or (vlen == 1) }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.add_const_${ \'v\' if context.get(\'vlen\')() > 1 else \'\' }${type.fcn}(${const})", "callbacks": ["set_k(${const})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/add_const_${\\"v\\" if context.get(\\"vlen\\")() > 1 else \\"\\"}.h>"], "declarations": "blocks::add_const_${\\"v\\" if context.get(\\"vlen\\")() > 1 else \\"\\"}${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::add_const_${\\"v\\" if context.get(\\"vlen\\")() > 1 else \\"\\"}${type.fcn}::make(${const});", "callbacks": ["set_k(${const})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_add_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_add_xx", "label": "Add", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_inputs > 1 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.add_v${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/add_blk.h>"], "declarations": "blocks::add_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::add_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_and_const_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_and_const_xx", "label": "And Const", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "const", "label": "Constant", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.and_const_${type.fcn}(${const})", "callbacks": ["set_k(${const})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/and_const.h>"], "declarations": "blocks::and_const_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::and_const_${type.fcn}::make(${const});", "callbacks": ["set_k(${const})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_and_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_and_xx", "label": "And", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "asserts": ["${ num_inputs >= 2 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.and_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/and_blk.h>"], "declarations": "blocks::and_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::and_${type.fcn}::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_argmax_xx.block.yml": {"cached-at": 1646515617, "data": {"id": "blocks_argmax_xx", "label": "Argmax", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["float", "int", "short"], "option_attributes": {"fcn": ["fs", "is", "dd"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"label": "max_vec", "domain": "stream", "dtype": "short"}, {"label": "max_inp", "domain": "stream", "dtype": "short"}], "asserts": ["${ num_inputs >= 1 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.argmax_${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/argmax.h>"], "declarations": "blocks::argmax_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::argmax_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_burst_tagger.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_burst_tagger", "label": "Burst Tagger", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Stream Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "true_key", "label": "True KeyID", "dtype": "string", "default": "burst"}, {"id": "true_value", "label": "True Value", "dtype": "bool", "default": "True"}, {"id": "false_key", "label": "False KeyID", "dtype": "string", "default": "burst"}, {"id": "false_value", "label": "False Value", "dtype": "bool", "default": "False"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": 1}, {"label": "trigger", "domain": "stream", "dtype": "short", "vlen": 1}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": 1}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.burst_tagger(${type.size})\\nself.${id}.set_true_tag(${true_key},${true_value})\\nself.${id}.set_false_tag(${false_key},${false_value})", "callbacks": ["set_true_tag(${true_key},${true_value})", "set_false_tag(${false_key},${false_value})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/burst_tagger.h>"], "declarations": "blocks::burst_tagger::sptr ${id};", "make": "this->${id} = blocks::burst_tagger::make(${type.size};\\nthis->${id}.set_true_tag(${true_key},${true_value});\\nthis->${id}.set_false_tag(${false_key},${false_value});\\n\\t", "callbacks": ["set_true_tag(${true_key},${true_value})", "set_false_tag(${false_key},${false_value})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_char_to_float.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_char_to_float", "label": "Char To Float", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.char_to_float(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/char_to_float.h>"], "declarations": "blocks::char_to_float::sptr ${id};", "make": "this->${id} = blocks::char_to_float::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_char_to_short.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_char_to_short", "label": "Char To Short", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.char_to_short(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/char_to_short.h>"], "declarations": "blocks::char_to_short::sptr ${id};", "make": "this->${id} = blocks::char_to_short::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_arg.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_arg", "label": "Complex to Arg", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_arg(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_arg.h>"], "declarations": "blocks::complex_to_arg::sptr ${id};", "make": "this->${id} = blocks::complex_to_arg::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_float.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_float", "label": "Complex To Float", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"label": "re", "domain": "stream", "dtype": "float", "vlen": "${ vlen }"}, {"label": "im", "domain": "stream", "dtype": "float", "vlen": "${ vlen }", "optional": true}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_float(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_float.h>"], "declarations": "blocks::complex_to_float::sptr ${id};", "make": "this->${id} = blocks::complex_to_float::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_imag.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_imag", "label": "Complex to Imag", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_imag(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_imag.h>"], "declarations": "blocks::complex_to_imag::sptr ${id};", "make": "this->${id} = blocks::complex_to_imag::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_interleaved_char.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_interleaved_char", "label": "Complex To IChar", "flags": ["python", "cpp"], "parameters": [{"id": "scale_factor", "label": "Scale Factor", "dtype": "float", "default": "1.0"}, {"id": "vector_output", "label": "Vector Output", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "option_attributes": {"vlen": [1, 2]}}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vector_output.vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_interleaved_char(${vector_output}, ${scale_factor})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_interleaved_char.h>"], "declarations": "blocks::complex_to_interleaved_char::sptr ${id};", "make": "this->${id} = blocks::complex_to_interleaved_char::make(${vector_output});", "translations": {"True": "true", "False": "false"}}, "documentation": "This block converts a complex sample to interleaved IQ bytes. \\nThe default scale factor is 1.0 for backward compatibility, however if \\nthe outputs should be signed voltage style bytes (-127 to 127) the scale factor\\nshould be set to 127.0 (SCHAR_MAX). \\n\\nAlso note that this block can inherently cause a loss of precision as it\\nmaps the scaled inputs to integer outputs using an lrintf function. So\\nif you overlay a complex-to-ichar into a ichar-to-complex and overlay it\\non the original signal, you can notice variation due to the integer\\nrounding.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_interleaved_short.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_interleaved_short", "label": "Complex To IShort", "flags": ["python", "cpp"], "parameters": [{"id": "scale_factor", "label": "Scale Factor", "dtype": "float", "default": "1.0"}, {"id": "vector_output", "label": "Vector Output", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "option_attributes": {"vlen": [1, 2]}}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vector_output.vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_interleaved_short(${vector_output},${scale_factor})", "callbacks": ["set_scale_factor(${scale_factor})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_interleaved_short.h>"], "declarations": "blocks::complex_to_interleaved_short::sptr ${id};", "make": "this->${id} = blocks::complex_to_interleaved_short::make(${vector_output});", "callbacks": ["set_scale_factor(${scale_factor})"], "translations": {"True": "true", "False": "false"}}, "documentation": "This block converts a complex sample to interleaved IQ 16-bit values. \\nThe default scale factor is 1.0 for backward compatibility, however if \\nthe outputs should be signed voltage style, some care needs to be taken \\nwith the scale factor. For a 12-bit output (-2047 to 2047), the \\nscale factor should be 2047.0. For a full 16-bit output, the \\nscale factor should be 32767.0.\\n\\nAlso note that this block can inherently cause a loss of precision as it\\nmaps the scaled inputs to integer outputs using an lrintf function. So\\nif you overlay a complex-to-ishort into a ishort-to-complex and overlay it\\non the original signal, you can notice variation due to the integer\\nrounding.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_mag.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_mag", "label": "Complex to Mag", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_mag(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_mag.h>"], "declarations": "blocks::complex_to_mag::sptr ${id};", "make": "this->${id} = blocks::complex_to_mag::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_mag_squared.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_mag_squared", "label": "Complex to Mag^2", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_mag_squared(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_mag_squared.h>"], "declarations": "blocks::complex_to_mag_squared::sptr ${id};", "make": "this->${id} = blocks::complex_to_mag_squared::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_magphase.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_magphase", "label": "Complex To Mag Phase", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"label": "mag", "domain": "stream", "dtype": "float", "vlen": "${ vlen }"}, {"label": "phase", "domain": "stream", "dtype": "float", "vlen": "${ vlen }", "optional": true}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_magphase(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_magphase.h>"], "declarations": "blocks::complex_to_magphase::sptr ${id};", "make": "this->${id} = blocks::complex_to_magphase::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_complex_to_real.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_complex_to_real", "label": "Complex To Real", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"label": "re", "domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.complex_to_real(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/complex_to_real.h>"], "declarations": "blocks::complex_to_real::sptr ${id};", "make": "this->${id} = blocks::complex_to_real::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_conjugate_cc.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_conjugate_cc", "label": "Complex Conjugate", "flags": ["python", "cpp"], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.conjugate_cc()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/conjugate_cc.h>"], "declarations": "blocks::conjugate_cc::sptr ${id};", "make": "this->${id} = blocks::conjugate_cc::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_copy.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_copy", "label": "Copy", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "enabled", "label": "Enabled", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Enabled", "Disabled"]}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}, {"domain": "message", "id": "en", "optional": true, "hide": "${ not showports }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.copy(${type.size}*${vlen})\\nself.${id}.set_enabled(${enabled})", "callbacks": ["set_enabled(${enabled})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/copy.h>"], "declarations": "blocks::copy::sptr ${id};", "make": "this->${id} = blocks::copy::make(${type.size}*${vlen});\\nself->${id}.set_enabled(${enabled});", "callbacks": ["set_enabled(${enabled})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_correctiq.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_correctiq", "label": "Remove DC Spike", "category": "[Core]/IQ Correction", "templates": {"imports": "from gnuradio import blocks", "make": "blocks.correctiq(${})"}, "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "documentation": "This block to removes that center frequency IQ DC spike with an IIR filter.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_correctiq_auto.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_correctiq_auto", "label": "Remove DC Spike AutoSync", "category": "[Core]/IQ Correction", "templates": {"imports": "from gnuradio import blocks", "make": "blocks.correctiq_auto(${samp_rate}, ${freq}, ${gain}, ${syncWindow})", "callbacks": ["set_freq(${freq})", "set_gain(${gain})"]}, "parameters": [{"id": "samp_rate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate"}, {"id": "syncWindow", "label": "Sync Learning Period (sec)", "dtype": "float", "default": "2"}, {"id": "freq", "label": "Frequency", "dtype": "float"}, {"id": "gain", "label": "Upstream Gain", "dtype": "float"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "rsync", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "sync_start", "optional": true}, {"domain": "message", "id": "offsets", "optional": true}], "documentation": "This block to removes that center frequency IQ DC spike with a slight variation. It automatically calculates the offset then switches to straight DC offset mode to prevent any possible IIR filtering after it\'s been tuned. However, if frequency or upstream gain is changed, it must retune, so frequency and upstream gain are all taken as parameters and monitored for changes.\\n\\nNotes: \\n\\n1. Any message received on the rsync port will trigger a resync process. So it could be a frequency or gain change, or any other desired condition.\\n\\n2. The optional sync_start output message will be sent whenever a resync is triggered. This can be used downstream to know the filter is calculating and adapting. Note that there is no initial syncing message (this is assumed on block start so downstream blocks that are interested should make the same assumption).\\n\\n3. When a sync is finished, the real and imag offsets will be sent in the optional offsets message. Note that the work loop calculates out[].real(in[].real() - real_offset) and same for imag. So offsets are subtractive from the input values. ", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_correctiq_man.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_correctiq_man", "label": "IQ Correction Manual Offset", "category": "[Core]/IQ Correction", "templates": {"imports": "from gnuradio import blocks", "make": "blocks.correctiq_man(${real}, ${imag})", "callbacks": ["set_real(${real})", "set_imag(${imag})"]}, "parameters": [{"id": "real", "label": "Real (I)", "dtype": "float", "default": "0.0"}, {"id": "imag", "label": "Imag (Q)", "dtype": "float", "default": "0.0"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "set_real", "optional": true}, {"domain": "message", "id": "set_imag", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}], "documentation": "This block provides a mechanism to manually provide a real and imaginary signal offset. Very similar to a complex add block, the block supports dynamic updating on the values.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_correctiq_swapiq.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_swapiq", "label": "Swap IQ", "category": "[Core]/IQ Correction", "templates": {"imports": "from gnuradio import blocks", "make": "blocks.swap_iq(${datatype.datatype}, ${datatype.datasize})"}, "parameters": [{"id": "datatype", "label": "Input Type", "dtype": "enum", "options": ["complex", "short", "byte"], "option_attributes": {"datasize": ["gr.sizeof_gr_complex", "gr.sizeof_short", "gr.sizeof_char"], "datatype": ["1", "2", "3"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "documentation": "This block will transpose the I and Q channels (Swap IQ) to correct for spectrally inverted inputs.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_ctrlport_performance.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_ctrlport_monitor_performance", "label": "CtrlPort Performance Monitor", "flags": ["python"], "parameters": [{"id": "en", "label": "Enabled", "dtype": "bool", "default": "True"}], "templates": {"imports": "from gnuradio.ctrlport.monitor import *", "make": "not ${en} or monitor(\\"gr-perf-monitorx\\")"}, "documentation": "Place this in a graph to launch a QtPy GR CtrlPort Performance Monitor app.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_ctrlport_probe2_c.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_ctrlport_probe2_c", "label": "Ctrlport Probe", "flags": ["python", "cpp"], "parameters": [{"id": "name", "label": "Name", "dtype": "string", "default": "samples"}, {"id": "desc", "label": "Description", "dtype": "string", "default": "Sample Points"}, {"id": "len", "label": "Length", "dtype": "int", "default": "1024"}, {"id": "disp_mask", "label": "Display Mask", "dtype": "raw", "default": "gr.DISPTIME", "options": ["gr.DISPXY | gr.DISPOPTSCATTER", "gr.DISPTIME", "gr.DISPPSD", "gr.DISPSPEC", "gr.DISPRAST"], "option_labels": ["Constellation", "Time", "PSD", "Spectrogram", "Raster"]}], "inputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.ctrlport_probe2_c(${name}, ${desc}, ${len}, ${disp_mask})", "callbacks": ["set_length(${len})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/ctrlport_probe2_c.h>"], "declarations": "blocks::ctrlport_probe2_c::sptr ${id};", "make": "this->${id} = blocks::ctrlport_probe2_c::make(${name}, ${desc}, ${len}, ${disp_mask});", "callbacks": ["set_length(${len})"], "translations": {"gr\\\\.": ""}}, "documentation": "Place this in a graph to export vectors of samples to a GRCP port probe.\\n\\n * Specify the number of samples to transmit at once and the type\\n of default display to use.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_ctrlport_probe2_x.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_ctrlport_probe2_x", "label": "Ctrlport Probe", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "samples"}, {"id": "desc", "label": "Description", "dtype": "string", "default": "Sample Points"}, {"id": "len", "label": "Length", "dtype": "int", "default": "1024"}, {"id": "disp_mask", "label": "Display Mask", "dtype": "raw", "default": "gr.DISPTIME", "options": ["gr.DISPXY | gr.DISPOPTSCATTER", "gr.DISPTIME", "gr.DISPPSD", "gr.DISPSPEC", "gr.DISPRAST"], "option_labels": ["Constellation", "Time", "PSD", "Spectrogram", "Raster"]}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.ctrlport_probe2_${type.fcn}(${name}, ${desc}, ${len}, ${disp_mask})", "callbacks": ["set_length(${len})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/ctrlport_probe2_${type.fcn}.h>"], "declarations": "blocks::ctrlport_probe2_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::ctrlport_probe2_${type.fcn}::make(${name}, ${desc}, ${len}, ${disp_mask});", "callbacks": ["set_length(${len})"], "translations": {"gr\\\\.": ""}}, "documentation": "Place this in a graph to export vectors of samples to a GRCP port probe.\\n\\n * Specify the number of samples to transmit at once and the type\\n of default display to use.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_ctrlport_probe_c.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_ctrlport_probe_c", "label": "Ctrlport Complex Probe", "flags": ["python", "cpp"], "parameters": [{"id": "name", "label": "Name", "dtype": "string", "default": "constellation"}, {"id": "desc", "label": "Description", "dtype": "string", "default": "Constellation Points"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.ctrlport_probe_c(${name}, ${desc})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/ctrlport_probe_c.h>"], "declarations": "blocks::ctrlport_probe_c::sptr ${id};", "make": "this->${id} = blocks::ctrlport_probe_c::make(${name}, ${desc});"}, "documentation": "Place this in a graph to export complex values to a GRCP port probe.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_ctrlport_viewer.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_ctrlport_monitor", "label": "CtrlPort Monitor", "flags": ["python"], "parameters": [{"id": "en", "label": "Enabled", "dtype": "bool", "default": "True"}], "templates": {"imports": "from gnuradio.ctrlport.monitor import *", "make": "not ${en} or monitor()"}, "documentation": "Place this in a graph to launch a QtPy GR CtrlPort Monitor app.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_deinterleave.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_deinterleave", "label": "Deinterleave", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "blocksize", "label": "Block Size", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.deinterleave(${type.size}*${vlen}, ${blocksize})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/deinterleave.h>"], "declarations": "blocks::deinterleave::sptr ${id};", "make": "this->${id} = blocks::deinterleave::make(${type.size}*${vlen}, ${blocksize});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_delay.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_delay", "label": "Delay", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "delay", "label": "Delay", "dtype": "int", "default": "0"}, {"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}, {"domain": "message", "id": "dly", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.delay(${type.size}*${vlen}, ${delay})", "callbacks": ["set_dly(${delay})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/delay.h>"], "declarations": "blocks::delay::sptr ${id};", "make": "this->${id} = blocks::delay::make(${type.size}*${vlen}, ${delay});", "callbacks": ["set_dly(${delay})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_divide_XX.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_divide_xx", "label": "Divide", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }", "${ num_inputs >= 2 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.divide_${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/divide.h>"], "declarations": "blocks::divide_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::divide_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_endian_swap.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_endian_swap", "label": "Endian Swap", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "s32", "s16"], "option_labels": ["Complex", "Int", "Short"], "option_attributes": {"size": ["8", "4", "2"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.endian_swap(${type.size})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/endian_swap.h>"], "declarations": "blocks::endian_swap::sptr ${id};", "make": "this->${id} = blocks::endian_swap::make(${type.size});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_exponentiate_const_cci.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_exponentiate_const_cci", "label": "Exponentiate Const Int", "flags": ["python", "cpp"], "parameters": [{"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "exponent", "label": "Exponent", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }", "${ vlen > 0 }", "${ exponent > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.exponentiate_const_cci(${exponent}, ${vlen})", "callbacks": ["set_exponent(${exponent})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/exponentiate_const_cci.h>"], "declarations": "blocks::exponentiate_const_cci::sptr ${id};", "make": "this->${id} = blocks::exponentiate_const_cci::make(${exponent}, ${vlen});", "callbacks": ["set_exponent(${exponent})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_descriptor_sink.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_descriptor_sink", "label": "File Descriptor Sink", "flags": ["python", "cpp"], "parameters": [{"id": "fd", "label": "File Descriptor", "dtype": "int"}, {"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.file_descriptor_sink(${type.size}*${vlen}, ${fd})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/file_descriptor_sink.h>"], "declarations": "blocks::file_descriptor_sink::sptr ${id};", "make": "this->${id} = blocks::file_descriptor_sink::make(${type.size}*${vlen}, ${fd});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_descriptor_source.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_descriptor_source", "label": "File Descriptor Source", "flags": ["python", "cpp"], "parameters": [{"id": "fd", "label": "File Descriptor", "dtype": "int"}, {"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.file_descriptor_source(${type.size}*${vlen}, ${fd}, ${repeat})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/file_descriptor_source.h>"], "declarations": "blocks::file_descriptor_source::sptr ${id};", "make": "this->${id} = blocks::file_descriptor_source::make(${type.size}*${vlen}, ${fd}, ${repeat});", "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_meta_sink.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_meta_sink", "label": "File Meta Sink", "flags": ["python"], "parameters": [{"id": "file", "label": "File", "dtype": "file_save"}, {"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"cplx": ["True", "False", "False", "False", "False"], "dtype": ["blocks.GR_FILE_FLOAT", "blocks.GR_FILE_FLOAT", "blocks.GR_FILE_INT", "blocks.GR_FILE_SHORT", "blocks.GR_FILE_BYTE"], "size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "rel_rate", "label": "Relative Rate Change", "dtype": "real", "default": "1"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "max_seg_size", "label": "Max Seg. Size", "dtype": "int", "default": "1000000"}, {"id": "extra_dict", "label": "Extra Dict.", "dtype": "raw", "default": "pmt.make_dict()"}, {"id": "detached", "label": "Detached", "dtype": "bool", "default": "False", "options": ["False", "True"], "option_labels": ["Off", "On"]}, {"id": "unbuffered", "label": "Unbuffered", "dtype": "bool", "default": "False", "options": ["False", "True"], "option_labels": ["Off", "On"]}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import gr, blocks", "make": "blocks.file_meta_sink(${type.size}*${vlen}, ${file}, ${samp_rate}, ${rel_rate}, ${type.dtype}, ${type.cplx}, ${max_seg_size}, ${extra_dict}, ${detached})\\nself.${id}.set_unbuffered(${unbuffered})", "callbacks": ["set_unbuffered(${unbuffered})", "open(${file})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_meta_source.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_meta_source", "label": "File Meta Source", "flags": ["python"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "file", "label": "File", "dtype": "file_open"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "detached", "label": "Detached Header", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "hdr_file", "label": "Header File", "dtype": "file_open"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import gr, blocks", "make": "blocks.file_meta_source(${file}, ${repeat}, ${detached}, ${hdr_file})", "callbacks": ["open(${file}, ${repeat})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_sink.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_sink", "label": "File Sink", "flags": ["python", "cpp"], "parameters": [{"id": "file", "label": "File", "dtype": "file_save"}, {"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "unbuffered", "label": "Unbuffered", "dtype": "bool", "default": "False", "options": ["False", "True"], "option_labels": ["Off", "On"]}, {"id": "append", "label": "Append file", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["Append", "Overwrite"]}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.file_sink(${type.size}*${vlen}, ${file}, ${append})\\nself.${id}.set_unbuffered(${unbuffered})", "callbacks": ["set_unbuffered(${unbuffered})", "open(${file})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/file_sink.h>"], "declarations": "blocks::file_sink::sptr ${id};", "make": "this->${id} = blocks::file_sink::make(${type.size}*${vlen}, ${file}, ${append});", "callbacks": ["open(${file})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_file_source.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_file_source", "label": "File Source", "flags": ["python", "cpp"], "parameters": [{"id": "file", "label": "File", "dtype": "file_open"}, {"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "begin_tag", "label": "Add begin tag", "dtype": "raw", "default": "pmt.PMT_NIL"}, {"id": "offset", "label": "Offset", "dtype": "int", "default": "0"}, {"id": "length", "label": "Length", "dtype": "int", "default": "0"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks\\nimport pmt", "make": "blocks.file_source(${type.size}*${vlen}, ${file}, ${repeat}, ${offset}, ${length})\\nself.${id}.set_begin_tag(${begin_tag})", "callbacks": ["open(${file}, ${repeat})", "self.${id}.set_begin_tag(${begin_tag})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/file_source.h>"], "declarations": "blocks::file_source::sptr ${id};", "make": "this->${id} =blocks::file_source::make(${type.size}*${vlen}, ${file}, ${repeat}, ${offset}, ${length});", "callbacks": ["open(${file}, ${repeat})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_float_to_char.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_float_to_char", "label": "Float To Char", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.float_to_char(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/float_to_char.h>"], "declarations": "blocks::float_to_char::sptr ${id};", "make": "this->${id} = blocks::float_to_char::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_float_to_complex.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_float_to_complex", "label": "Float To Complex", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"label": "re", "domain": "stream", "dtype": "float", "vlen": "${ vlen }"}, {"label": "im", "domain": "stream", "dtype": "float", "vlen": "${ vlen }", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.float_to_complex(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/float_to_complex.h>"], "declarations": "blocks::float_to_complex::sptr ${id};", "make": "this->${id} = blocks::float_to_complex::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_float_to_int.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_float_to_int", "label": "Float To Int", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "int", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.float_to_int(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/float_to_int.h>"], "declarations": "blocks::float_to_int::sptr ${id};", "make": "this->${id} = blocks::float_to_int::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_float_to_short.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_float_to_short", "label": "Float To Short", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.float_to_short(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/float_to_short.h>"], "declarations": "blocks::float_to_short::sptr ${id};", "make": "this->${id} = blocks::float_to_short::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_float_uchar.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_float_to_uchar", "label": "Float To UChar", "flags": ["python", "cpp"], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.float_to_uchar()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/float_to_uchar.h>"], "declarations": "blocks::float_to_uchar::sptr ${id};", "make": "this->${id} = blocks::float_to_uchar::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_freqshift_cc.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_freqshift_cc", "label": "Frequency Shift", "category": "[Core]/Math Operators", "parameters": [{"id": "sample_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "freq", "label": "Frequency Shift", "dtype": "real", "default": "0.0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks\\nimport math", "make": "blocks.rotator_cc(2.0*math.pi*${freq}/${sample_rate})", "callbacks": ["set_phase_inc(2.0*math.pi*${freq}/${sample_rate})"]}, "documentation": "This block is a convenience wrapper around using a rotator block for frequency shifting. This block obfuscates the 2*Pi*freq/samp_rate phase_inc field and calculation, and only requires the designer to provide the frequency and sample rate.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_head.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_head", "label": "Head", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_items", "label": "Num Items", "dtype": "int", "default": "1024"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "optional": true}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.head(${type.size}*${vlen}, ${num_items})", "callbacks": ["set_length(${num_items})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/head.h>"], "declarations": "blocks::head::sptr ${id};", "make": "this->${id} = blocks::head::make(${type.size}*${vlen}, ${num_items});", "callbacks": ["set_length(${num_items})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_int_to_float.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_int_to_float", "label": "Int To Float", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "int", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.int_to_float(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/int_to_float.h>"], "declarations": "blocks::int_to_float::sptr ${id};", "make": "this->${id} = blocks::int_to_float::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_integrate_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_integrate_xx", "label": "Integrate", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.integrate_${type.fcn}(${decim}, ${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/integrate.h>"], "declarations": "blocks::integrate_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::integrate_${type.fcn}::make(${decim}, ${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_interleave.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_interleave", "label": "Interleave", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "blocksize", "label": "Block Size", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.interleave(${type.size}*${vlen}, ${blocksize})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/interleave.h>"], "declarations": "blocks::interleave::sptr ${id};", "make": "this->${id} = blocks::interleave::make(${type.size}*${vlen}, ${blocksize});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_interleaved_char_to_complex.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_interleaved_char_to_complex", "label": "IChar To Complex", "flags": ["python", "cpp"], "parameters": [{"id": "scale_factor", "label": "Scale Factor", "dtype": "float", "default": "1.0"}, {"id": "vector_input", "label": "Vector Input", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "option_attributes": {"vlen": [1, 2]}}], "inputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vector_input.vlen }"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.interleaved_char_to_complex(${vector_input},${scale_factor})", "callbacks": ["set_scale_factor(${scale_factor})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/interleaved_char_to_complex.h>"], "declarations": "blocks::interleaved_char_to_complex::sptr ${id};", "make": "this->${id} = blocks::interleaved_char_to_complex::make(${vector_input});", "callbacks": ["set_scale_factor(${scale_factor})"], "translations": {"True": "true", "False": "false"}}, "documentation": "This block converts interleaved IQ bytes to a float complex data type. \\nThe default scale factor is 1.0 for backward compatibility, however if \\nthe inputs are signed voltage style bytes (-127 to 127) the scale factor\\nshould be set to 127.0 (SCHAR_MAX). ", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_interleaved_short_to_complex.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_interleaved_short_to_complex", "label": "IShort To Complex", "flags": ["python", "cpp"], "parameters": [{"id": "scale_factor", "label": "Scale Factor", "dtype": "float", "default": "1.0"}, {"id": "vector_input", "label": "Vector Input", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "option_attributes": {"vlen": [1, 2]}}, {"id": "swap", "label": "Swap", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vector_input.vlen }"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.interleaved_short_to_complex(${vector_input}, ${swap},${scale_factor})", "callbacks": ["set_swap(${swap})", "set_scale_factor(${scale_factor})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/interleaved_short_to_complex.h>"], "declarations": "blocks::interleaved_short_to_complex::sptr ${id};", "make": "this->${id} = blocks::interleaved_short_to_complex::make(${vector_input}, ${swap});", "callbacks": ["set_swap(${swap})", "set_scale_factor(${scale_factor})"], "translations": {"True": "true", "False": "false"}}, "documentation": "This block converts interleaved 12/16-bit IQ samples to a float complex data \\ntype. The default scale factor is 1.0 for backward compatibility, however if \\nthe inputs are signed voltage style, some attention needs to be\\npaid to the scale factor to get the correct scaling. If the input is\\n12-bit represented in a 16-bit number (-2047 to 2047), the scale factor\\nshould be 2047.0. If the input is a full 16-bit sample (-32767 to 32767) \\nthe scale factor should be set to 32767.0 (SHRT_MAX). ", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_keep_m_in_n.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_keep_m_in_n", "label": "Keep M in N", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "m", "label": "M", "dtype": "int", "default": "1"}, {"id": "n", "label": "N", "dtype": "int", "default": "2"}, {"id": "offset", "label": "initial offset", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": 1}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": 1}], "asserts": ["${ n > 0 }", "${ m > 0 }", "${ m <= n }", "${ offset >= 0 }", "${ offset < n }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.keep_m_in_n(${type.size}, ${m}, ${n}, ${offset})", "callbacks": ["set_offset(${offset})", "set_m(${m})", "set_n(${n})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/keep_m_in_n.h>"], "declarations": "blocks::keep_m_in_n::sptr ${id};", "make": "this->${id} = blocks::keep_m_in_n::make(${type.size}, ${m}, ${n}, ${offset});", "callbacks": ["set_offset(${offset})", "set_m(${m})", "set_n(${n})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_keep_one_in_n.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_keep_one_in_n", "label": "Keep 1 in N", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "n", "label": "N", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ n > 0 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.keep_one_in_n(${type.size}*${vlen}, ${n})", "callbacks": ["set_n(${n})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/keep_one_in_n.h>"], "declarations": "blocks::keep_one_in_n::sptr ${id};", "make": "this->${id} = blocks::keep_one_in_n::make(${type.size}*${vlen}, ${n});", "callbacks": ["set_n(${n})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_magphase_to_complex.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_magphase_to_complex", "label": "Magnitude and Phase To Complex", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"label": "mag", "domain": "stream", "dtype": "float", "vlen": "${ vlen }"}, {"label": "phase", "domain": "stream", "dtype": "float", "vlen": "${ vlen }", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.magphase_to_complex(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/magphase_to_complex.h>"], "declarations": "blocks::magphase_to_complex::sptr ${id};", "make": "this->${id} = blocks::magphase_to_complex::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_matrix_interleaver.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_matrix_interleaver", "label": "Matrix Interleaver", "flags": ["python"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.matrix_interleaver(\\n itemsize=${ type.size } * ${ vlen }, rows=${ rows }, cols=${ cols }, deint=${ deint }\\n)", "callbacks": ["set_rowsandcols(${ rows }, ${ cols }, ${ deint })"]}, "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vec Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "rows", "label": "Rows", "dtype": "int", "default": "1", "hide": "none"}, {"id": "cols", "label": "Columns", "dtype": "int", "default": "1", "hide": "none"}, {"id": "deint", "label": "Deinterleave", "dtype": "bool", "options": [true, false], "default": false, "hide": "none"}], "inputs": [{"label": "in", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"label": "out", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "documentation": "|- Block interleaver reads inputs into rows and writes outputs by cols\\npython/matrix_interleaver.py", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_max_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_max_xx", "label": "Max", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["float", "int", "short"], "option_attributes": {"fcn": ["ff", "ii", "ss"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Input Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "vlen_out", "label": "Output Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen_out }"}], "asserts": ["${ num_inputs >= 1 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.max_${type.fcn}(${vlen}, ${vlen_out})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/max_blk.h>"], "declarations": "blocks::max_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::make_${type.fcn}::make(${vlen}, ${vlen_out});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_message_debug.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_message_debug", "label": "Message Debug", "flags": ["python", "cpp"], "parameters": [{"id": "en_uvec", "label": "PDU Vectors", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"]}], "inputs": [{"domain": "message", "id": "print", "optional": true}, {"domain": "message", "id": "store", "optional": true}, {"domain": "message", "id": "print_pdu", "optional": true}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.message_debug(${en_uvec})", "callbacks": ["set_vector_print(${en_uvec})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/message_debug.h>"], "declarations": "blocks::message_debug::sptr ${id};", "make": "this->${id} = blocks::message_debug::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_message_strobe.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_message_strobe", "label": "Message Strobe", "flags": ["python"], "parameters": [{"id": "msg", "label": "Message PMT", "dtype": "raw", "default": "pmt.intern(\\"TEST\\")"}, {"id": "period", "label": "Period (ms)", "dtype": "int", "default": "1000"}], "inputs": [{"domain": "message", "id": "set_msg", "optional": true}], "outputs": [{"domain": "message", "id": "strobe", "optional": true}], "templates": {"imports": "from gnuradio import blocks\\nimport pmt", "make": "blocks.message_strobe(${msg}, ${period})", "callbacks": ["set_msg(${msg})", "set_period(${period})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_message_strobe_random.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_message_strobe_random", "label": "Message Strobe Random-Delay", "flags": ["python"], "parameters": [{"id": "msg", "label": "Message PMT", "dtype": "raw", "default": "pmt.intern(\\"TEST\\")"}, {"id": "dist", "label": "Distribution", "dtype": "enum", "options": ["blocks.STROBE_POISSON", "blocks.STROBE_UNIFORM", "blocks.STROBE_GAUSSIAN"], "option_labels": ["Poisson", "Uniform", "Gaussian"]}, {"id": "mean", "label": "Mean (ms)", "dtype": "real", "default": "1000"}, {"id": "std", "label": "Std (ms)", "dtype": "real", "default": "100"}], "inputs": [{"domain": "message", "id": "set_msg", "optional": true}], "outputs": [{"domain": "message", "id": "strobe", "optional": true}], "templates": {"imports": "from gnuradio import blocks\\nimport pmt", "make": "blocks.message_strobe_random(${msg}, ${dist}, ${mean}, ${std})", "callbacks": ["set_msg(${msg})", "set_dist(${dist})", "set_mean(${mean})", "set_std(${std})"]}, "documentation": "Please note some peculiarities below:\\n - poisson does not care about your std\\n - gaussian operates as expected\\n - uniform is actually of the range (mean-std, mean+std) - thus we are lying and it is not actually an std here", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_meta_to_pair.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_msg_meta_to_pair", "label": "Message Meta Value to Pair", "parameters": [{"id": "keyin", "label": "Incoming Meta Name", "dtype": "string", "default": "key in"}, {"id": "keyout", "label": "Outgoing Pair Name", "dtype": "string", "default": "key out"}], "inputs": [{"domain": "message", "id": "inmeta"}], "outputs": [{"domain": "message", "id": "outpair"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.meta_to_pair(${keyin},${keyout})"}, "documentation": "This block converts a metadata dictionary item to a pmt pair that is compatible with other blocks expecting a pair in. You can specify which item in the incoming metadata to output as a pair and what the pair name is.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_min_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_min_xx", "label": "Min", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["float", "int", "short"], "option_attributes": {"fcn": ["ff", "ii", "ss"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Input Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "vlen_out", "label": "Output Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen_out }"}], "asserts": ["${ num_inputs >= 1 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.min_${type.fcn}(${vlen},${vlen_out})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/min_blk.h>"], "declarations": "blocks::min_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::min_${type.fcn}::make(${vlen},${vlen_out});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_moving_average_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_moving_average_xx", "label": "Moving Average", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"], "scale": ["complex", "real", "int", "int"]}, "hide": "part"}, {"id": "length", "label": "Length", "dtype": "int", "default": "1000"}, {"id": "scale", "label": "Scale", "dtype": "${ type.scale }", "default": "1"}, {"id": "max_iter", "label": "Max Iter", "dtype": "int", "default": "4000"}, {"id": "vlen", "label": "Length of Vectors", "dtype": "int", "default": 1}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.moving_average_${type.fcn}(${length}, ${scale}, ${max_iter}, ${vlen})", "callbacks": ["set_length_and_scale(${length}, ${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/moving_average.h>"], "declarations": "blocks::moving_average_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::moving_average_${type.fcn}::make(${length}, ${scale}, ${max_iter}, ${vlen});", "callbacks": ["set_length_and_scale(${length}, ${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_msg_pair_to_var.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_msgpair_to_var", "label": "Message Pair to Var", "parameters": [{"id": "target", "label": "Variable", "dtype": "string", "default": "freq"}], "inputs": [{"domain": "message", "id": "inpair"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.msg_pair_to_var(${ \'self.set_\' + context.get(\'target\')() })"}, "documentation": "This block will take an input message pair and allow you to set a gnuradio variable.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_by_tag_value_cc.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_by_tag_value_cc", "label": "Multiply by Tag Value", "flags": ["python", "cpp"], "parameters": [{"id": "tagname", "label": "Tag Name", "dtype": "string"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_by_tag_value_cc(${tagname}, ${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/multiply_by_tag_value_cc.h>"], "declarations": "blocks::multiply_by_tag_value_cc::sptr ${id};", "make": "this->${id} = blocks::multiply_by_tag_value_cc::make(${tagname}, ${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_conjugate_cc.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_conjugate_cc", "label": "Multiply Conjugate", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"label": "in0", "domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}, {"label": "in1", "domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_conjugate_cc(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/multiply_conjugate_cc.h>"], "declarations": "blocks::multiply_conjugate_cc::sptr ${id};", "make": "this->${id} = blocks::multiply_conjugate_cc::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_const_vxx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_const_vxx", "label": "Multiply Const", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"vconst_type": ["complex_vector", "real_vector", "int_vector", "int_vector"], "const_type": ["complex", "real", "int", "int"], "fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "const", "label": "Constant", "dtype": "${ type.const_type if vlen == 1 else type.vconst_type }", "default": "1"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }", "${ (vlen > 1 and len(const) == vlen) or (vlen == 1) }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_const_${ \'v\' if context.get(\'vlen\')() > 1 else \'\' }${type.fcn}(${const})", "callbacks": ["set_k(${const})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/multiply_const${\\"_v\\" if context.get(\\"vlen\\")() > 1 else \\"\\" }.h>"], "declarations": "blocks::multiply_const_${\\"v\\" if context.get(\\"vlen\\")() > 1 else \\"\\" }${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::multiply_const_${\\"v\\" if context.get(\\"vlen\\")() > 1 else \\"\\" }${type.fcn}::make(${const});", "callbacks": ["set_k(${const})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_const_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_const_xx", "label": "Fast Multiply Const", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"], "const_type": ["complex", "float", "int", "int"]}, "hide": "part"}, {"id": "const", "label": "Constant", "dtype": "${ type.const_type }", "default": "0"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_const_${type.fcn}(${const}, ${vlen})", "callbacks": ["set_k(${const})"]}, "cpp_templates": {"includes": ["#include <gnuradio/multiply_const.h>"], "declarations": "blocks::multiply_const_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::multiply_const_${type.fcn}::make(${const}, ${vlen});", "callbacks": ["set_k(${const})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_matrix_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_matrix_xx", "label": "Multiply by Matrix", "flags": ["python"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["float", "complex"], "option_attributes": {"fcn": ["ff", "cc"]}, "hide": "part"}, {"id": "A", "label": "Matrix A", "dtype": "raw", "default": "((1, 0), (0, 1))", "hide": "part"}, {"id": "tag_propagation_policy", "label": "TPP", "dtype": "enum", "options": ["gr.TPP_ALL_TO_ALL", "gr.TPP_ONE_TO_ONE", "gr.TPP_DONT", "gr.TPP_CUSTOM"], "option_labels": ["All to All", "One to One", "No Propagation", "Matrix-Defined"]}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ len(A[0]) }"}, {"domain": "message", "id": "set_A", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ len(A) }"}], "asserts": ["${ len(A) > 0 }", "${ len(A[0]) > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_matrix_${type.fcn}(${A}, ${tag_propagation_policy})", "callbacks": ["set_A(${A})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/multiply_matrix.h>"], "declarations": "blocks::multiply_matrix_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::multiply_matrix_${type.fcn}::make(${A}, ${tag_propagation_policy});", "callbacks": ["set_A(${A})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_multiply_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_multiply_xx", "label": "Multiply", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_inputs > 1 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.multiply_v${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/multiply.h>"], "declarations": "blocks::multiply_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::multiply_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_mute_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_mute_xx", "label": "Mute", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "mute", "label": "Mute", "dtype": "raw", "default": "False", "options": ["True", "False"]}], "inputs": [{"domain": "stream", "dtype": "${ type }"}, {"domain": "message", "id": "set_mute", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.mute_${type.fcn}(bool(${mute}))", "callbacks": ["set_mute(bool(${mute}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/mute.h>"], "declarations": "blocks::mute_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::mute_${type.fcn}::(bool(${mute}));", "callbacks": ["set_mute(bool(${mute}))"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_nlog10_ff.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_nlog10_ff", "label": "Log10", "flags": ["python", "cpp"], "parameters": [{"id": "n", "label": "n", "dtype": "real", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "k", "label": "k", "dtype": "real", "default": "0"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "asserts": ["${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.nlog10_ff(${n}, ${vlen}, ${k})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/nlog10_ff.h>"], "declarations": "blocks::nlog10_ff::sptr ${id};", "make": "this->${id} = blocks::nlog10_ff::make(${n}, ${vlen}, ${k});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_nop.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_nop", "label": "Nop", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.nop(${type.size}*${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/nop.h>"], "declarations": "blocks::nop::sptr ${id};", "make": "this->${id} = blocks::nop::make(${type.size}*${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_not_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_not_xx", "label": "Not", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.not_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/not_blk.h>"], "declarations": "blocks::not_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::not_${type.fcn}::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_null_sink.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_null_sink", "label": "Null Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "bus_structure_sink", "label": "Bus Connections", "dtype": "raw", "default": "[[0,],]", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "asserts": ["${ num_inputs >= 1 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.null_sink(${type.size}*${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/null_sink.h>"], "declarations": "blocks::null_sink::sptr ${id};", "make": "this->${id} = blocks::null_sink::make(${type.size}*${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_null_source.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_null_source", "label": "Null Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_outputs", "label": "Num Outputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "bus_structure_source", "label": "Bus Connections", "dtype": "raw", "default": "[[0,],]", "hide": "part"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_outputs }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.null_source(${type.size}*${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/null_source.h>"], "declarations": "blocks::null_source::sptr ${id};", "make": "this->${id} = blocks::null_source::make(${type.size}*${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_or_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_or_xx", "label": "Or", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "asserts": ["${ num_inputs >= 2 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.or_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/or_blk.h>"], "declarations": "blocks::or_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::or_${type.fcn}::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_pack_k_bits_bb.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_pack_k_bits_bb", "label": "Pack K Bits", "flags": ["python", "cpp"], "parameters": [{"id": "k", "label": "K", "dtype": "int"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.pack_k_bits_bb(${k})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/pack_k_bits_bb.h>"], "declarations": "blocks::pack_k_bits_bb::sptr ${id};", "make": "this->${id} = blocks::pack_k_bits_bb::make(${k});"}, "documentation": "Pack K unpacked bits (one bit per byte) into a single packed byte containing k bits and 8 - k zeros.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_packed_to_unpacked_xx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_packed_to_unpacked_xx", "label": "Packed to Unpacked", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "bits_per_chunk", "label": "Bits per Chunk", "dtype": "int", "default": "2"}, {"id": "endianness", "label": "Endianness", "dtype": "raw", "options": ["gr.GR_MSB_FIRST", "gr.GR_LSB_FIRST"], "option_labels": ["MSB", "LSB"]}, {"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_ports }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.packed_to_unpacked_${type.fcn}(${bits_per_chunk}, ${endianness})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/packed_to_unpacked.h>"], "declarations": "blocks::packed_to_unpacked_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::packed_to_unpacked_${type.fcn}::make(${bits_per_chunk}, ${endianness});", "translations": {"gr\\\\.": ""}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_patterned_interleaver.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_patterned_interleaver", "label": "Patterned Interleaver", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "pattern", "label": "Pattern", "dtype": "int_vector", "default": "[0,0,1,2]", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ 1+max(pattern) }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.patterned_interleaver(${type.size}*${vlen}, ${pattern})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/patterned_interleaver.h>"], "declarations": "blocks::patterned_interleaver::sptr ${id};", "make": "this->${id} = blocks::patterned_interleaver::make(${type.size}*${vlen}, ${pattern});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_peak_detector2_fb.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_peak_detector2_fb", "label": "Peak Detector2", "flags": ["python", "cpp"], "parameters": [{"id": "threshold_factor_rise", "label": "TH Factor Rise", "dtype": "real", "default": "7"}, {"id": "look_ahead", "label": "Look Ahead", "dtype": "int", "default": "1000"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "0.001"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "byte"}, {"label": "debug", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.peak_detector2_fb(${threshold_factor_rise}, ${look_ahead}, ${alpha})", "callbacks": ["set_threshold_factor_rise(${threshold_factor_rise})", "set_look_ahead(${look_ahead})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/peak_detector2_fb.h>"], "declarations": "blocks::peak_detector2_fb::sptr ${id};", "make": "this->${id} = blocks::peak_detector2_fb::make(${threshold_factor_rise}, ${look_ahead}, ${alpha});", "callbacks": ["set_threshold_factor_rise(${threshold_factor_rise})", "set_look_ahead(${look_ahead})", "set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_peak_detector_xb.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_peak_detector_xb", "label": "Peak Detector", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["float", "int", "short"], "option_attributes": {"fcn": ["f", "i", "s"]}, "hide": "part"}, {"id": "threshold_factor_rise", "label": "TH Factor Rise", "dtype": "real", "default": "0.25"}, {"id": "threshold_factor_fall", "label": "TH Factor Fall", "dtype": "real", "default": "0.40"}, {"id": "look_ahead", "label": "Look Ahead", "dtype": "int", "default": "10"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "0.001"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.peak_detector_${type.fcn}b(${threshold_factor_rise}, ${threshold_factor_fall}, ${look_ahead}, ${alpha})", "callbacks": ["set_threshold_factor_rise(${threshold_factor_rise})", "set_threshold_factor_fall(${threshold_factor_fall})", "set_look_ahead(${look_ahead})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/peak_detector.h>"], "declarations": "blocks::peak_detector_${type.fcn}b::sptr ${id};", "make": "this->${id} = blocks::peak_detector_${type.fcn}b::make(${threshold_factor_rise}, ${threshold_factor_fall}, ${look_ahead}, ${alpha});", "callbacks": ["set_threshold_factor_rise(${threshold_factor_rise})", "set_threshold_factor_fall(${threshold_factor_fall})", "set_look_ahead(${look_ahead})", "set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_phase_shift.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_phase_shift", "label": "Phase Shift", "parameters": [{"id": "shift", "label": "Phase Shift", "dtype": "float", "default": "0.0"}, {"id": "is_radians", "label": "Units", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Radians", "Degrees"]}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "shift", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.phase_shift(${shift}, ${is_radians})", "callbacks": ["set_shift(${shift})"]}, "documentation": "This block will phase shift the input signal by the specified phase by multiplying the input times a shift value: \\n gr_complex(cos(d_shift_in_radians),sin(d_shift_in_radians))\\n\\n Notes:\\n If degrees are provided, the block automatically handles the conversion.\\n This block functions like a multiply const, but with the const limited to abs() == 1 to provide a constant phase shift.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_plateau_detector_fb.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_plateau_detector_fb", "label": "Plateau Detector", "flags": ["python", "cpp"], "parameters": [{"id": "max_len", "label": "Max. plateau length", "dtype": "int"}, {"id": "threshold", "label": "Threshold", "dtype": "real", "default": "0.9"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.plateau_detector_fb(${max_len}, ${threshold})", "callbacks": ["set_threshold(${threshold})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/plateau_detector_fb.h>"], "declarations": "blocks::plateau_detector_fb::sptr ${id};", "make": "this->${id} = blocks::plateau_detector_fb::make(${max_len}, ${threshold});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_probe_rate.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_probe_rate", "label": "Probe Rate", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "mintime", "label": "Min Update Time (ms)", "dtype": "real", "default": "500.0"}, {"id": "alpha", "label": "Update Alpha", "dtype": "real", "default": "0.15"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "message", "id": "rate", "optional": true}], "asserts": ["${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.probe_rate(${type.size}*${vlen}, ${mintime}, ${alpha})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/probe_rate.h>"], "declarations": "blocks::probe_rate::sptr ${id};", "make": "this->${id} = blocks::probe_rate::make(${type.size}*${vlen}, ${mintime}, ${alpha});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_probe_signal_vx.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_probe_signal_vx", "label": "Probe Signal Vector", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.probe_signal_v${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/probe_signal_v.h>"], "declarations": "blocks::probe_signal_v${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::probe_signal_v${type.fcn}::make(${vlen});"}, "documentation": "Available functions to probe: level()\\n\\nUse with the function probe block.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_probe_signal_x.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_probe_signal_x", "label": "Probe Signal", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.probe_signal_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/probe_signal.h>"], "declarations": "blocks::probe_signal_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::probe_signal_${type.fcn}::make();"}, "documentation": "Available functions to probe: level()\\n\\nUse with the function probe block.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_regenerate_bb.block.yml": {"cached-at": 1646515618, "data": {"id": "blocks_regenerate_bb", "label": "Regenerate", "flags": ["python", "cpp"], "parameters": [{"id": "period", "label": "Period", "dtype": "int"}, {"id": "max_regen", "label": "Max Regen Count", "dtype": "int", "default": "500"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.regenerate_bb(${period}, ${max_regen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/regenerate_bb.h>"], "declarations": "blocks::regenerate_bb::sptr ${id};", "make": "this->${id} = blocks::regenerate_bb::make(${period}, ${max_regen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_repack_bits_bb.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_repack_bits_bb", "label": "Repack Bits", "flags": ["python", "cpp"], "parameters": [{"id": "k", "label": "Bits per input byte", "dtype": "int", "default": "1"}, {"id": "l", "label": "Bits per output byte", "dtype": "int", "default": "8"}, {"id": "len_tag_key", "label": "Length Tag Key", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "align_output", "label": "Packet Alignment", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Output", "Input"], "hide": "part"}, {"id": "endianness", "label": "Endianness", "dtype": "enum", "default": "gr.GR_LSB_FIRST", "options": ["gr.GR_MSB_FIRST", "gr.GR_LSB_FIRST"], "option_labels": ["MSB", "LSB"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.repack_bits_bb(${k}, ${l}, ${len_tag_key}, ${align_output}, ${endianness})", "callbacks": ["set_k_and_l(${k},${l})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/repack_bits_bb.h>"], "declarations": "blocks::repack_bits_bb::sptr ${id};", "make": "this->${id} = blocks::repack_bits_bb::make(${k}, ${l}, ${len_tag_key}, ${align_output}, ${endianness});", "callbacks": ["set_k_and_l(${k},${l})"], "translations": {"gr\\\\.": "", "True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_repeat.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_repeat", "label": "Repeat", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "interp", "label": "Interpolation", "dtype": "int"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.repeat(${type.size}*${vlen}, ${interp})", "callbacks": ["set_interpolation(${interp})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/repeat.h>"], "declarations": "blocks::repeat::sptr ${id};", "make": "this->${id} = blocks::repeat::make(${type.size}*${vlen}, ${interp});", "callbacks": ["set_interpolation(${interp})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_rms_xx.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_rms_xx", "label": "RMS", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["c", "f"]}, "hide": "part"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "0.0001"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.rms_${type.fcn}f(${alpha})", "callbacks": ["set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/rms_${type.fcn}f.h>"], "declarations": "blocks::rms_${type.fcn}f::sptr ${id};", "make": "this->${id} = blocks::rms_${type.fcn}f::make(${alpha});", "callbacks": ["set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_rotator_cc.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_rotator_cc", "label": "Rotator", "flags": ["python", "cpp"], "parameters": [{"id": "phase_inc", "label": "Phase Increment", "dtype": "real", "default": "0.0"}, {"id": "tag_inc_update", "label": "Tag Increment Updates", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "cmd", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.rotator_cc(${phase_inc}, ${tag_inc_update})", "callbacks": ["set_phase_inc(${phase_inc})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/rotator_cc.h>"], "declarations": "blocks::rotator_cc::sptr ${id};", "make": "this->${id} = blocks::rotator_cc::make(${phase_inc}, ${tag_inc_update});", "callbacks": ["set_phase_inc(${phase_inc})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_sample_and_hold_xx.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_sample_and_hold_xx", "label": "Sample and Hold", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["float", "int", "short", "byte"], "option_attributes": {"fcn": ["ff", "ii", "ss", "bb"]}, "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}, {"label": "ctrl", "domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.sample_and_hold_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/sample_and_hold.h>"], "declarations": "blocks::sample_and_hold_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::sample_and_hold_${type.fcn}::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_selector.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_selector", "label": "Selector", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "enabled", "label": "Enabled", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Enabled", "Disabled"]}, {"id": "num_inputs", "label": "Number of Inputs", "dtype": "int", "default": 2}, {"id": "num_outputs", "label": "Number of Outputs", "dtype": "int", "default": 2}, {"id": "input_index", "label": "Input Index", "dtype": "int", "default": 0}, {"id": "output_index", "label": "Output Index", "dtype": "int", "default": 0}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "True", "options": ["False", "True"], "option_labels": ["Yes", "No"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}, {"domain": "message", "id": "en", "optional": true, "hide": "${ showports }"}, {"domain": "message", "id": "iindex", "optional": true, "hide": "${ showports }"}, {"domain": "message", "id": "oindex", "optional": true, "hide": "${ showports }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_outputs }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.selector(${type.size}*${vlen},${input_index},${output_index})\\nself.${id}.set_enabled(${enabled})", "callbacks": ["set_enabled(${enabled})", "set_input_index(${input_index})", "set_output_index(${output_index})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/copy.h>"], "declarations": "blocks::selector::sptr ${id};", "make": "this->${id} = blocks::selector::make(${type.size}*${vlen},${input_index},${output_index});\\nself->${id}.set_enabled(${enabled});", "callbacks": ["set_enabled(${enabled})", "set_input_index(${input_index})", "set_output_index(${output_index})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_short_to_char.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_short_to_char", "label": "Short To Char", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "byte", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.short_to_char(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/short_to_char.h>"], "declarations": "blocks::short_to_char::sptr ${id};", "make": "this->${id} = blocks::short_to_char::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_short_to_float.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_short_to_float", "label": "Short To Float", "flags": ["python", "cpp"], "parameters": [{"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "scale", "label": "Scale", "dtype": "real", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "short", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.short_to_float(${vlen}, ${scale})", "callbacks": ["set_scale(${scale})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/short_to_float.h>"], "declarations": "blocks::short_to_float::sptr ${id};", "make": "this->${id} = blocks::short_to_float::make(${vlen}, ${scale});", "callbacks": ["set_scale(${scale})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_sigmf_sink_minimal.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_sigmf_sink_minimal", "label": "SigMF Sink (Minimal)", "flags": ["python", "deprecated"], "parameters": [{"id": "filename", "label": "File Name", "dtype": "file_save"}, {"id": "type", "label": "Stream Type", "dtype": "enum", "options": ["complex float (fc32_le)", "real float (rc32_le)", "complex short (sc16_le)", "real short (rc16_le)"], "option_attributes": {"type": ["complex", "float", "short", "short"], "size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_short", "gr.sizeof_short"], "complex": [true, false, true, false]}, "hide": "part"}, {"id": "sample_rate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate"}, {"id": "center_freq", "label": "Center Frequency", "dtype": "float", "options": ["np.nan"], "option_labels": ["None"]}, {"id": "author", "label": "Author", "dtype": "string", "default": ""}, {"id": "description", "label": "Description", "dtype": "string", "default": ""}, {"id": "hw_info", "label": "Hardware Info", "dtype": "string", "default": ""}], "inputs": [{"domain": "stream", "dtype": "${ type.type }"}], "asserts": ["${ len(filename) > 0 }"], "templates": {"imports": "from gnuradio import blocks\\nimport numpy as np", "make": "blocks.sigmf_sink_minimal(\\n item_size=${type.size},\\n filename=${filename},\\n sample_rate=${sample_rate},\\n center_freq=${center_freq},\\n author=${author},\\n description=${description},\\n hw_info=${hw_info},\\n is_complex=${type.complex})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_sigmf_source_minimal.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_sigmf_source_minimal", "label": "SigMF Source (Minimal)", "flags": ["python", "deprecated"], "parameters": [{"id": "file", "label": "File", "dtype": "file_open"}, {"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex float (fc32_le)", "real float (rc32_le)", "complex short (sc16_le)", "real short (rc16_le)"], "option_attributes": {"type": ["complex", "float", "short", "short"], "size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_short", "gr.sizeof_short"]}, "hide": "part"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "begin_tag", "label": "Add begin tag", "dtype": "raw", "default": "pmt.PMT_NIL"}, {"id": "length", "label": "Length", "dtype": "int", "default": "0"}], "outputs": [{"domain": "stream", "dtype": "${ type.type }"}], "templates": {"imports": "from gnuradio import blocks\\nimport pmt", "make": "blocks.file_source(${type.size}, ${file}, ${repeat}, 0, ${length})\\nself.${id}.set_begin_tag(${begin_tag})", "callbacks": ["open(${file}, ${repeat})", "self.${id}.set_begin_tag(${begin_tag})"]}, "documentation": "\\nThis block is essentially just a File Source with some SigMF specific documentation.\\nIn order to read in a SigMF file using this block, you must open the .sigmf-meta file\\nassociated with the recording in a text editor, and note the value next to core:datatype. \\nBased on this value, set the \\"Output Type\\" parameter to the following-\\n\\ncf32_le -> complex\\nrf32_le -> float\\nri16_le -> short\\nci16_le -> short, and add an iShort to Complex block right after this block\\n\\nFor the \\"File\\" parameter, enter in the .sigmf-data file name (and optionally path).\\nYou can leave the rest of the block parameters default.\\n\\nFor more information on SigMF see https://github.com/gnuradio/SigMF\\n\\nThe rest of this documentation comes from File Source\\n-----------------------------------------------------", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_skiphead.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_skiphead", "label": "Skip Head", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_items", "label": "Num Items", "dtype": "int", "default": "1024"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.skiphead(${type.size}*${vlen}, ${num_items})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/skiphead.h>"], "declarations": "blocks::skiphead::sptr ${id};", "make": "this->${id} = blocks::skiphead::make(${type.size}*${vlen}, ${num_items});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_demux.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_demux", "label": "Stream Demux", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "lengths", "label": "Lengths", "dtype": "int_vector", "default": "(1, 1)"}, {"id": "num_outputs", "label": "Num Outputs", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_outputs }"}], "asserts": ["${ num_outputs > 0 }", "${ num_outputs == len(lengths) }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_demux(${type.size}*${vlen}, ${lengths})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stream_demux.h>"], "declarations": "blocks::stream_demux::sptr ${id};", "make": "this->${id} = blocks::stream_demux::make(${type.size}*${vlen}, ${lengths});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_mux.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_mux", "label": "Stream Mux", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "lengths", "label": "Lengths", "dtype": "int_vector", "default": "(1, 1)"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_inputs > 0 }", "${ num_inputs == len(lengths) }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_mux(${type.size}*${vlen}, ${lengths})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stream_mux.h>"], "declarations": "blocks::stream_mux::sptr ${id};", "make": "this->${id} = blocks::stream_mux::make(${type.size}*${vlen}, ${lengths});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_to_streams.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_to_streams", "label": "Stream to Streams", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_to_streams(${type.size}*${vlen}, ${num_streams})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stream_to_streams.h>"], "declarations": "blocks::stream_to_streams::sptr ${id};", "make": "this->${id} = blocks::stream_to_streams::make(${type.size}*${vlen}, ${num_streams});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_to_tagged_stream.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_to_tagged_stream", "label": "Stream to Tagged Stream", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "packet_len", "label": "Packet Length", "dtype": "int"}, {"id": "len_tag_key", "label": "Length Tag Key", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_to_tagged_stream(${type.size}, ${vlen}, ${packet_len}, ${len_tag_key})", "callbacks": ["set_packet_len(${packet_len})", "set_packet_len_pmt(${packet_len})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stream_to_tagged_stream.h>"], "declarations": "blocks::stream_to_tagged_stream::sptr ${id};", "make": "this->${id} = blocks::stream_to_tagged_stream::make(${type.size}, ${vlen}, ${packet_len}, ${len_tag_key});", "callbacks": ["set_packet_len(${packet_len})", "set_packet_len_pmt(${packet_len})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_to_vector.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_to_vector", "label": "Stream to Vector", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_items", "label": "Num Items", "dtype": "int", "default": "2", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen*num_items }"}], "asserts": ["${ num_items > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_to_vector(${type.size}*${vlen}, ${num_items})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stream_to_vector.h>"], "declarations": "blocks::stream_to_vector::sptr ${id};", "make": "this->${id} = blocks::stream_to_vector::make(${type.size}*${vlen}, ${num_items});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stream_to_vector_decimator.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stream_to_vector_decimator", "label": "Stream to Vec Decim", "flags": ["python"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "sample_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "vec_rate", "label": "Vector Rate", "dtype": "real", "default": "30"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1024", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stream_to_vector_decimator(\\n item_size=${type.size},\\n sample_rate=${sample_rate},\\n vec_rate=${vec_rate},\\n vec_len=${vlen})", "callbacks": ["set_sample_rate(${sample_rate})", "set_vec_rate(${vec_rate})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_streams_to_stream.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_streams_to_stream", "label": "Streams to Stream", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.streams_to_stream(${type.size}*${vlen}, ${num_streams})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/streams_to_stream.h>"], "declarations": "blocks::streams_to_stream::sptr ${id};", "make": "this->${id} = blocks::streams_to_stream::make(${type.size}*${vlen}, ${num_streams});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_streams_to_vector.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_streams_to_vector", "label": "Streams to Vector", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen*num_streams }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.streams_to_vector(${type.size}*${vlen}, ${num_streams})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/streams_to_vector.h>"], "declarations": "blocks::streams_to_vector::sptr ${id};", "make": "this->${id} = blocks::streams_to_vector::make(${type.size}*${vlen}, ${num_streams});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_stretch_ff.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_stretch_ff", "label": "Stretch", "flags": ["python", "cpp"], "parameters": [{"id": "lo", "label": "Low", "dtype": "real"}, {"id": "vlen", "label": "Vec. Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.stretch_ff(${lo}, ${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/stretch_ff.h>"], "declarations": "blocks::stretch_ff::sptr ${id};", "make": "this->${id} = blocks::stretch_ff::make(${lo}, ${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_sub_xx.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_sub_xx", "label": "Subtract", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short"], "option_attributes": {"fcn": ["cc", "ff", "ii", "ss"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }", "${ num_inputs >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.sub_${type.fcn}(${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/sub.h>"], "declarations": "blocks::sub_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::sub_${type.fcn}::make(${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tag_debug.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tag_debug", "label": "Tag Debug", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string"}, {"id": "filter", "label": "Key Filter", "dtype": "string", "default": "\\"\\""}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "display", "label": "Display", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"]}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_inputs }"}], "asserts": ["${ num_inputs >= 1 }", "${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tag_debug(${type.size}*${vlen}, ${name}, ${filter})\\nself.${id}.set_display(${display})", "callbacks": ["set_display(${display})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tag_debug.h>"], "declarations": "blocks::tag_debug::sptr ${id};", "make": "this->${id} = blocks::tag_debug::make(${type.size}*${vlen}, ${name}, ${filter});\\nthis->${id}.set_display(${display});", "callbacks": ["set_display(${display})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tag_gate.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tag_gate", "label": "Tag Gate", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Item Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "propagate_tags", "label": "Propagate Tags", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "single_key", "label": "Single Key", "dtype": "string", "default": "\\"\\""}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tag_gate(${type.size} * ${vlen}, ${propagate_tags})\\nself.${id}.set_single_key(${single_key})", "callbacks": ["self.${id}.set_single_key(${single_key})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tag_gate.h>"], "make": "this->${id} = blocks::tag_gate::make(${type.size} * ${vlen}, ${propagate_tags});\\nthis->${id}.set_single_key(${single_key});", "callbacks": ["self.${id}.set_single_key(${single_key})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tag_object.block.yml": {"cached-at": 1646515619, "data": {"id": "variable_tag_object", "label": "Tag Object", "flags": ["show_id", "python"], "parameters": [{"id": "offset", "label": "Offset", "dtype": "int", "default": "0"}, {"id": "key", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"key\\")"}, {"id": "value", "label": "Value", "dtype": "raw", "default": "pmt.intern(\\"value\\")"}, {"id": "src", "label": "Source ID", "dtype": "raw", "default": "pmt.intern(\\"src\\")"}], "value": "${ value }", "templates": {"imports": "import pmt", "var_make": "self.${id} = ${id} = gr.tag_utils.python_to_tag((${offset}, ${key}, ${value}, ${src}))", "callbacks": ["self.set_${id}(gr.tag_utils.python_to_tag((${offset}, ${key}, ${value}, ${src})))"]}, "documentation": "This block creates a tag object. While tags are based on an\\n absolute offset, this is based on a relative offset that must be\\n appropriately translated by the block using it. For example, this\\n is used by the vector_source blocks, which will treat a 0 offset\\n in the tag as the first item in the stream when the vector starts\\n or repeats.\\n\\n The tag objects are created using the python_to_tag Python\\n function to make it easy to generate a tag_t in Python. The call\\n looks like:\\n\\n gr.tag_utils.python_to_tag(($offset, $key, $value, $src))", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tag_share.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tag_share", "label": "Tag Share", "flags": ["python", "cpp"], "parameters": [{"id": "io_type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "share_type", "label": "Share Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ io_type }", "vlen": "${ vlen }"}, {"label": "share", "domain": "stream", "dtype": "${ share_type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ io_type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tag_share(${io_type.size}, ${share_type.size}, ${vlen})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tag_share.h>"], "declarations": "blocks::tag_share::sptr ${id};", "make": "this->${id} = blocks::tag_share::make(${io_type.size}, ${share_type.size}, ${vlen});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tagged_file_sink.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tagged_file_sink", "label": "Tagged File Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "int", "default": "samp_rate"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tagged_file_sink(${type.size}*${vlen}, ${samp_rate})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tagged_file_sink.h>"], "declarations": "blocks::tagged_file_sink::sptr ${id};", "make": "this->${id} = blocks::tagged_file_sink::make(${type.size}*${vlen}, ${samp_rate});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tagged_stream_align.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tagged_stream_align", "label": "Tagged Stream Align", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "lengthtagname", "label": "Length tag names", "dtype": "string", "default": "packet_len"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tagged_stream_align(${type.size}*${vlen}, ${lengthtagname})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tagged_stream_align.h>"], "declarations": "blocks::tagged_stream_align::sptr ${id};", "make": "this->${id} = blocks::tagged_stream_align::make(${type.size}*${vlen}, ${lengthtagname});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tagged_stream_multiply_length.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tagged_stream_multiply_length", "label": "Tagged Stream Multiply Length Tag", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "lengthtagname", "label": "Length tag names", "dtype": "string"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "c", "label": "Length Scalar", "dtype": "real", "default": "1.0"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}, {"domain": "message", "id": "set_scalar", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tagged_stream_multiply_length(${type.size}*${vlen}, ${lengthtagname}, ${c})", "callbacks": ["set_scalar(${c})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tagged_stream_multiply_length.h>"], "declarations": "blocks::tagged_stream_multiply_length::sptr ${id};", "make": "this->${id} = blocks.tagged_stream_multiply_length(${type.size}*${vlen}, ${lengthtagname}, ${c});", "callbacks": ["set_scalar(${c})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tagged_stream_mux.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tagged_stream_mux", "label": "Tagged Stream Mux", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "ninputs", "label": "Number of inputs", "dtype": "int", "hide": "part"}, {"id": "lengthtagname", "label": "Length tag names", "dtype": "string"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "tag_preserve_head_pos", "label": "Tags: Preserve head position on input", "dtype": "int", "default": "0", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ ninputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.tagged_stream_mux(${type.size}*${vlen}, ${lengthtagname}, ${tag_preserve_head_pos})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/tagged_stream_mux.h>"], "declarations": "blocks::tagged_stream_mux::sptr ${id};", "make": "this->${id} = blocks::tagged_stream_mux::make(${type.size}*${vlen}, ${lengthtagname}, ${tag_preserve_head_pos});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_tags_strobe.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_tags_strobe", "label": "Tags Strobe", "flags": ["python"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "value", "label": "Value (PMT)", "dtype": "raw", "default": "pmt.intern(\\"TEST\\")"}, {"id": "key", "label": "Key (PMT)", "dtype": "raw", "default": "pmt.intern(\\"strobe\\")"}, {"id": "nsamps", "label": "Num. Samples", "dtype": "int", "default": "1000"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks\\nimport pmt", "make": "blocks.tags_strobe(${type.size}*${vlen}, ${value}, ${nsamps}, ${key})", "callbacks": ["set_value(${value})", "set_key(${key})", "set_nsamps(${nsamps})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_test_tag_variable_rate_ff.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_test_tag_variable_rate_ff", "label": "Test Tag Variable Rate", "flags": ["python", "cpp"], "parameters": [{"id": "once", "label": "Update Once", "dtype": "enum", "default": "False", "options": ["True", "False"]}, {"id": "step", "label": "Update Step", "dtype": "float", "default": "0.001"}], "inputs": [{"domain": "stream", "dtype": "float", "multiplicity": "1"}], "outputs": [{"domain": "stream", "dtype": "float", "multiplicity": "1"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.test_tag_variable_rate_ff(${once}, ${step})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/test_tag_variable_rate_ff.h>"], "declarations": "blocks::test_tag_variable_rate_ff::sptr ${id};", "make": "this->${id} = blocks::test_tag_variable_rate_ff::make(${once}, ${step});", "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_threshold_ff.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_threshold_ff", "label": "Threshold", "flags": ["python", "cpp"], "parameters": [{"id": "low", "label": "Low", "dtype": "real", "default": "-100"}, {"id": "high", "label": "High", "dtype": "real", "default": "100"}, {"id": "init", "label": "Initial State", "dtype": "real", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.threshold_ff(${low}, ${high}, ${init})", "callbacks": ["set_hi(${high})", "set_lo(${low})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/threshold_ff.h>"], "declarations": "blocks::threshold_ff::sptr ${id};", "make": "this->${id} = blocks::threshold_ff::make(${low}, ${high}, ${init});", "callbacks": ["set_hi(${high})", "set_lo(${low})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_throttle.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_throttle", "label": "Throttle", "flags": ["throttle", "python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "samples_per_second", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "ignoretag", "label": "Ignore rx_rate tag", "dtype": "bool", "default": "True", "hide": "${ (\'part\' if str(ignoretag) == \'True\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "optional": true}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.throttle(${type.size}*${vlen}, ${samples_per_second},${ignoretag})", "callbacks": ["set_sample_rate(${samples_per_second})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/throttle.h>"], "declarations": "blocks::throttle::sptr ${id};", "make": "this->${id} = blocks::throttle::make(${type.size}*${vlen}, ${samples_per_second}, ${ignoretag});", "callbacks": ["set_sample_rate(${samples_per_second})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_transcendental.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_transcendental", "label": "Transcendental", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex_float", "float"], "option_labels": ["Complex", "Float"], "option_attributes": {"type": ["complex", "float"]}, "hide": "part"}, {"id": "name", "label": "Function Name", "dtype": "string", "default": "cos"}], "inputs": [{"domain": "stream", "dtype": "${ type.type }"}], "outputs": [{"domain": "stream", "dtype": "${ type.type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.transcendental(${name}, \\"${type}\\")"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/transcendental.h>"], "declarations": "blocks::transcendental::sptr ${id};", "make": "this->${id} = blocks::transcendental::make(${name}, \\"$type\\");"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_uchar_to_float.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_uchar_to_float", "label": "UChar To Float", "flags": ["python", "cpp"], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.uchar_to_float()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/uchar_to_float.h>"], "declarations": "blocks::uchar_to_float::sptr ${id};", "make": "this->${id} = blocks::uchar_to_float::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_unpack_k_bits_bb.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_unpack_k_bits_bb", "label": "Unpack K Bits", "flags": ["python", "cpp"], "parameters": [{"id": "k", "label": "K", "dtype": "int"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.unpack_k_bits_bb(${k})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/unpack_k_bits_bb.h>"], "declarations": "blocks::unpack_k_bits_bb::sptr ${id};", "make": "this->${id} = blocks::unpack_k_bits_bb::make(${k});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_unpacked_to_packed_xx.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_unpacked_to_packed_xx", "label": "Unpacked to Packed", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "bits_per_chunk", "label": "Bits per Chunk", "dtype": "int", "default": "2"}, {"id": "endianness", "label": "Endianness", "dtype": "raw", "options": ["gr.GR_MSB_FIRST", "gr.GR_LSB_FIRST"], "option_labels": ["MSB", "LSB"]}, {"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_ports }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.unpacked_to_packed_${type.fcn}(${bits_per_chunk}, ${endianness})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/unpacked_to_packed.h>"], "declarations": "blocks::unpacked_to_packed_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::unpacked_to_packed_${type.fcn}::make(${bits_per_chunk}, ${endianness});", "translations": {"gr\\\\.": ""}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_var_to_msg.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_var_to_msg", "label": "Variable to Message", "parameters": [{"id": "target", "label": "Variable", "default": "freq"}, {"id": "msgname", "label": "Message Variable Name", "dtype": "string", "default": "freq"}], "outputs": [{"domain": "message", "id": "msgout"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.var_to_msg_pair(${msgname})", "callbacks": ["variable_changed(${target})"]}, "documentation": "This block will monitor a variable, and when it changes, generate a message.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vco_c.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vco_c", "label": "VCO (complex)", "flags": ["python", "cpp"], "parameters": [{"id": "samp_rate", "label": "Sample Rate", "dtype": "real"}, {"id": "sensitivity", "label": "Sensitivity", "dtype": "real"}, {"id": "amplitude", "label": "Amplitude", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vco_c(${samp_rate}, ${sensitivity}, ${amplitude})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vco_c.h>"], "declarations": "blocks::vco_c::sptr ${id};", "make": "this->${id} = blocks::vco_c::make(${samp_rate}, ${sensitivity}, ${amplitude});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vco_f.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vco_f", "label": "VCO", "flags": ["python", "cpp"], "parameters": [{"id": "samp_rate", "label": "Sample Rate", "dtype": "real"}, {"id": "sensitivity", "label": "Sensitivity", "dtype": "real"}, {"id": "amplitude", "label": "Amplitude", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vco_f(${samp_rate}, ${sensitivity}, ${amplitude})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vco_f.h>"], "declarations": "blocks::vco_f::sptr ${id};", "make": "this->${id} = blocks::vco_f::make(${samp_rate}, ${sensitivity}, ${amplitude});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vector_insert_x.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vector_insert_x", "label": "Vector Insert", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["byte", "complex", "float", "int", "short"], "option_attributes": {"fcn": ["b", "c", "f", "i", "s"], "vec_type": ["int_vector", "complex_vector", "real_vector", "int_vector", "int_vector"]}, "hide": "part"}, {"id": "vector", "label": "Vector", "dtype": "${ type.vec_type }", "default": "0, 0, 0"}, {"id": "period", "label": "Periodicity", "dtype": "int", "default": "100"}, {"id": "offset", "label": "Offset", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vector_insert_${type.fcn}(${vector}, ${period}, ${offset})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vector_insert.h>"], "declarations": "blocks::vector_insert_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::vector_insert_${type.fcn}::make(${vector}, ${period}, ${offset});"}, "documentation": "Periodicity, the length of the periodicity at which the vector should be inserted at the output.\\n (i.e. one vector for every N output items)\\n\\n Offset specifies where in the cycle period we should begin at.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vector_sink_x.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vector_sink_x", "label": "Vector Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "reserve_items", "label": "Reserve memory for items", "default": "1024", "dtype": "int", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vector_sink_${type.fcn}(${vlen}, ${reserve_items})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vector_sink.h>"], "declarations": "blocks::vector_sink_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::vector_sink_${type.fcn}::make(${vlen}, ${reserve_items});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vector_source_x.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vector_source_x", "label": "Vector Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"fcn": ["c", "f", "i", "s", "b"], "vec_type": ["complex_vector", "real_vector", "int_vector", "int_vector", "int_vector"]}, "hide": "part"}, {"id": "vector", "label": "Vector", "dtype": "raw", "default": "(0, 0, 0)"}, {"id": "tags", "label": "Tags", "dtype": "raw", "default": "[]"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ vlen > 0 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vector_source_${type.fcn}(${vector}, ${repeat}, ${vlen}, ${tags})", "callbacks": ["set_data(${vector}, ${tags})"]}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vector_source.h>"], "declarations": "blocks::vector_source_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::vector_source_${type.fcn}::make(${vector}, ${repeat}, ${vlen}, ${tags});", "callbacks": ["set_data(${vector}, ${tags})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vector_to_stream.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vector_to_stream", "label": "Vector to Stream", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_items", "label": "Num Items", "dtype": "int", "default": "2", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen*num_items }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "asserts": ["${ num_items > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vector_to_stream(${type.size}*${vlen}, ${num_items})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vector_to_stream.h>"], "declarations": "blocks::vector_to_stream::sptr ${id};", "make": "this->${id} = blocks::vector_to_stream::make(${type.size}*${vlen}, ${num_items});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_vector_to_streams.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_vector_to_streams", "label": "Vector to Streams", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "2", "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen*num_streams }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }"}], "asserts": ["${ num_streams > 0 }", "${ vlen >= 1 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.vector_to_streams(${type.size}*${vlen}, ${num_streams})"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/vector_to_streams.h>"], "declarations": "blocks::vector_to_streams::sptr ${id};", "make": "this->${id} = blocks::vector_to_streams::make(${type.size}*${vlen}, ${num_streams});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/blocks_xor_xx.block.yml": {"cached-at": 1646515619, "data": {"id": "blocks_xor_xx", "label": "Xor", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["ii", "ss", "bb"]}, "hide": "part"}, {"id": "num_inputs", "label": "Num Inputs", "dtype": "int", "default": "2", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_inputs }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "asserts": ["${ num_inputs >= 2 }"], "templates": {"imports": "from gnuradio import blocks", "make": "blocks.xor_${type.fcn}()"}, "cpp_templates": {"includes": ["#include <gnuradio/blocks/xor_blk.h>"], "declarations": "blocks::xor_${type.fcn}::sptr ${id};", "make": "this->${id} = blocks::xor_${type.fcn}::make();"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels.tree.yml": {"cached-at": 1646515619, "data": {"[Core]": [{"Channel Models": ["channels_channel_model", "channels_channel_model2", "channels_conj_fs_iqcorr", "channels_fading_model", "channels_dynamic_channel_model", "channels_selective_fading_model", "channels_selective_fading_model2"]}, {"Impairment Models": ["channels_impairments", "channels_quantizer", "channels_phase_noise_gen", "channels_iqbal_gen", "channels_distortion_2_gen", "channels_distortion_3_gen", "channels_amp_bal", "channels_phase_bal", "channels_cfo_model", "channels_sro_model"]}]}}, "/lib/share/gnuradio/grc/blocks/channels_amp_bal.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_amp_bal", "label": "Amplitude Balance", "parameters": [{"id": "alpha", "label": "Alpha", "dtype": "float", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.amp_bal(${alpha})", "callbacks": ["set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_cfo_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_cfo_model", "label": "CFO Model", "parameters": [{"id": "srate", "label": "Sample Rate Hz", "dtype": "real", "default": "samp_rate"}, {"id": "stdev", "label": "CFO Standard Deviation Hz per sample", "dtype": "real", "default": "0.01"}, {"id": "maxdev", "label": "Max CFO Bound Hz", "dtype": "real", "default": "1e3"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.cfo_model(\\n ${srate},\\n ${stdev},\\n ${maxdev},\\n ${seed})", "callbacks": ["set_std_dev(${stdev})", "set_max_dev(${maxdev})", "set_samp_rate(${srate})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_channel_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_channel_model", "label": "Channel Model", "parameters": [{"id": "noise_voltage", "label": "Noise Voltage", "dtype": "real", "default": "0.0"}, {"id": "freq_offset", "label": "Frequency Offset", "dtype": "real", "default": "0.0"}, {"id": "epsilon", "label": "Epsilon", "dtype": "real", "default": "1.0"}, {"id": "taps", "label": "Taps", "dtype": "complex_vector", "default": "1.0 + 1.0j"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "block_tags", "label": "Block Tag Propagation", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "${ \'none\' if block_tags == \'False\' else \'part\' }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels\\nfrom gnuradio.filter import firdes", "make": "channels.channel_model(\\n noise_voltage=${noise_voltage},\\n frequency_offset=${freq_offset},\\n epsilon=${epsilon},\\n taps=${taps},\\n noise_seed=${seed},\\n block_tags=${block_tags})", "callbacks": ["set_noise_voltage(${noise_voltage})", "set_frequency_offset(${freq_offset})", "set_taps(${taps})", "set_timing_offset(${epsilon})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_channel_model2.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_channel_model2", "label": "Channel Model 2", "parameters": [{"id": "noise_voltage", "label": "Noise Voltage", "dtype": "real", "default": "0.0"}, {"id": "epsilon", "label": "Time Offset", "dtype": "real", "default": "1.0"}, {"id": "taps", "label": "Taps", "dtype": "complex_vector", "default": "1.0 + 1.0j"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "block_tags", "label": "Block Tag Propagation", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "option_attributes": {"hide_block": ["none", "part"]}, "hide": "${ block_tags.hide_block }"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"label": "freq", "domain": "stream", "dtype": "float"}, {"label": "time", "domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels\\nfrom gnuradio.filter import firdes", "make": "channels.channel_model2(\\n noise_voltage=${noise_voltage},\\n epsilon=${epsilon},\\n taps=${taps},\\n noise_seed=${seed},\\n block_tags=${block_tags})", "callbacks": ["set_noise_voltage(${noise_voltage})", "set_taps(${taps})", "set_timing_offset(${epsilon})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_conj_fs_iqcorr.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_conj_fs_iqcorr", "label": "Freq. Selective IQ Correction", "parameters": [{"id": "delay", "label": "Delay", "dtype": "int", "default": "0"}, {"id": "taps", "label": "Taps", "dtype": "complex_vector", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.conj_fs_iqcorr(${delay}, ${taps})", "callbacks": ["set_delay(${delay})", "set_taps(${taps})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_distortion_2_gen.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_distortion_2_gen", "label": "Second Order Distortion", "parameters": [{"id": "beta", "label": "Distortion", "dtype": "float", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.distortion_2_gen(${beta})", "callbacks": ["set_beta(${beta})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_distortion_3_gen.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_distortion_3_gen", "label": "Third Order Distortion", "parameters": [{"id": "beta", "label": "Distortion", "dtype": "float", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.distortion_3_gen(${beta})", "callbacks": ["set_beta(${beta})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_dynamic_channel_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_dynamic_channel_model", "label": "Dynamic Channel Model", "parameters": [{"id": "samp_rate", "label": "Sample Rate Hz", "dtype": "real", "default": "samp_rate"}, {"id": "cfo_stdev", "label": "CFO Standard Deviation Hz per sample", "dtype": "real", "default": "0.01"}, {"id": "cfo_maxdev", "label": "Max CFO Bound Hz", "dtype": "real", "default": "1e3"}, {"id": "sro_stdev", "label": "SRO Standard Deviation Hz per sample", "dtype": "real", "default": "0.01"}, {"id": "sro_maxdev", "label": "Max SRO Bound Hz", "dtype": "real", "default": "1e3"}, {"id": "noise_amp", "label": "White Noise Amplitude", "dtype": "real", "default": "1.0"}, {"id": "N", "label": "Num Sinusoids (SoS model)", "dtype": "int", "default": "8"}, {"id": "fD", "label": "Max Doppler Freq (Hz)", "dtype": "real", "default": "2.0"}, {"id": "LOS", "label": "LOS Model", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Rayleigh/NLOS", "Rician/LOS"], "option_attributes": {"hide_K": ["all", "none"]}}, {"id": "K", "label": "Rician factor (K)", "dtype": "real", "default": "4.0", "hide": "${ LOS.hide_K }"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "delays", "label": "PDP Delays (samp)", "dtype": "real_vector", "default": "0.0,0.1,1.3"}, {"id": "mags", "label": "PDP Magnitudes", "dtype": "real_vector", "default": "1,0.99,0.97"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "8"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.dynamic_channel_model(\\n ${samp_rate}, \\n ${sro_stdev}, \\n ${sro_maxdev},\\n ${cfo_stdev}, \\n ${cfo_maxdev}, \\n ${N}, \\n ${fD}, \\n ${LOS}, \\n ${K}, \\n ${delays}, \\n ${mags},\\n ${ntaps}, \\n ${noise_amp}, \\n ${seed})", "callbacks": ["set_samp_rate(${samp_rate})", "set_sro_dev_std(${sro_stdev})", "set_sro_dev_max(${sro_maxdev})", "set_cfo_dev_std(${cfo_stdev})", "set_cfo_dev_max(${cfo_maxdev})", "set_noise_amp(${noise_amp})", "set_doppler_freq(${fD})", "set_K(${K})"]}, "documentation": "The dynamic channel model is a hier block consisting of the following effects:\\n - Dynamic Frequency Selective Fading Channel\\n - Dynamic Center Frequency Offset Model\\n - Dynamic Sample Rate Offset Model\\n - Additive White Gaussian Noise\\n\\n The desired power delay profile and max doppler frequency may be provided to achieve the desired Ricean or Rayleigh fading scenario. For center frequency and sample rate offset models, a gaussian random walk process is conducted for each. The single sample step variance and maximum deviation for these two processes is specified and may be modified to simulate various desired stability effects. Lastly AWGN is added to simulate a typical receiver/thermal noise floor after propagation, and the variance may be modified here as desired.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_fading_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_fading_model", "label": "Fading Model", "parameters": [{"id": "N", "label": "Num Sinusoids (SoS model)", "dtype": "int", "default": "8"}, {"id": "fDTs", "label": "Normalized Max Doppler (fD*Ts)", "dtype": "real", "default": "10.0/samp_rate"}, {"id": "LOS", "label": "LOS Model", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Rayleigh/NLOS", "Rician/LOS"], "option_attributes": {"hide_K": ["all", "none"]}}, {"id": "K", "label": "Rician factor (K)", "dtype": "real", "default": "4.0", "hide": "${ LOS.hide_K }"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.fading_model( ${N}, ${fDTs}, ${LOS}, ${K}, ${seed} )", "callbacks": ["set_fDTs(${fDTs})", "set_K(${K})"]}, "documentation": "This algorithm implements the method described in\\n Compact Rayleigh and Rician fading simulator based on random walk processes\\n A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel\\n 26th November 2008\\n\\n unsigned int d_N=8; // number of sinusoids\\n float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)\\n float d_K=4; // Rician factor (ratio of the specular power to the scattered power)\\n bool d_LOS=true; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.\\n uint32_t seed=0; // noise seed", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_impairments.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_impairments", "label": "HW Impairments", "parameters": [{"id": "phase_noise_mag", "label": "Phase Noise Mag. (dB)", "dtype": "float", "default": "0"}, {"id": "magbal", "label": "IQ Mag. Imbalance", "dtype": "float", "default": "0"}, {"id": "phasebal", "label": "IQ Phase. Imbalance", "dtype": "float", "default": "0"}, {"id": "q_ofs", "label": "Quadrature Offset", "dtype": "float", "default": "0"}, {"id": "i_ofs", "label": "Inphase Offset", "dtype": "float", "default": "0"}, {"id": "freq_offset", "label": "Frequency Offset", "dtype": "float", "default": "0"}, {"id": "gamma", "label": "Second Order Distortion", "dtype": "float", "default": "0"}, {"id": "beta", "label": "Third Order Distortion", "dtype": "float", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.impairments(${phase_noise_mag}, ${magbal}, ${phasebal}, ${q_ofs}, ${i_ofs}, ${freq_offset}, ${gamma}, ${beta})", "callbacks": ["set_phase_noise_mag(${phase_noise_mag})", "set_magbal(${magbal})", "set_phasebal(${phasebal})", "set_q_ofs(${q_ofs})", "set_i_ofs(${i_ofs})", "set_freq_offset(${freq_offset})", "set_gamma(${gamma})", "set_beta(${beta})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_iqbal_gen.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_iqbal_gen", "label": "IQ Imbalance Generator", "parameters": [{"id": "mag", "label": "Magnitude", "dtype": "float", "default": "0"}, {"id": "phase", "label": "Phase", "dtype": "float", "default": "0"}, {"id": "mode", "label": "Origin", "dtype": "enum", "default": "0", "options": ["0", "1"], "option_labels": ["Transmitter", "Receiver"]}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.iqbal_gen(${mag}, ${phase}, ${mode})", "callbacks": ["set_magnitude(${mag})", "set_phase(${phase})"]}, "documentation": "This block implements the single branch IQ imbalance\\ntransmitter and receiver models.\\n\\nDeveloped from source (2014):\\n\\"In-Phase and Quadrature Imbalance: Modeling, Estimation, and Compensation\\"\\n TX Impairment:\\n\\n {R}--|Multiply: 10**(mag/20)|--+--|Multiply: cos(pi*degree/180)|--X1\\nInput ---|Complex2Float|---| |--|Multiply: sin(pi*degree/180)|--X2\\n {I}--| Adder |\\n X2--| (+) |--X3\\n\\n X1--{R}--| Float 2 |--- Output\\n X3---{I}--| Complex |\\n\\n RX Impairment:\\n\\n {R}--|Multiply: cos(pi*degree/180)|-------| |\\nInput ---|Complex2Float|---| | Adder |--X1\\n {I}--+--|Multiply: sin(pi*degree/180)|----| (+) |\\n |\\n +--X2\\n\\n X1--|Multiply: 10**(mag/20)|--{R}--| Float 2 |--- Output\\n X2--------------------------------------------{I}--| Complex |\\n\\n (ASCII ART adjusted for GRC viewing)", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_phase_bal.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_phase_bal", "label": "Phase Balance", "parameters": [{"id": "alpha", "label": "Alpha", "dtype": "float", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.phase_bal(${alpha})", "callbacks": ["set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_phase_noise_gen.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_phase_noise_gen", "label": "Phase Noise Generator", "parameters": [{"id": "noise_mag", "label": "Noise Magnitude", "dtype": "float", "default": "0"}, {"id": "alpha", "label": "Alpha", "dtype": "float", "default": "0.1"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.phase_noise_gen(${noise_mag}, ${alpha})", "callbacks": ["set_noise_mag(${noise_mag})", "set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_quantizer.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_quantizer", "label": "Quantizer", "parameters": [{"id": "bits", "label": "Bits", "dtype": "int", "default": "16"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.quantizer(${bits})", "callbacks": ["set_bits(${bits})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_selective_fading_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_selective_fading_model", "label": "Frequency Selective Fading Model", "parameters": [{"id": "N", "label": "Num Sinusoids (SoS model)", "dtype": "int", "default": "8"}, {"id": "fDTs", "label": "Normalized Max Doppler (fD*Ts)", "dtype": "real", "default": "10.0/samp_rate"}, {"id": "LOS", "label": "LOS Model", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Rayleigh/NLOS", "Rician/LOS"], "option_attributes": {"hide_K": ["all", "none"]}}, {"id": "K", "label": "Rician factor (K)", "dtype": "real", "default": "4.0", "hide": "${ LOS.hide_K }"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "delays", "label": "PDP Delays (samp)", "dtype": "real_vector", "default": "(0.0,0.1,1.3)"}, {"id": "mags", "label": "PDP Magnitudes", "dtype": "real_vector", "default": "(1,0.99,0.97)"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "8"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.selective_fading_model( ${N}, ${fDTs}, ${LOS}, ${K}, ${seed}, ${delays}, ${mags}, ${ntaps} )", "callbacks": ["set_fDTs(${fDTs})", "set_K(${K})"]}, "documentation": "unsigned int d_N=8; // number of sinusoids used to simulate gain on each ray\\n float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)\\n float d_K=4; // Rician factor (ratio of the specular power to the scattered power)\\n bool d_LOS=true; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.\\n uint32_t seed=0; // noise seed\\n unsigned int ntaps; // Number of FIR taps to use in selective fading model\\n\\n These two vectors comprise the Power Delay Profile of the signal\\n float_vector delays // Time delay in the fir filter (in samples) for each arriving WSSUS Ray\\n float_vector mags // Magnitude corresponding to each WSSUS Ray\\n\\n If using a LOS model, the first delay and mag should correspond with the LOS component\\n\\n References:\\n\\n The flat-fading portion of the algorithm implements the following\\n Compact Rayleigh and Rician fading simulator based on random walk processes\\n A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel\\n 26th November 2008\\n\\n The frequency selective extension of the block roughly implements\\n A Low-Complexity Hardware Implementation of Discrete-Time\\n Frequency-Selective Rayleigh Fading Channels\\n F. Ren and Y. Zheng\\n 24-27 May 2009\\n\\n Implementation by Tim O\'Shea", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_selective_fading_model2.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_selective_fading_model2", "label": "Frequency Selective Fading Model2", "parameters": [{"id": "N", "label": "Num Sinusoids (Stochastic SoS model + delay drift)", "dtype": "int", "default": "8"}, {"id": "fDTs", "label": "Normalized Max Doppler (fD*Ts)", "dtype": "real", "default": "0.2/samp_rate"}, {"id": "LOS", "label": "LOS Model", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Rayleigh/NLOS", "Rician/LOS"], "option_attributes": {"hide_K": ["all", "none"]}}, {"id": "K", "label": "Rician factor (K)", "dtype": "real", "default": "4.0", "hide": "${ LOS.hide_K }"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}, {"id": "delays", "label": "PDP Delays (in samps)", "dtype": "real_vector", "default": "(1.0,1.9,2.7)"}, {"id": "delay_std", "label": "PDP Delay StdDev (per samp)", "dtype": "real_vector", "default": "(1e-4,1e-4,1e-4)"}, {"id": "delay_maxdev", "label": "PDP Delay Max-Dev (per samp)", "dtype": "real_vector", "default": "(0.5,0.7,0.9)"}, {"id": "mags", "label": "PDP Magnitudes", "dtype": "real_vector", "default": "(1,0.95,0.8)"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "8"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "taps", "optional": true}], "templates": {"imports": "from gnuradio import channels", "make": "channels.selective_fading_model2( ${N}, ${fDTs}, ${LOS}, ${K}, ${seed}, ${delays}, ${delay_std}, ${delay_maxdev}, ${mags}, ${ntaps} )", "callbacks": ["set_fDTs(${fDTs})", "set_K(${K})"]}, "documentation": "unsigned int d_N=8; // number of sinusoids used to simulate gain on each ray\\n float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)\\n float d_K=4; // Rician factor (ratio of the specular power to the scattered power)\\n bool d_LOS=true; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.\\n uint32_t seed=0; // noise seed\\n unsigned int ntaps; // Number of FIR taps to use in selective fading model\\n\\n These two vectors comprise the Power Delay Profile of the signal\\n float_vector delays // Time delay in the fir filter (in samples) for each arriving WSSUS Ray\\n float_vector mags // Magnitude corresponding to each WSSUS Ray\\n\\n If using a LOS model, the first delay and mag should correspond with the LOS component\\n\\n References:\\n\\n The flat-fading portion of the algorithm implements the following\\n Compact Rayleigh and Rician fading simulator based on random walk processes\\n A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel\\n 26th November 2008\\n (Algorithm III)\\n ( with a novel addition of time delay tap random walk )\\n\\n The frequency selective extension of the block roughly implements\\n A Low-Complexity Hardware Implementation of Discrete-Time\\n Frequency-Selective Rayleigh Fading Channels\\n F. Ren and Y. Zheng\\n 24-27 May 2009\\n\\n Implementation by Tim O\'Shea", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/channels_sro_model.block.yml": {"cached-at": 1646515619, "data": {"id": "channels_sro_model", "label": "SRO Model", "parameters": [{"id": "srate", "label": "Sample Rate Hz", "dtype": "real", "default": "samp_rate"}, {"id": "stdev", "label": "SRO Standard Deviation Hz per sample", "dtype": "real", "default": "0.01"}, {"id": "maxdev", "label": "Max SRO Bound Hz", "dtype": "real", "default": "1e3"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import channels", "make": "channels.sro_model(\\n ${srate},\\n ${stdev},\\n ${maxdev},\\n ${seed})", "callbacks": ["set_std_dev(${stdev})", "set_max_dev(${maxdev})", "set_samp_rate(${srate})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital.tree.yml": {"cached-at": 1646515619, "data": {"[Core]": [{"Coding": ["digital_additive_scrambler_bb", "digital_descrambler_bb", "digital_scrambler_bb"]}, {"Equalizers": ["variable_adaptive_algorithm", "digital_linear_equalizer", "digital_decision_feedback_equalizer", "digital_meas_evm_cc"]}, {"Measurement Tools": ["digital_mpsk_snr_est_cc", "digital_probe_density_b", "digital_probe_mpsk_snr_est_c"]}, {"Modulators": ["digital_cpmmod_bc", "digital_gfsk_mod", "digital_gfsk_demod", "digital_gmskmod_bc", "digital_gmsk_mod", "digital_gmsk_demod", "digital_constellation_modulator", "digital_constellation_receiver_cb", "variable_constellation", "variable_constellation_rect", "variable_modulate_vector"]}, {"Packet Operators": ["digital_correlate_access_code_tag_xx", "digital_correlate_access_code_xx_ts", "digital_crc16_async_bb", "digital_crc32_bb", "digital_crc32_async_bb", "digital_framer_sink_1", "variable_header_format_default", "digital_protocol_formatter_async", "digital_protocol_formatter_bb", "digital_protocol_parser_b", "digital_header_payload_demux", "digital_packet_headergenerator_bb", "digital_packet_headergenerator_bb_default", "digital_packet_headerparser_b", "digital_packet_headerparser_b_default", "digital_packet_sink", "digital_hdlc_framer_pb", "digital_hdlc_deframer_bp"]}, {"OFDM": ["digital_ofdm_carrier_allocator_cvc", "digital_ofdm_chanest_vcvc", "digital_ofdm_cyclic_prefixer", "digital_ofdm_frame_equalizer_vcvc", "digital_ofdm_rx", "digital_ofdm_serializer_vcc", "digital_ofdm_tx"]}, {"Symbol Coding": ["digital_binary_slicer_fb", "digital_chunks_to_symbols_xx", "digital_constellation_decoder_cb", "digital_constellation_encoder_bc", "digital_constellation_receiver_cb", "digital_constellation_soft_decoder_cf", "digital_diff_decoder_bb", "digital_diff_encoder_bb", "digital_diff_phasor_cc", "digital_map_bb"]}, {"Synchronizers": ["digital_costas_loop_cc", "digital_fll_band_edge_cc", "digital_pn_correlator_cc", "digital_symbol_sync_xx", "digital_corr_est_cc", "digital_pfb_clock_sync_xxx"]}, {"Waveform Generators": ["digital_glfsr_source_x"]}]}}, "/lib/share/gnuradio/grc/blocks/digital_adaptive_algorithm.block.yml": {"cached-at": 1646515619, "data": {"id": "variable_adaptive_algorithm", "label": "Adaptive Algorithm", "flags": ["show_id", "python"], "parameters": [{"id": "type", "label": "Algorithm Type", "dtype": "enum", "options": ["lms", "nlms", "cma"], "option_labels": ["LMS", "NLMS", "CMA"]}, {"id": "cons", "label": "Digital Constellation Object", "dtype": "raw", "hide": "part"}, {"id": "step_size", "label": "Step Size", "dtype": "float", "default": ".0001", "hide": "none"}, {"id": "modulus", "label": "Modulus", "dtype": "int", "default": 2, "hide": "${ ( \'none\' if str(type) == \\"cma\\" else \'all\') }"}, {"id": "ffactor", "label": "Forgetting Factor", "dtype": "float", "default": 0.99, "hide": "${ ( \'none\' if str(type) == \\"rls\\" else \'all\') }"}, {"id": "delta", "label": "Delta", "dtype": "float", "default": 10.0, "hide": "${ ( \'none\' if str(type) == \\"rls\\" else \'all\') }"}], "value": "${ (digital.adaptive_algorithm_lms(cons.base(), step_size)) }", "templates": {"imports": "from gnuradio import digital", "var_make": "% if str(type) == \\"lms\\" or str(type) == \\"nlms\\":\\nself.${id} = ${id} = digital.adaptive_algorithm_${type}( ${cons}, ${step_size}).base()\\n% elif str(type) == \\"cma\\":\\nself.${id} = ${id} = digital.adaptive_algorithm_${type}( ${cons}, ${step_size}, ${modulus}).base()\\n% elif str(type) == \\"rls\\":\\nself.${id} = ${id} = digital.adaptive_algorithm_${type}( ${cons}, ${ffactor}, ${delta}).base()\\n% endif"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_additive_scrambler_bb.block.yml": {"cached-at": 1646515619, "data": {"id": "digital_additive_scrambler_bb", "label": "Additive Scrambler", "flags": ["python", "cpp"], "parameters": [{"id": "mask", "label": "Mask", "dtype": "hex", "default": "0x8A"}, {"id": "seed", "label": "Seed", "dtype": "hex", "default": "0x7F"}, {"id": "len", "label": "Length", "dtype": "int", "default": "7"}, {"id": "count", "label": "Count", "dtype": "int", "default": "0"}, {"id": "bits_per_byte", "label": "Bits per byte", "dtype": "int", "default": "1"}, {"id": "reset_tag_key", "label": "Reset tag key", "dtype": "string", "default": "\\"\\""}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.additive_scrambler_bb(${mask}, ${seed}, ${len}, count=${count}, bits_per_byte=${bits_per_byte}, reset_tag_key=${reset_tag_key})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/additive_scrambler_bb.h>"], "declarations": "digital::additive_scrambler_bb::sptr ${id};", "make": "this->${id} = digital::additive_scrambler_bb::make(\\n ${mask},\\n ${seed},\\n ${len},\\n count=${count},\\n bits_per_byte=${bits_per_byte},\\n reset_tag_key=${reset_tag_key});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_binary_slicer_fb.block.yml": {"cached-at": 1646515619, "data": {"id": "digital_binary_slicer_fb", "label": "Binary Slicer", "flags": ["python", "cpp"], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.binary_slicer_fb()"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/binary_slicer_fb.h>"], "declarations": "digital::binary_slicer_fb::sptr ${id};", "make": "this->${id} = digital::binary_slicer_fb::make();", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_burst_shaper.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_burst_shaper_xx", "label": "Burst Shaper", "category": "[Core]/Packet Operators", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["float", "complex"], "option_attributes": {"fcn": ["ff", "cc"], "taps": ["float_vector", "complex_vector"]}, "hide": "part"}, {"id": "window", "label": "Window Taps", "dtype": "${ type.taps }", "default": "([])"}, {"id": "pre_padding", "label": "Pre-padding Length", "dtype": "int", "default": "0"}, {"id": "post_padding", "label": "Post-padding Length", "dtype": "int", "default": "0"}, {"id": "insert_phasing", "label": "Insert phasing symbols", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"]}, {"id": "length_tag_name", "label": "Length Tag Name", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.burst_shaper_${type.fcn}(${window}, ${pre_padding}, ${post_padding}, ${insert_phasing}, ${length_tag_name})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/burst_shaper.h>"], "declarations": "digital::burst_shaper_${type.fcn}::sptr ${id};", "make": "% if str(type.taps)==\\"float_vector\\":\\nstd::vector<float> window = {${str(window)[1:-1]}};\\n% else:\\nstd::vector<gr_complex> window = {${str(window)[1:-1]}};\\n% endif\\nthis->${id} = digital::burst_shaper_${type.fcn}::make(\\n window,\\n ${pre_padding},\\n ${post_padding},\\n ${insert_phasing},\\n ${length_tag_name});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_chunks_to_symbols.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_chunks_to_symbols_xx", "label": "Chunks to Symbols", "flags": ["python", "cpp"], "parameters": [{"id": "in_type", "label": "Input Type", "dtype": "enum", "options": ["int", "short", "byte"], "option_attributes": {"fcn": ["i", "s", "b"]}, "hide": "part"}, {"id": "out_type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["c", "f"], "table": ["complex_vector", "float_vector"]}, "hide": "part"}, {"id": "symbol_table", "label": "Symbol Table", "dtype": "${ out_type.table }"}, {"id": "dimension", "label": "Dimension", "dtype": "int", "default": "2"}, {"id": "num_ports", "label": "Num Ports", "dtype": "int", "default": "1", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ in_type }", "multiplicity": "${ num_ports }"}, {"domain": "message", "id": "set_symbol_table", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ out_type }", "multiplicity": "${ num_ports }"}], "asserts": ["${ num_ports > 0 }"], "templates": {"imports": "from gnuradio import digital", "make": "digital.chunks_to_symbols_${in_type.fcn}${out_type.fcn}(${symbol_table}, ${dimension})", "callbacks": ["set_symbol_table(${symbol_table})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/chunks_to_symbols.h>"], "declarations": "digital::chunks_to_symbols_${in_type.fcn}${out_type.fcn}::sptr ${id};", "make": "% if str(out_type.table)==\\"float_vector\\":\\nstd::vector<float> symbol_table = {${str(symbol_table)[1:-1]}};\\n% else:\\nstd::vector<gr_complex> symbol_table = {${str(symbol_table)[1:-1]}};\\n% endif\\nthis->${id} = digital::chunks_to_symbols_${in_type.fcn}${out_type.fcn}::make(\\n symbol_table,\\n ${dimension});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_symbol_table(symbol_table)"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_clock_recovery_mm_xx.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_clock_recovery_mm_xx", "label": "Clock Recovery MM", "category": "[Core]/Deprecated", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "omega", "label": "Omega", "dtype": "real", "default": "samp_per_sym*(1+0.0)"}, {"id": "gain_omega", "label": "Gain Omega", "dtype": "real", "default": "0.25*0.175*0.175"}, {"id": "mu", "label": "Mu", "dtype": "real", "default": "0.5"}, {"id": "gain_mu", "label": "Gain Mu", "dtype": "real", "default": "0.175"}, {"id": "omega_relative_limit", "label": "Omega Relative Limit", "dtype": "real", "default": "0.005"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.clock_recovery_mm_${type.fcn}(${omega}, ${gain_omega}, ${mu}, ${gain_mu}, ${omega_relative_limit})", "callbacks": ["set_omega(${omega})", "set_gain_omega(${gain_omega})", "set_mu(${mu})", "set_gain_mu(${gain_mu})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/clock_recovery_mm_${type.fcn}.h>"], "declarations": "digital::clock_recovery_mm_${type.fcn}::sptr ${id};", "make": "this->${id} = digital::clock_recovery_mm_${in_type.fcn}::make(\\n ${omega},\\n ${gain_omega},\\n ${mu},\\n ${gain_mu},\\n ${omega_relative_limit});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_omega(${omega})", "set_gain_omega(${gain_omega})", "set_mu(${mu})", "set_gain_mu(${gain_mu})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation.block.yml": {"cached-at": 1646515620, "data": {"id": "variable_constellation", "label": "Constellation Object", "category": "Modulators", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "type", "label": "Constellation Type", "dtype": "enum", "options": ["calcdist", "bpsk", "qpsk", "dqpsk", "8psk", "16qam"], "option_labels": ["Variable Constellation", "BPSK", "QPSK", "DQPSK", "8PSK", "16QAM"]}, {"id": "sym_map", "label": "Symbol Map", "dtype": "int_vector", "default": "[0, 1, 3, 2]", "hide": "${ ( \'none\' if str(type) == \\"calcdist\\" else \'all\') }"}, {"id": "const_points", "label": "Constellation Points", "dtype": "complex_vector", "default": "[-1-1j, -1+1j, 1+1j, 1-1j]", "hide": "${ ( \'none\' if str(type) == \\"calcdist\\" else \'all\') }"}, {"id": "rot_sym", "label": "Rotational Symmetry", "dtype": "int", "default": "4", "hide": "${ ( \'none\' if str(type) == \\"calcdist\\" else \'all\') }"}, {"id": "dims", "label": "Dimensionality", "dtype": "int", "default": "1", "hide": "${ ( \'none\' if str(type) == \\"calcdist\\" else \'all\') }"}, {"id": "normalization", "label": "Normalization Type", "dtype": "raw", "default": "digital.constellation.AMPLITUDE_NORMALIZATION", "options": ["digital.constellation.NO_NORMALIZATION", "digital.constellation.POWER_NORMALIZATION", "digital.constellation.AMPLITUDE_NORMALIZATION"], "option_labels": ["None", "Power", "Amplitude"], "hide": "${ ( \'none\' if str(type) == \\"calcdist\\" else \'all\') }"}, {"id": "precision", "label": "Soft Decisions Precision", "dtype": "int", "default": "8", "hide": "part"}, {"id": "soft_dec_lut", "label": "Soft Decisions LUT", "dtype": "raw", "default": "None", "hide": "${ (\'part\' if str(soft_dec_lut) == \'None\' else \'none\') }"}], "value": "${ digital.constellation_calcdist(const_points, sym_map, rot_sym, dims, normalization) if (str(type) == \\"calcdist\\") else getattr(digital,\'constellation_\'+str(type))() }", "templates": {"imports": "from gnuradio import digital", "var_make": "% if str(type) == \\"calcdist\\":\\nself.${id} = ${id} = digital.constellation_calcdist(${const_points}, ${sym_map},\\n${rot_sym}, ${dims}, ${normalization}).base()\\n% else:\\nself.${id} = ${id} = digital.constellation_${type}().base()\\n% endif\\n% if str(soft_dec_lut).lower() == \'\\"auto\\"\' or str(soft_dec_lut).lower() == \\"\'auto\'\\":\\nself.${id}.gen_soft_dec_lut(${precision})\\n% elif str(soft_dec_lut) != \\"None\\":\\nself.${id}.set_soft_dec_lut(${soft_dec_lut}, ${precision})\\n% endif"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/constellation.h>"], "declarations": "digital::constellation::sptr ${id};", "var_make": "std::vector<int> sym_map = {${str(sym_map)[1:-1]}};\\nstd::vector<gr_complex> const_points = {${str(const_points)[1:-1]}};\\n% if str(type) == \\"calcdist\\":\\nthis->${id} = digital::constellation_calcdist(const_points, sym_map,\\n${rot_sym}, ${dims}).base();\\n% else:\\nthis->${id} = ${id} = digital::constellation_${type}().base();\\n% endif\\n% if str(soft_dec_lut).lower() == \'\\"auto\\"\' or str(soft_dec_lut).lower() == \\"\'auto\'\\":\\nthis->${id}.gen_soft_dec_lut(${precision});\\n% elif str(soft_dec_lut) != \\"None\\":\\nthis->${id}.set_soft_dec_lut(${soft_dec_lut}, ${precision});\\n% endif", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_decoder_cb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_constellation_decoder_cb", "label": "Constellation Decoder", "flags": ["python", "cpp"], "parameters": [{"id": "constellation", "label": "Constellation Object", "dtype": "raw"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.constellation_decoder_cb(${constellation})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/constellation_decoder_cb.h>"], "declarations": "digital::constellation_decoder_cb::sptr ${id};", "make": "this->${id} = digital::constellation_decoder_cb::make(${constellation});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_encoder_bc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_constellation_encoder_bc", "label": "Constellation Encoder", "flags": ["python", "cpp"], "parameters": [{"id": "constellation", "label": "Constellation Object", "dtype": "raw"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.constellation_encoder_bc(${constellation})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/constellation_encoder_bc.h>"], "declarations": "digital::constellation_encoder_bc::sptr ${id};", "make": "this->${id} = digital::constellation_encoder_bc::make(${constellation});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_modulator.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_constellation_modulator", "label": "Constellation Modulator", "flags": ["python"], "parameters": [{"id": "constellation", "label": "Constellation", "dtype": "raw"}, {"id": "differential", "label": "Differential Encoding", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "excess_bw", "label": "Excess BW", "dtype": "real", "default": "0.35"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}, {"id": "truncate", "label": "Truncate Filter Transient", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "${ (\'part\' if str(truncate) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.generic_mod(\\n constellation=${constellation},\\n differential=${differential},\\n samples_per_symbol=${samples_per_symbol},\\n pre_diff_code=True,\\n excess_bw=${excess_bw},\\n verbose=${verbose},\\n log=${log},\\n truncate=${truncate})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_receiver_cb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_constellation_receiver_cb", "label": "Constellation Receiver", "flags": ["python", "cpp"], "parameters": [{"id": "constellation", "label": "Constellation Object", "dtype": "raw"}, {"id": "loop_bw", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "fmin", "label": "Minimum Freq Deviation", "dtype": "real"}, {"id": "fmax", "label": "Maximum Freq Deviation", "dtype": "real"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "set_constellation", "optional": true, "hide": "${ not showports }"}, {"domain": "message", "id": "rotate_phase", "optional": true, "hide": "${ not showports }"}], "outputs": [{"domain": "stream", "dtype": "byte"}, {"label": "error", "domain": "stream", "dtype": "float", "optional": true}, {"label": "phase", "domain": "stream", "dtype": "float", "optional": true}, {"label": "frequency", "domain": "stream", "dtype": "float", "optional": true}, {"label": "symbol", "domain": "stream", "dtype": "complex", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.constellation_receiver_cb(${constellation}, ${loop_bw}, ${fmin}, ${fmax})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/constellation_receiver_cb.h>"], "declarations": "digital::constellation_receiver_cb::sptr ${id};", "make": "this->${id} = digital::constellation_receiver_cb::make(\\n ${constellation},\\n ${loop_bw},\\n ${fmin},\\n ${fmax}));", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_rect.block.yml": {"cached-at": 1646515620, "data": {"id": "variable_constellation_rect", "label": "Constellation Rect. Object", "category": "Modulators", "flags": ["show_id", "python"], "parameters": [{"id": "sym_map", "label": "Symbol Map", "dtype": "int_vector", "default": "[0, 1, 3, 2]"}, {"id": "const_points", "label": "Constellation Points", "dtype": "complex_vector", "default": "[-1-1j, -1+1j, 1+1j, 1-1j]"}, {"id": "rot_sym", "label": "Rotational Symmetry", "dtype": "int", "default": "4"}, {"id": "real_sect", "label": "Real Sectors", "dtype": "int", "default": "2"}, {"id": "imag_sect", "label": "Imaginary Sectors", "dtype": "int", "default": "2"}, {"id": "w_real_sect", "label": "Width Real Sectors", "dtype": "int", "default": "1"}, {"id": "w_imag_sect", "label": "Width Imaginary Sectors", "dtype": "int", "default": "1"}, {"id": "precision", "label": "Soft bits precision", "dtype": "int", "default": "8", "hide": "part"}, {"id": "soft_dec_lut", "label": "Soft Decisions LUT", "dtype": "raw", "default": "None", "hide": "${ (\'part\' if str(soft_dec_lut) == \'None\' else \'none\') }"}], "value": "${ digital.constellation_rect(const_points, sym_map, rot_sym, real_sect, imag_sect, w_real_sect, w_imag_sect) }", "templates": {"imports": "from gnuradio import digital", "var_make": "self.${id} = ${id} = digital.constellation_rect(${const_points}, ${sym_map},\\n${rot_sym}, ${real_sect}, ${imag_sect}, ${w_real_sect}, ${w_imag_sect}).base()\\n% if str(soft_dec_lut).lower() == \'\\"auto\\"\' or str(soft_dec_lut).lower() == \\"\'auto\'\\":\\nself.${id}.gen_soft_dec_lut(${precision})\\n% elif str(soft_dec_lut) != \\"None\\":\\nself.${id}.set_soft_dec_lut(${soft_dec_lut}, ${precision})\\n% endif"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_constellation_soft_decoder_cf.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_constellation_soft_decoder_cf", "label": "Constellation Soft Decoder", "flags": ["python", "cpp"], "parameters": [{"id": "constellation", "label": "Constellation Object", "dtype": "raw"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.constellation_soft_decoder_cf(${constellation})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/constellation_soft_decoder_cf.h>"], "declarations": "digital::constellation_soft_decoder_cf::sptr ${id};", "make": "this->${id} = digital::constellation_soft_decoder_cf::make(${constellation});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_corr_est_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_corr_est_cc", "label": "Correlation Estimator", "flags": ["python", "cpp"], "parameters": [{"id": "symbols", "label": "Symbols", "dtype": "complex_vector"}, {"id": "sps", "label": "Samples per Symbol", "dtype": "float"}, {"id": "mark_delay", "label": "Tag marking delay", "dtype": "int"}, {"id": "threshold", "label": "Threshold", "dtype": "float", "default": "0.9"}, {"id": "threshold_method", "label": "Threshold Method", "dtype": "enum", "options": ["digital.THRESHOLD_ABSOLUTE", "digital.THRESHOLD_DYNAMIC"], "option_labels": ["Absolute", "Dynamic"]}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"label": "corr", "domain": "stream", "dtype": "complex", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.corr_est_cc(${symbols}, ${sps}, ${mark_delay}, ${threshold}, ${threshold_method})", "callbacks": ["set_mark_delay(${mark_delay})", "set_threshold(${threshold})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/corr_est_cc.h>"], "declarations": "digital::corr_est_cc::sptr ${id};", "make": "std::vector<gr_complex> symbols = {${str(symbols)[1:-1]}};\\nthis->${id} = digital::corr_est_cc::make(\\n symbols,\\n ${sps},\\n ${mark_delay},\\n ${threshold},\\n ${threshold_method});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_mark_delay(${mark_delay})", "set_threshold(${threshold})"], "translations": {"digital\\\\.": "digital::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_correlate_access_code_tag_xx.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_correlate_access_code_tag_xx", "label": "Correlate Access Code - Tag", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["byte", "float"], "option_attributes": {"fcn": ["bb", "ff"]}, "hide": "part"}, {"id": "access_code", "label": "Access Code", "dtype": "string", "default": "101010"}, {"id": "threshold", "label": "Threshold", "dtype": "int"}, {"id": "tagname", "label": "Tag Name", "dtype": "string"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.correlate_access_code_tag_${type.fcn}(${access_code}, ${threshold}, ${tagname})", "callbacks": ["set_access_code(${access_code})", "set_threshold(${threshold})", "set_tagname(${tagname})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/correlate_access_code_tag_${type.fcn}.h>"], "declarations": "digital::correlate_access_code_tag_${type.fcn}::sptr ${id};", "make": "this->${id} = digital::correlate_access_code_tag_${type.fcn}::make(\\n ${access_code},\\n ${threshold},\\n ${tagname});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_access_code(${access_code})", "set_threshold(${threshold})", "set_tagname(${tagname})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_correlate_access_code_xx_ts.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_correlate_access_code_xx_ts", "label": "Correlate Access Code - Tag Stream", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "IO Type", "dtype": "enum", "options": ["float", "byte"], "option_attributes": {"fcn": ["ff", "bb"]}, "hide": "part"}, {"id": "access_code", "label": "Access Code", "dtype": "string", "default": "101010"}, {"id": "threshold", "label": "Threshold", "dtype": "int"}, {"id": "tagname", "label": "Tag Name", "dtype": "string"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.correlate_access_code_${type.fcn}_ts(${access_code},\\n ${threshold}, ${tagname})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/correlate_access_code_${type.fcn}_ts.h>"], "declarations": "digital::correlate_access_code_${type.fcn}_ts::sptr ${id};", "make": "this->${id} = digital::correlate_access_code_${type.fcn}_ts::make(\\n ${access_code},\\n ${threshold},\\n ${tagname});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_costas_loop_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_costas_loop_cc", "label": "Costas Loop", "flags": ["python", "cpp"], "parameters": [{"id": "w", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "order", "label": "Order", "dtype": "int"}, {"id": "use_snr", "label": "Use SNR", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}, {"domain": "message", "id": "noise", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"label": "frequency", "domain": "stream", "dtype": "float", "optional": true}, {"label": "phase", "domain": "stream", "dtype": "float", "optional": true}, {"label": "error", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.costas_loop_cc(${w}, ${order}, ${use_snr})", "callbacks": ["set_loop_bandwidth(${w})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/costas_loop_cc.h>"], "declarations": "digital::costas_loop_cc::sptr ${id};", "make": "this->${id} = digital::costas_loop_cc::make(\\n ${w},\\n ${order},\\n ${use_snr});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_loop_bandwidth(${w})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_cpmmod_bc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_cpmmod_bc", "label": "Continuous Phase Modulation", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "CPM Type", "dtype": "enum", "options": ["analog.cpm.LREC", "analog.cpm.LRC", "analog.cpm.LSRC", "analog.cpm.TFM", "analog.cpm.GAUSSIAN"], "option_labels": ["L-REC (Rectangular phase response)", "L-RC (Raised Cosine)", "L-SRC (Spectral raised cosine)", "TFM (Tamed frequency modulation)", "Gaussian"]}, {"id": "mod_index", "label": "Modulation Index", "dtype": "real", "default": "0.5"}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "4"}, {"id": "L", "label": "Pulse Duration (Symbols)", "dtype": "int", "default": "4"}, {"id": "beta", "label": "Phase Response Parameter (BT or Beta)", "dtype": "real", "default": "0.3"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import gr, digital, analog", "make": "digital.cpmmod_bc(${type}, ${mod_index}, ${samples_per_symbol}, ${L}, ${beta})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/cpmmod_bc.h>"], "declarations": "digital::cpmmod_bc::sptr ${id};", "make": "this->${id} = digital::cpmmod_bc::make(\\n ${type},\\n ${mod_index},\\n ${samples_per_symbol},\\n ${L},\\n ${beta});", "link": ["gnuradio::gnuradio-digital"], "translations": {"analog\\\\.cpm\\\\.": "analog::cpm::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_crc16_async_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_crc16_async_bb", "label": "Async CRC16", "flags": ["python", "cpp"], "parameters": [{"id": "check", "label": "Mode", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Generate CRC", "Check CRC"]}], "inputs": [{"domain": "message", "id": "in", "optional": true}], "outputs": [{"domain": "message", "id": "out", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.crc16_async_bb(${check})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/crc16_async_bb.h>"], "declarations": "digital::crc16_async_bb::sptr ${id};", "make": "this->${id} = digital::crc16_async_bb::make(\\n ${check});", "link": ["gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_crc32_async_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_crc32_async_bb", "label": "Async CRC32", "flags": ["python", "cpp"], "parameters": [{"id": "check", "label": "Mode", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Generate CRC", "Check CRC"]}], "inputs": [{"domain": "message", "id": "in", "optional": true}], "outputs": [{"domain": "message", "id": "out", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.crc32_async_bb(${check})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/crc32_async_bb.h>"], "declarations": "digital::crc32_async_bb::sptr ${id};", "make": "this->${id} = digital::crc32_async_bb::make(\\n ${check});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_crc32_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_crc32_bb", "label": "Stream CRC32", "flags": ["python", "cpp"], "parameters": [{"id": "check", "label": "Mode", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Generate CRC", "Check CRC"]}, {"id": "lengthtagname", "label": "Length tag name", "dtype": "string", "default": "\\"packet_len\\""}, {"id": "packed", "label": "Packed", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.crc32_bb(${check}, ${lengthtagname}, ${packed})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/crc32_bb.h>"], "declarations": "digital::crc32_bb::sptr ${id};", "make": "this->${id} = digital::crc32_bb::make(\\n ${check},\\n ${lengthtagname},\\n ${packed});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_decision_feedback_equalizer.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_decision_feedback_equalizer", "label": "Decision Feedback Equalizer", "category": "[Equalizers]", "flags": ["python"], "templates": {"imports": "from gnuradio import digital", "make": "digital.decision_feedback_equalizer(${num_taps_fwd}, ${num_taps_rev}, ${sps}, ${alg}, ${adapt_after_training}, ${training_sequence}, ${training_start_tag})"}, "parameters": [{"id": "num_taps_fwd", "label": "Num. Taps (Forward)", "dtype": "int", "default": 5}, {"id": "num_taps_rev", "label": "Num. Taps (Feedback)", "dtype": "int", "default": 3}, {"id": "training_sequence", "label": "Training Sequence", "dtype": "complex_vector", "default": "[ ]", "hide": "part"}, {"id": "training_start_tag", "label": "Training Start Tag", "dtype": "string", "default": "corr_est", "hide": "part"}, {"id": "adapt_after_training", "label": "Adapt After Training", "dtype": "bool", "default": "True", "hide": "part"}, {"id": "sps", "label": "Input Samples per Symbol", "dtype": "int"}, {"id": "alg", "label": "Adaptive Algorithm Object", "dtype": "raw", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"label": "taps", "domain": "stream", "dtype": "complex", "vlen": "${num_taps_fwd+num_taps_rev}", "optional": true}, {"label": "state", "domain": "stream", "dtype": "short", "optional": true}], "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_descrambler_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_descrambler_bb", "label": "Descrambler", "flags": ["python", "cpp"], "parameters": [{"id": "mask", "label": "Mask", "dtype": "hex", "default": "0x8A"}, {"id": "seed", "label": "Seed", "dtype": "hex", "default": "0x7F"}, {"id": "len", "label": "Length", "dtype": "int", "default": "7"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.descrambler_bb(${mask}, ${seed}, ${len})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/descrambler_bb.h>"], "declarations": "digital::descrambler_bb::sptr ${id};", "make": "this->${id} = digital::descrambler_bb::make(\\n ${mask},\\n ${seed},\\n ${len});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_diff_decoder_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_diff_decoder_bb", "label": "Differential Decoder", "flags": ["python", "cpp"], "parameters": [{"id": "coding", "label": "Coding", "dtype": "enum", "default": "digital.DIFF_DIFFERENTIAL", "options": ["digital.DIFF_DIFFERENTIAL", "digital.DIFF_NRZI"], "option_labels": ["Differential", "NRZI"], "option_attributes": {"hide_modulus": ["none", "all"], "force_modulus": [-1, 2]}}, {"id": "modulus", "label": "Modulus", "dtype": "int", "hide": "${ coding.hide_modulus }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.diff_decoder_bb(${modulus if coding.force_modulus == \'-1\' else coding.force_modulus}, ${coding})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/diff_decoder_bb.h>"], "declarations": "digital::diff_decoder_bb::sptr ${id};", "make": "this->${id} = digital::diff_decoder_bb::make(${modulus if coding.force_modulus == \'-1\' else coding.force_modulus}, ${coding});", "link": ["gnuradio::gnuradio-digital"], "translations": {"digital\\\\.DIFF": "digital::DIFF"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_diff_encoder_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_diff_encoder_bb", "label": "Differential Encoder", "flags": ["python", "cpp"], "parameters": [{"id": "coding", "label": "Coding", "dtype": "enum", "default": "digital.DIFF_DIFFERENTIAL", "options": ["digital.DIFF_DIFFERENTIAL", "digital.DIFF_NRZI"], "option_labels": ["Differential", "NRZI"], "option_attributes": {"hide_modulus": ["none", "all"], "force_modulus": [-1, 2]}}, {"id": "modulus", "label": "Modulus", "dtype": "int", "hide": "${ coding.hide_modulus }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.diff_encoder_bb(${modulus if coding.force_modulus == \'-1\' else coding.force_modulus}, ${coding})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/diff_encoder_bb.h>"], "declarations": "digital::diff_encoder_bb::sptr ${id};", "make": "this->${id} = digital::diff_encoder_bb::make(${modulus if coding.force_modulus == \'-1\' else coding.force_modulus}, ${coding});", "link": ["gnuradio::gnuradio-digital"], "translations": {"digital\\\\.DIFF": "digital::DIFF"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_diff_phasor_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_diff_phasor_cc", "label": "Differential Phasor", "flags": ["python", "cpp"], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.diff_phasor_cc()"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/diff_phasor_cc.h>"], "declarations": "digital::diff_phasor_cc::sptr ${id};", "make": "this->${id} = digital::diff_phasor_cc::make();", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_fll_band_edge_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_fll_band_edge_cc", "label": "FLL Band-Edge", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["cc"], "option_labels": ["Complex->Complex"], "option_attributes": {"input": ["complex"], "output": ["complex"]}, "hide": "part"}, {"id": "samps_per_sym", "label": "Samples Per Symbol", "dtype": "real"}, {"id": "rolloff", "label": "Filter Rolloff Factor", "dtype": "real"}, {"id": "filter_size", "label": "Prototype Filter Size", "dtype": "int"}, {"id": "w", "label": "Loop Bandwidth", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}, {"label": "freq", "domain": "stream", "dtype": "float", "optional": true}, {"label": "phase", "domain": "stream", "dtype": "float", "optional": true}, {"label": "error", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.fll_band_edge_cc(${samps_per_sym}, ${rolloff}, ${filter_size}, ${w})", "callbacks": ["set_loop_bandwidth(${w})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/fll_band_edge_cc.h>"], "declarations": "digital::fll_band_edge_cc::sptr ${id};", "make": "this->${id} = digital::fll_band_edge_cc::make(\\n ${samps_per_sym},\\n ${rolloff},\\n ${filter_size},\\n ${w});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_loop_bandwidth(${w})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_framer_sink_1.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_framer_sink_1", "label": "Framer Sink 1", "flags": ["python", "cpp"], "parameters": [{"id": "target_queue", "label": "Target Message Queue", "dtype": "raw"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.framer_sink_1(${target_queue})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/framer_sink_1.h>"], "declarations": "digital::framer_sink_1::sptr ${id};", "make": "this->${id} = digital::framer_sink_1::make(${target_queue});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_gfsk_demod.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_gfsk_demod", "label": "GFSK Demod", "flags": ["python"], "parameters": [{"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "sensitivity", "label": "Sensitivity", "dtype": "real", "default": "1.0"}, {"id": "gain_mu", "label": "Gain Mu", "dtype": "real", "default": "0.175"}, {"id": "mu", "label": "Mu (Unused)", "dtype": "real", "default": "0.5"}, {"id": "omega_relative_limit", "label": "Omega Relative Limit", "dtype": "real", "default": "0.005"}, {"id": "freq_error", "label": "Freq Error", "dtype": "real", "default": "0.0"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.gfsk_demod(\\n samples_per_symbol=${samples_per_symbol},\\n sensitivity=${sensitivity},\\n gain_mu=${gain_mu},\\n mu=${mu},\\n omega_relative_limit=${omega_relative_limit},\\n freq_error=${freq_error},\\n verbose=${verbose},\\n log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_gfsk_mod.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_gfsk_mod", "label": "GFSK Mod", "flags": ["python"], "parameters": [{"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "sensitivity", "label": "Sensitivity", "dtype": "real", "default": "1.0"}, {"id": "bt", "label": "BT", "dtype": "real", "default": "0.35"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}, {"id": "do_unpack", "label": "Unpack", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if do_unpack else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.gfsk_mod(\\n samples_per_symbol=${samples_per_symbol},\\n sensitivity=${sensitivity},\\n bt=${bt},\\n verbose=${verbose},\\n log=${log},\\n do_unpack=${do_unpack})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_glfsr_source_x.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_glfsr_source_x", "label": "GLFSR Source", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["float", "byte"], "option_attributes": {"fcn": ["f", "b"]}, "hide": "part"}, {"id": "degree", "label": "Degree", "dtype": "int"}, {"id": "repeat", "label": "Repeat", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "mask", "label": "Mask", "dtype": "int", "default": "0"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "1"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.glfsr_source_${type.fcn}(${degree}, ${repeat}, ${mask}, ${seed})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/glfsr_source_${type.fcn}.h>"], "declarations": "digital::glfsr_source_${type.fcn}::sptr ${id};", "make": "this->${id} = digital::glfsr_source_${type.fcn}::make(\\n ${degree},\\n ${repeat},\\n ${mask},\\n ${seed});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_gmsk_demod.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_gmsk_demod", "label": "GMSK Demod", "flags": ["python"], "parameters": [{"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "gain_mu", "label": "Gain Mu", "dtype": "real", "default": "0.175"}, {"id": "mu", "label": "Mu (Unused)", "dtype": "real", "default": "0.5"}, {"id": "omega_relative_limit", "label": "Omega Relative Limit", "dtype": "real", "default": "0.005"}, {"id": "freq_error", "label": "Freq Error", "dtype": "real", "default": "0.0"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.gmsk_demod(\\n samples_per_symbol=${samples_per_symbol},\\n gain_mu=${gain_mu},\\n mu=${mu},\\n omega_relative_limit=${omega_relative_limit},\\n freq_error=${freq_error},\\n verbose=${verbose},log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_gmsk_mod.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_gmsk_mod", "label": "GMSK Mod", "flags": ["python"], "parameters": [{"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "bt", "label": "BT", "dtype": "real", "default": "0.35"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}, {"id": "do_unpack", "label": "Unpack", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if do_unpack else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.gmsk_mod(\\n samples_per_symbol=${samples_per_symbol},\\n bt=${bt},\\n verbose=${verbose},\\n log=${log},\\n do_unpack=${do_unpack})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_gmskmod_bc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_gmskmod_bc", "label": "GMSK Modulator", "flags": ["python"], "parameters": [{"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "bt", "label": "3 dB Time-Bandwidth Product", "dtype": "real", "default": "0.3"}, {"id": "L", "label": "Pulse Duration (Symbols)", "dtype": "int", "default": "4"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.gmskmod_bc(${samples_per_symbol}, ${L}, ${bt})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_hdlc_deframer_bp.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_hdlc_deframer_bp", "label": "HDLC Deframer", "flags": ["python", "cpp"], "parameters": [{"id": "min", "label": "Min length", "dtype": "int", "default": "32"}, {"id": "max", "label": "Max length", "dtype": "int", "default": "500"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "message", "id": "out"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.hdlc_deframer_bp(${min}, ${max})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/hdlc_deframer_bp.h>"], "declarations": "digital::hdlc_deframer_bp::sptr ${id};", "make": "this->${id} = digital::hdlc_deframer_bp::make(\\n ${min},\\n ${max});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_hdlc_framer_pb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_hdlc_framer_pb", "label": "HDLC Framer", "flags": ["python", "cpp"], "parameters": [{"id": "frame_tag_name", "label": "Frame tag name", "dtype": "string"}], "inputs": [{"domain": "message", "id": "in"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.hdlc_framer_pb(${frame_tag_name})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/hdlc_framer_pb.h>"], "declarations": "digital::hdlc_framer_pb::sptr ${id};", "make": "this->${id} = digital::hdlc_framer_pb::make(${frame_tag_name});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_header_payload_demux.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_header_payload_demux", "label": "Header/Payload Demux", "flags": ["python", "cpp"], "parameters": [{"id": "header_len", "label": "Header Length (Symbols)", "dtype": "int"}, {"id": "header_padding", "label": "Header Padding (Uncertainty / Symbols)", "dtype": "int", "default": "0"}, {"id": "items_per_symbol", "label": "Items per symbol", "dtype": "int", "hide": "${ \'none\' if output_symbols else \'part\' }"}, {"id": "guard_interval", "label": "Guard Interval (items)", "dtype": "int", "default": "0", "hide": "${ (\'none\' if guard_interval else \'part\') }"}, {"id": "length_tag_key", "label": "Length tag key", "dtype": "string", "default": "\\"frame_len\\""}, {"id": "trigger_tag_key", "label": "Trigger tag key", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if trigger_tag_key else \'part\') }"}, {"id": "output_symbols", "label": "Output Format", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Items", "Symbols"], "hide": "${ \'none\' if output_symbols else \'part\' }"}, {"id": "type", "label": "IO Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_attributes": {"itemsize": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "timing_tag_key", "label": "Timing tag key", "dtype": "string", "default": "\\"rx_time\\""}, {"id": "samp_rate", "label": "Sampling Rate", "dtype": "real", "default": "samp_rate"}, {"id": "special_tags", "label": "Special Tag Keys", "dtype": "raw", "default": "(,)"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}, {"label": "trigger", "domain": "stream", "dtype": "byte", "optional": true}, {"domain": "message", "id": "header_data"}], "outputs": [{"label": "out_hdr", "domain": "stream", "dtype": "${ type }", "vlen": "${ items_per_symbol if output_symbols else 1 }"}, {"label": "out_payload", "domain": "stream", "dtype": "${ type }", "vlen": "${ items_per_symbol if output_symbols else 1 }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.header_payload_demux(\\n ${header_len},\\n ${items_per_symbol},\\n ${guard_interval},\\n ${length_tag_key},\\n ${trigger_tag_key},\\n ${output_symbols},\\n ${type.itemsize},\\n ${timing_tag_key},\\n ${samp_rate},\\n ${special_tags},\\n ${header_padding})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/header_payload_demux.h>"], "declarations": "digital::header_payload_demux::sptr ${id};", "make": "this->${id} = digital::header_payload_demux::make(\\n ${header_len},\\n ${items_per_symbol},\\n ${guard_interval},\\n ${length_tag_key},\\n ${trigger_tag_key},\\n ${output_symbols},\\n ${type.itemsize},\\n ${timing_tag_key},\\n ${samp_rate},\\n ${special_tags},\\n ${header_padding});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_linear_equalizer.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_linear_equalizer", "label": "Linear Equalizer", "category": "[Equalizers]", "flags": ["python"], "parameters": [{"id": "num_taps", "label": "Num. Taps", "dtype": "int"}, {"id": "sps", "label": "Input Samples per Symbol", "dtype": "int"}, {"id": "alg", "label": "Adaptive Algorithm Object", "dtype": "raw", "hide": "part"}, {"id": "adapt_after_training", "label": "Adapt After Training", "dtype": "bool", "default": "True", "hide": "part"}, {"id": "training_sequence", "label": "Training Sequence", "dtype": "complex_vector", "default": "[ ]", "hide": "part"}, {"id": "training_start_tag", "label": "Training Start Tag", "dtype": "string", "default": "corr_est", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"label": "taps", "domain": "stream", "dtype": "complex", "vlen": "${num_taps}", "optional": true}, {"label": "state", "domain": "stream", "dtype": "short", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.linear_equalizer(${num_taps}, ${sps}, ${alg}, ${adapt_after_training}, ${training_sequence}, ${training_start_tag})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_map_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_map_bb", "label": "Map", "flags": ["python", "cpp"], "parameters": [{"id": "map", "label": "Map", "dtype": "int_vector"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.map_bb(${map})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/map_bb.h>"], "declarations": "digital::map_bb::sptr ${id};", "make": "std::vector<int> map = {${str(map)[1:-1]}};\\nthis->${id} = digital::map_bb::make(map);", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_meas_evm_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_meas_evm_cc", "label": "EVM Measurement", "category": "[Equalizers]", "templates": {"imports": "from gnuradio import digital", "make": "digital.meas_evm_cc(${cons},${meas_type})"}, "parameters": [{"id": "cons", "label": "Digital Constellation Object", "dtype": "raw", "hide": "part"}, {"id": "meas_type", "label": "EVM Meas Type", "dtype": "enum", "options": ["digital.evm_measurement_t.EVM_PERCENT", "digital.evm_measurement_t.EVM_DB"], "option_labels": ["Percent", "Power-Ratio (dB)"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": 1}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": 1}], "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_modulate_vector.block.yml": {"cached-at": 1646515620, "data": {"id": "variable_modulate_vector", "label": "Modulate Vector", "category": "Modulators", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "mod", "label": "Modulator", "dtype": "raw"}, {"id": "data", "label": "Data vector", "dtype": "int_vector"}, {"id": "taps", "label": "Filter taps", "dtype": "float_vector"}], "value": "${ digital.modulate_vector_bc(mod.to_basic_block(), data, taps) }", "templates": {"imports": "from gnuradio import digital", "var_make": "self.${id} = ${id} = digital.modulate_vector_bc(${mod}.to_basic_block(), ${data}, ${taps})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/modulate_vector.h>"], "declarations": "digital::modulate_vector_bc::sptr ${id};", "var_make": "std::vector<int> data = {${str(data)[1:-1]}};\\nstd::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = ${id} = digital::modulate_vector_bc(${mod}.to_basic_block(),\\ndata, taps);", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_mpsk_snr_est_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_mpsk_snr_est_cc", "label": "MPSK SNR Estimator", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["0", "1", "2", "3"], "option_labels": ["Simple", "Skewness", "2nd and 4th Moment", "SVR"]}, {"id": "tag_nsamples", "label": "Samples between tags", "dtype": "int", "default": "10000"}, {"id": "alpha", "label": "Filter Alpha", "dtype": "real", "default": "0.001"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.mpsk_snr_est_cc(${type}, ${tag_nsamples}, ${alpha})", "callbacks": ["set_type(${type})", "set_tag_nsamples(${tag_nsamples})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/mpsk_snr_est_cc.h>"], "declarations": "digital::mpsk_snr_est_cc::sptr ${id};", "make": "this->${id} = digital::mpsk_snr_est_cc::make(\\n ${type},\\n ${tag_nsamples},\\n ${alpha});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_type(${type})", "set_tag_nsamples(${tag_nsamples})", "set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_msk_timing_recovery_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_msk_timing_recovery_cc", "label": "MSK Timing Recovery", "category": "[Core]/Deprecated", "flags": ["python", "cpp"], "parameters": [{"id": "gain", "label": "Gain", "dtype": "float"}, {"id": "sps", "label": "Samples per symbol", "dtype": "float"}, {"id": "limit", "label": "Error limit", "dtype": "float"}, {"id": "osps", "label": "Output samples per symbol", "dtype": "int"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}, {"label": "err", "domain": "stream", "dtype": "float", "optional": true}, {"label": "omega", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.msk_timing_recovery_cc(${sps}, ${gain}, ${limit}, ${osps})", "callbacks": ["set_gain(${gain})", "set_sps(${sps})", "set_limit(${limit})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/msk_timing_recovery_cc.h>"], "declarations": "digital::msk_timing_recovery_cc::sptr ${id};", "make": "this->${id} = digital::msk_timing_recovery_cc::make(\\n ${sps},\\n ${gain},\\n ${limit},\\n ${osps});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_gain(${gain})", "set_sps(${sps})", "set_limit(${limit})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_carrier_allocator_cvc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_carrier_allocator_cvc", "label": "OFDM Carrier Allocator", "flags": ["python", "cpp"], "parameters": [{"id": "fft_len", "label": "FFT length", "dtype": "int", "default": "fft_len", "hide": "${ \'part\' if fft_len == 1 else \'none\' }"}, {"id": "occupied_carriers", "label": "Occupied Carriers", "dtype": "raw"}, {"id": "pilot_carriers", "label": "Pilot Carriers", "dtype": "raw", "default": "((),)"}, {"id": "pilot_symbols", "label": "Pilot Symbols", "dtype": "raw", "default": "((),)"}, {"id": "sync_words", "label": "Sync Words", "dtype": "raw", "default": "((),)"}, {"id": "len_tag_key", "label": "Length tag key", "dtype": "string", "default": "\\"packet_len\\""}, {"id": "output_is_shifted", "label": "Shift Output", "dtype": "enum", "default": "True", "options": ["False", "True"], "option_labels": ["No", "Yes"]}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ fft_len }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_carrier_allocator_cvc( ${fft_len}, ${occupied_carriers}, ${pilot_carriers}, ${pilot_symbols}, ${sync_words}, ${len_tag_key}, ${output_is_shifted})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_carrier_allocator_cvc.h>"], "declarations": "digital::ofdm_carrier_allocator_cvc::sptr ${id};", "make": "this->${id} = digital::ofdm_carrier_allocator_cvc::make(\\n ${fft_len},\\n ${occupied_carriers},\\n ${pilot_carriers},\\n ${pilot_symbols},\\n ${sync_words},\\n ${len_tag_key},\\n ${output_is_shifted});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_chanest_vcvc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_chanest_vcvc", "label": "OFDM Channel Estimation", "flags": ["python", "cpp"], "parameters": [{"id": "sync_symbol1", "label": "Synch. symbol 1", "dtype": "complex_vector", "hide": "${ \'part\' if len(sync_symbol1) == 1 else \'none\' }"}, {"id": "sync_symbol2", "label": "Synch. symbol 2", "dtype": "complex_vector", "default": "()"}, {"id": "n_data_symbols", "label": "Number of data symbols", "dtype": "int", "default": "1"}, {"id": "eq_noise_red_len", "label": "Channel taps noise reduction length", "dtype": "int", "default": "0", "hide": "all"}, {"id": "max_carr_offset", "label": "Maximum carrier offset", "dtype": "int", "default": "-1", "hide": "${ (\'part\' if max_carr_offset < 0 else \'none\') }"}, {"id": "force_one_symbol", "label": "Force One Synchronisation Symbol", "dtype": "enum", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "${ (\'part\' if not force_one_symbol else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ len(sync_symbol1) }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ len(sync_symbol1) }"}], "asserts": ["${ len(sync_symbol1) }", "${ len(sync_symbol2) == 0 or len(sync_symbol2) == len(sync_symbol1) }"], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_chanest_vcvc(${sync_symbol1}, ${sync_symbol2}, ${n_data_symbols}, ${eq_noise_red_len}, ${max_carr_offset}, ${force_one_symbol})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_chanest_vcvc.h>"], "declarations": "digital::ofdm_chanest_vcvc::sptr ${id};", "make": "std::vector<gr_complex> sync_symbol1 = {${str(sync_symbol1)[1:-1]}};\\nstd::vector<gr_complex> sync_symbol2 = {${str(sync_symbol2)[1:-1]}};\\nthis->${id} = digital::ofdm_chanest_vcvc::make(\\n sync_symbol1,\\n sync_symbol2,\\n ${n_data_symbols},\\n ${eq_noise_red_len},\\n ${max_carr_offset},\\n ${force_one_symbol});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_cyclic_prefixer.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_cyclic_prefixer", "label": "OFDM Cyclic Prefixer", "flags": ["python", "cpp"], "parameters": [{"id": "input_size", "label": "FFT Length", "dtype": "int", "default": "fft_len"}, {"id": "cp_len", "label": "CP Length(s)", "dtype": "raw", "default": "fft_len/4"}, {"id": "rolloff", "label": "Rolloff", "dtype": "int", "default": "0", "hide": "${ (\'none\' if rolloff else \'part\') }"}, {"id": "tagname", "label": "Length Tag Key", "dtype": "string", "default": "\\"frame_len\\""}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ input_size }"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_cyclic_prefixer(\\n ${input_size},\\n% if isinstance(context.get(\'cp_len\')(), (tuple, list)):\\n ${cp_len},\\n% else:\\n ${input_size} + ${cp_len},\\n% endif\\n ${rolloff},\\n ${tagname})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_cyclic_prefixer.h>"], "declarations": "digital::ofdm_cyclic_prefixer::sptr ${id};", "make": "this->${id} = digital::ofdm_cyclic_prefixer::make(\\n ${input_size},\\n% if isinstance(context.get(\'cp_len\')(), (tuple, list)):\\n ${cp_len},\\n% else:\\n ${input_size} + ${cp_len},\\n% endif\\n ${rolloff},\\n ${tagname});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_frame_equalizer_vcvc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_frame_equalizer_vcvc", "label": "OFDM Frame Equalizer", "flags": ["python", "cpp"], "parameters": [{"id": "fft_len", "label": "FFT length", "dtype": "int", "default": "fft_len", "hide": "${ \'part\' if fft_len == 1 else \'none\' }"}, {"id": "cp_len", "label": "CP length", "dtype": "int", "default": "fft_len/4"}, {"id": "equalizer", "label": "Equalizer", "dtype": "raw"}, {"id": "len_tag_key", "label": "Length Tag Key", "dtype": "string"}, {"id": "propagate_channel_state", "label": "Propagate Channel State", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "fixed_frame_len", "label": "Fixed frame length", "dtype": "int", "default": "0", "hide": "${ (\'none\' if fixed_frame_len else \'part\') }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ fft_len }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ fft_len }"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_frame_equalizer_vcvc(${equalizer}, ${cp_len}, ${len_tag_key}, ${propagate_channel_state}, ${fixed_frame_len})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_frame_equalizer_vcvc.h>"], "declarations": "digital::ofdm_frame_equalizer_vcvc::sptr ${id};", "make": "this->${id} = digital::ofdm_frame_equalizer_vcvc::make(\\n ${equalizer},\\n ${cp_len},\\n ${len_tag_key},\\n ${propagate_channel_state},\\n ${fixed_frame_len});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_rx.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_rx", "label": "OFDM Receiver", "flags": ["python"], "parameters": [{"id": "fft_len", "label": "FFT Length", "dtype": "int", "default": "64"}, {"id": "cp_len", "label": "Cyclic Prefix Length", "dtype": "int", "default": "16"}, {"id": "packet_len_key", "label": "Packet Length Tag Key", "dtype": "string", "default": "\\"length\\""}, {"id": "occupied_carriers", "label": "Occupied Carriers", "dtype": "raw", "default": "()", "hide": "${ \'none\' if occupied_carriers else \'part\' }"}, {"id": "pilot_carriers", "label": "Pilot Carriers", "dtype": "raw", "default": "()", "hide": "${ \'none\' if pilot_carriers else \'part\' }"}, {"id": "pilot_symbols", "label": "Pilot Symbols", "dtype": "raw", "default": "()", "hide": "${ \'none\' if pilot_symbols else \'part\' }"}, {"id": "sync_word1", "label": "Sync Word 1", "dtype": "raw", "default": "()", "hide": "${ \'none\' if sync_word1 else \'part\' }"}, {"id": "sync_word2", "label": "Sync Word 2", "dtype": "raw", "default": "()", "hide": "${ \'none\' if sync_word2 else \'part\' }"}, {"id": "header_mod", "label": "Header Modulation", "dtype": "enum", "options": ["\\"BPSK\\"", "\\"QPSK\\""], "option_labels": ["BPSK", "QPSK"], "option_attributes": {"bps": ["1", "2"]}}, {"id": "payload_mod", "label": "Payload Modulation", "dtype": "enum", "options": ["\\"BPSK\\"", "\\"QPSK\\"", "\\"8-PSK\\""], "option_labels": ["BPSK", "QPSK", "8-PSK"], "option_attributes": {"bps": ["1", "2", "3"]}}, {"id": "scramble_bits", "label": "Scramble Bits", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "${ (\'part\' if scramble_bits else \'none\') }"}, {"id": "log", "label": "Log Debug Info", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "${ (\'none\' if log else \'part\') }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "asserts": ["${ fft_len > 0 }", "${ cp_len > 0 }", "${ cp_len < fft_len }"], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_rx(\\n fft_len=${fft_len}, cp_len=${cp_len},\\n frame_length_tag_key=\'frame_\'+${packet_len_key},\\n packet_length_tag_key=${packet_len_key},\\n % if occupied_carriers:\\n occupied_carriers=${occupied_carriers},\\n % endif\\n % if pilot_carriers:\\n pilot_carriers=${pilot_carriers},\\n % endif\\n % if pilot_symbols:\\n pilot_symbols=${pilot_symbols},\\n % endif\\n % if sync_word1:\\n sync_word1=${sync_word1},\\n % endif\\n % if sync_word2:\\n sync_word2=${sync_word2},\\n % endif\\n bps_header=${header_mod.bps},\\n bps_payload=${payload_mod.bps},\\n debug_log=${log},\\n scramble_bits=${scramble_bits})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_serializer_vcc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_serializer_vcc", "label": "OFDM Serializer", "flags": ["python", "cpp"], "parameters": [{"id": "fft_len", "label": "FFT length", "dtype": "int", "default": "fft_len", "hide": "${ \'part\' if fft_len == 1 else \'none\' }"}, {"id": "occupied_carriers", "label": "Occupied Carriers", "dtype": "raw"}, {"id": "len_tag_key", "label": "Length Tag Key", "dtype": "string"}, {"id": "packet_len_tag_key", "label": "Packet Length Tag Key", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if packet_len_tag_key else \'part\') }"}, {"id": "symbols_skipped", "label": "Symbols skipped", "dtype": "int", "default": "0", "hide": "${ (\'none\' if symbols_skipped else \'part\') }"}, {"id": "carr_offset_key", "label": "Carrier Offset Key", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if carr_offset_key else \'part\') }"}, {"id": "input_is_shifted", "label": "Input is shifted", "dtype": "bool", "default": "True", "hide": "${ (\'part\' if input_is_shifted else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ fft_len }"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_serializer_vcc(${fft_len}, ${occupied_carriers}, ${len_tag_key}, ${packet_len_tag_key}, ${symbols_skipped}, ${carr_offset_key}, ${input_is_shifted})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_serializer_vcc.h>"], "declarations": "digital::ofdm_serializer_vcc::sptr ${id};", "make": "this->${id} = digital::ofdm_serializer_vcc::make(\\n ${fft_len},\\n ${occupied_carriers},\\n ${len_tag_key},\\n ${packet_len_tag_key},\\n ${symbols_skipped},\\n ${carr_offset_key},\\n ${input_is_shifted});", "link": ["gnuradio::gnuradio-digital"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_sync_sc_cfb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_sync_sc_cfb", "label": "Schmidl & Cox OFDM synch.", "flags": ["python", "cpp"], "parameters": [{"id": "fft_len", "label": "FFT length", "dtype": "int"}, {"id": "cp_len", "label": "Cyclic Prefix length", "dtype": "int"}, {"id": "use_even_carriers", "label": "Preamble Carriers", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["Odd", "Even"], "hide": "part"}, {"id": "threshold", "label": "Threshold", "dtype": "real", "default": "0.9"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"label": "freq_offset", "domain": "stream", "dtype": "float"}, {"label": "detect", "domain": "stream", "dtype": "byte"}], "asserts": ["${ fft_len > 0}", "${ cp_len >= 0}"], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_sync_sc_cfb(${fft_len}, ${cp_len}, ${use_even_carriers}, ${threshold})", "callbacks": ["set_threshold(${threshold})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/ofdm_sync_sc_cfb.h>"], "declarations": "digital::ofdm_sync_sc_cfb::sptr ${id};", "make": "this->${id} = digital::ofdm_sync_sc_cfb::make(\\n ${fft_len},\\n ${cp_len},\\n ${use_even_carriers},\\n ${threshold});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_threshold(${threshold})"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_ofdm_tx.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_ofdm_tx", "label": "OFDM Transmitter", "flags": ["python"], "parameters": [{"id": "fft_len", "label": "FFT Length", "dtype": "int", "default": "64"}, {"id": "cp_len", "label": "Cyclic Prefix Length", "dtype": "int", "default": "16"}, {"id": "packet_len_key", "label": "Length Tag Name", "dtype": "string", "default": "length"}, {"id": "occupied_carriers", "label": "Occupied Carriers", "dtype": "raw", "default": "()", "hide": "${ \'none\' if occupied_carriers else \'part\' }"}, {"id": "pilot_carriers", "label": "Pilot Carriers", "dtype": "raw", "default": "()", "hide": "${ \'none\' if pilot_carriers else \'part\' }"}, {"id": "pilot_symbols", "label": "Pilot Symbols", "dtype": "raw", "default": "()", "hide": "${ \'none\' if pilot_symbols else \'part\' }"}, {"id": "sync_word1", "label": "Sync Word 1", "dtype": "raw", "default": "()", "hide": "${ \'none\' if sync_word1 else \'part\' }"}, {"id": "sync_word2", "label": "Sync Word 2", "dtype": "raw", "default": "()", "hide": "${ \'none\' if sync_word2 else \'part\' }"}, {"id": "header_mod", "label": "Header Modulation", "dtype": "enum", "options": ["\\"BPSK\\"", "\\"QPSK\\""], "option_labels": ["BPSK", "QPSK"], "option_attributes": {"bps": ["1", "2"]}}, {"id": "payload_mod", "label": "Payload Modulation", "dtype": "enum", "options": ["\\"BPSK\\"", "\\"QPSK\\"", "\\"8-PSK\\""], "option_labels": ["BPSK", "QPSK", "8-PSK"], "option_attributes": {"bps": ["1", "2", "3"]}}, {"id": "rolloff", "label": "Rolloff length (samples)", "dtype": "int", "default": "0"}, {"id": "scramble_bits", "label": "Scramble Bits", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "${ (\'part\' if scramble_bits else \'none\') }"}, {"id": "log", "label": "Log Debug Info", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "${ (\'none\' if log else \'part\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "asserts": ["${ fft_len > 0 }", "${ cp_len > 0 }", "${ cp_len < fft_len }", "${ rolloff >= 0 }"], "templates": {"imports": "from gnuradio import digital", "make": "digital.ofdm_tx(\\n fft_len=${fft_len}, \\n cp_len=${cp_len},\\n packet_length_tag_key=${packet_len_key},\\n % if occupied_carriers:\\n occupied_carriers=${occupied_carriers},\\n % endif\\n % if pilot_carriers:\\n pilot_carriers=${pilot_carriers},\\n % endif\\n % if pilot_carriers:\\n pilot_symbols=${pilot_symbols},\\n % endif\\n % if sync_word1:\\n sync_word1=${sync_word1},\\n % endif\\n % if sync_word2:\\n sync_word2=${sync_word2},\\n % endif\\n bps_header=${header_mod.bps},\\n bps_payload=${payload_mod.bps},\\n rolloff=${rolloff}, \\n debug_log=${log},\\n scramble_bits=${scramble_bits})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_packet_headergenerator_bb.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_packet_headergenerator_bb", "label": "Packet Header Generator", "flags": ["python", "cpp"], "parameters": [{"id": "header_formatter", "label": "Formatter Object", "dtype": "raw"}, {"id": "len_tag_key", "label": "Length Tag Name", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.packet_headergenerator_bb(${header_formatter}, ${len_tag_key})", "callbacks": ["set_header_formatter(${header_formatter})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/packet_headergenerator_bb.h>"], "declarations": "digital::packet_headergenerator_bb::sptr ${id};", "make": "this->${id} = digital::packet_headergenerator_bb::make(\\n ${header_len},\\n ${len_tag_key});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_header_formatter(${header_formatter})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_packet_headergenerator_bb_default.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_packet_headergenerator_bb_default", "label": "Packet Header Generator (Default)", "flags": ["python", "cpp"], "parameters": [{"id": "header_len", "label": "Header Length", "dtype": "int"}, {"id": "len_tag_key", "label": "Length Tag Name", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.packet_headergenerator_bb(${header_len}, ${len_tag_key})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/packet_headergenerator_bb.h>"], "declarations": "digital::packet_headergenerator_bb::sptr ${id};", "make": "this->${id} = digital::packet_headergenerator_bb::make(\\n ${header_len},\\n ${len_tag_key});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_packet_headerparser_b.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_packet_headerparser_b", "label": "Packet Header Parser", "parameters": [{"id": "header_formatter", "label": "Formatter Object", "dtype": "raw"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "message", "id": "header_data"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.packet_headerparser_b(${header_formatter})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/packet_headerparser_b.h>"], "declarations": "digital::packet_headerparser_b::sptr ${id};", "make": "this->${id} = digital::packet_headerparser_b::make(${header_formatter});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_packet_headerparser_b_default.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_packet_headerparser_b_default", "label": "Packet Header Parser (Default)", "flags": ["python", "cpp"], "parameters": [{"id": "header_len", "label": "Header Length", "dtype": "int"}, {"id": "len_tag_key", "label": "Length Tag Name", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "message", "id": "header_data"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.packet_headerparser_b(${header_len}, ${len_tag_key})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/packet_headerparser_b.h>"], "declarations": "digital::packet_headerparser_b::sptr ${id};", "make": "this->${id} = digital::packet_headerparser_b::make(\\n ${header_len},\\n ${len_tag_key});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_packet_sink.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_packet_sink", "label": "Packet Sink", "flags": ["python", "cpp"], "parameters": [{"id": "sync_vector", "label": "Sync Vector", "dtype": "int_vector"}, {"id": "target_queue", "label": "Target Message Queue", "dtype": "raw"}, {"id": "threshold", "label": "Threshold", "dtype": "int", "default": "-1"}], "inputs": [{"domain": "stream", "dtype": "float"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.packet_sink(${sync_vector}, ${target_queue}, ${threshold})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/packet_sink.h>"], "declarations": "digital::packet_sink::sptr ${id};", "make": "std::vector<int> sync_vector = {${str(sync_vector)[1:-1]}};\\nthis->${id} = digital::packet_sink::make(\\n sync_vector,\\n ${target_queue},\\n ${threshold});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_pfb_clock_sync.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_pfb_clock_sync_xxx", "label": "Polyphase Clock Sync", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccf", "fff"], "option_labels": ["Complex->Complex (Real Taps)", "Float->Float (Real Taps)"], "option_attributes": {"input": ["complex", "float"], "output": ["complex", "float"], "taps": ["real_vector", "real_vector"]}, "hide": "part"}, {"id": "sps", "label": "Samples/Symbol", "dtype": "real"}, {"id": "loop_bw", "label": "Loop Bandwidth", "dtype": "real"}, {"id": "taps", "label": "Taps", "dtype": "real_vector"}, {"id": "filter_size", "label": "Filter Size", "dtype": "int", "default": "32"}, {"id": "init_phase", "label": "Initial Phase", "dtype": "real", "default": "16"}, {"id": "max_dev", "label": "Maximum Rate Deviation", "dtype": "real", "default": "1.5"}, {"id": "osps", "label": "Output SPS", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}, {"label": "err", "domain": "stream", "dtype": "float", "optional": true}, {"label": "rate", "domain": "stream", "dtype": "float", "optional": true}, {"label": "phase", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.pfb_clock_sync_${type}(${sps}, ${loop_bw}, ${taps}, ${filter_size}, ${init_phase}, ${max_dev}, ${osps})", "callbacks": ["update_taps(${taps})", "set_loop_bandwidth(${loop_bw})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/pfb_clock_sync_${type}.h>"], "declarations": "digital::pfb_clock_sync_${type}::sptr ${id};", "make": "std::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = digital::pfb_clock_sync_${type}::make(\\n ${sps},\\n ${loop_bw},\\n taps,\\n ${filter_size},\\n ${init_phase},\\n ${max_dev},\\n ${osps});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["update_taps(taps)", "set_loop_bandwidth(${loop_bw})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_pn_correlator_cc.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_pn_correlator_cc", "label": "PN Correlator", "flags": ["python", "cpp"], "parameters": [{"id": "degree", "label": "Degree", "dtype": "int"}, {"id": "mask", "label": "Mask", "dtype": "int", "default": "0"}, {"id": "seed", "label": "Seed", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.pn_correlator_cc(${degree}, ${mask}, ${seed})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/pn_correlator_cc.h>"], "declarations": "digital::pn_correlator_cc::sptr ${id};", "make": "this->${id} = digital::pn_correlator_cc::make(\\n ${degree},\\n ${mask},\\n ${seed});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_probe_density_b.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_probe_density_b", "label": "Probe Density", "flags": ["python", "cpp"], "parameters": [{"id": "alpha", "label": "Alpha", "dtype": "real", "default": "1"}, {"id": "probe_rate", "label": "Probe Rate", "dtype": "real", "default": "10"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.probe_density_b(${alpha})", "callbacks": ["set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/probe_density_b.h>"], "declarations": "digital::probe_density_b::sptr ${id};", "make": "this->${id} = digital::probe_density_b::make(${alpha});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_probe_mpsk_snr_est_c.block.yml": {"cached-at": 1646515620, "data": {"id": "digital_probe_mpsk_snr_est_c", "label": "MPSK SNR Estimator Probe", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["0", "1", "2", "3"], "option_labels": ["Simple", "Skewness", "2nd and 4th Moment", "SVR"]}, {"id": "msg_nsamples", "label": "Samples between SNR messages", "dtype": "int", "default": "10000"}, {"id": "alpha", "label": "Filter Alpha", "dtype": "real", "default": "0.001"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "message", "id": "snr", "optional": true}, {"domain": "message", "id": "signal", "optional": true}, {"domain": "message", "id": "noise", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.probe_mpsk_snr_est_c(${type}, ${msg_nsamples}, ${alpha})", "callbacks": ["set_type(${type})", "set_msg_nsample(${msg_nsamples})", "set_alpha(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/probe_mpsk_snr_est_c.h>"], "declarations": "digital::probe_mpsk_snr_est_c::sptr ${id};", "make": "this->${id} = digital::probe_mpsk_snr_est_c::make(\\n ${type},\\n ${msg_nsamples},\\n ${alpha});", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_type(${type})", "set_msg_nsample(${msg_nsamples})", "set_alpha(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_protocol_formatter_async.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_protocol_formatter_async", "label": "Protocol Formatter (Async)", "flags": ["python", "cpp"], "parameters": [{"id": "format", "label": "Format Obj.", "dtype": "raw"}], "inputs": [{"domain": "message", "id": "in", "optional": true}], "outputs": [{"domain": "message", "id": "header", "optional": true}, {"domain": "message", "id": "payload", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.protocol_formatter_async(${format})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/protocol_formatter_async.h>"], "declarations": "digital::protocol_formatter_async::sptr ${id};", "make": "this->${id} = digital::protocol_formatter_async::make(${format});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_protocol_formatter_bb.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_protocol_formatter_bb", "label": "Protocol Formatter", "flags": ["python", "cpp"], "parameters": [{"id": "format", "label": "Format Obj.", "dtype": "raw"}, {"id": "len_tag_key", "label": "Length Tag Name", "dtype": "string", "default": "\\"packet_len\\""}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.protocol_formatter_bb(${format}, ${len_tag_key})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/protocol_formatter_bb.h>"], "declarations": "digital::protocol_formatter_bb::sptr ${id};", "make": "this->${id} = digital::protocol_formatter_bb::make(${format}, ${len_tag_key});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_protocol_parser_b.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_protocol_parser_b", "label": "Protocol Parser", "flags": ["python", "cpp"], "parameters": [{"id": "format", "label": "Format Obj.", "dtype": "raw"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "message", "id": "info", "optional": true}], "templates": {"imports": "from gnuradio import digital", "make": "digital.protocol_parser_b(${format})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/protocol_parser_b.h>"], "declarations": "digital::protocol_parser_b::sptr ${id};", "make": "this->${id} = fft::ctrlport_probe_psd::make(${format});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_psk_demod.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_psk_demod", "label": "PSK Demod", "category": "[Core]/Deprecated", "flags": ["python"], "parameters": [{"id": "constellation_points", "label": "Number of Constellation Points", "dtype": "int", "default": "8"}, {"id": "differential", "label": "Differential Encoding", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "excess_bw", "label": "Excess BW", "dtype": "real", "default": "0.35"}, {"id": "freq_bw", "label": "Frequency BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "timing_bw", "label": "Timing BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "phase_bw", "label": "Phase BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "mod_code", "label": "Gray Code", "dtype": "enum", "options": ["\\"gray\\"", "\\"none\\""], "option_labels": ["Yes", "No"]}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.psk.psk_demod(\\n constellation_points=${constellation_points},\\n differential=${differential},\\n samples_per_symbol=${samples_per_symbol},\\n excess_bw=${excess_bw},\\n phase_bw=${phase_bw},\\n timing_bw=${timing_bw},\\n mod_code=${mod_code},\\n verbose=${verbose},\\n log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_psk_mod.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_psk_mod", "label": "PSK Mod", "category": "[Core]/Deprecated", "flags": ["python"], "parameters": [{"id": "constellation_points", "label": "Number of Constellation Points", "dtype": "int", "default": "8"}, {"id": "mod_code", "label": "Gray Code", "dtype": "enum", "options": ["\\"gray\\"", "\\"none\\""], "option_labels": ["Yes", "No"]}, {"id": "differential", "label": "Differential Encoding", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "excess_bw", "label": "Excess BW", "dtype": "real", "default": "0.35"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.psk.psk_mod(\\n constellation_points=${constellation_points},\\n mod_code=${mod_code},\\n differential=${differential},\\n samples_per_symbol=${samples_per_symbol},\\n excess_bw=${excess_bw},\\n verbose=${verbose},\\n log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_qam_demod.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_qam_demod", "label": "QAM Demod", "category": "[Core]/Deprecated", "flags": ["python"], "parameters": [{"id": "constellation_points", "label": "Number of Constellation Points", "dtype": "int", "default": "16"}, {"id": "differential", "label": "Differential Encoding", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "excess_bw", "label": "Excess BW", "dtype": "real", "default": "0.35"}, {"id": "freq_bw", "label": "Frequency BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "timing_bw", "label": "Timing BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "phase_bw", "label": "Phase BW", "dtype": "real", "default": "6.28/100.0"}, {"id": "mod_code", "label": "Gray Code", "dtype": "enum", "options": ["\\"gray\\"", "\\"none\\""], "option_labels": ["Yes", "No"]}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.qam.qam_demod(\\n constellation_points=${constellation_points},\\n differential=${differential},\\n samples_per_symbol=${samples_per_symbol},\\n excess_bw=${excess_bw},\\n freq_bw=${freq_bw},\\n timing_bw=${timing_bw},\\n phase_bw=${phase_bw},\\n mod_code=${mod_code},\\n verbose=${verbose},\\n log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_qam_mod.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_qam_mod", "label": "QAM Mod", "category": "[Core]/Deprecated", "flags": ["python"], "parameters": [{"id": "constellation_points", "label": "Number of Constellation Points", "dtype": "int", "default": "16"}, {"id": "mod_code", "label": "Gray Code", "dtype": "enum", "options": ["\\"gray\\"", "\\"none\\""], "option_labels": ["Yes", "No"]}, {"id": "differential", "label": "Differential Encoding", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "samples_per_symbol", "label": "Samples/Symbol", "dtype": "int", "default": "2"}, {"id": "excess_bw", "label": "Excess BW", "dtype": "real", "default": "0.35"}, {"id": "verbose", "label": "Verbose", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(verbose) == \'False\' else \'none\') }"}, {"id": "log", "label": "Log", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "${ (\'part\' if str(log) == \'False\' else \'none\') }"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.qam.qam_mod(\\n constellation_points=${constellation_points},\\n mod_code=${mod_code},\\n differential=${differential},\\n samples_per_symbol=${samples_per_symbol},\\n excess_bw=${excess_bw},\\n verbose=${verbose},\\n log=${log})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_scrambler_bb.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_scrambler_bb", "label": "Scrambler", "flags": ["python", "cpp"], "parameters": [{"id": "mask", "label": "Mask", "dtype": "hex", "default": "0x8A"}, {"id": "seed", "label": "Seed", "dtype": "hex", "default": "0x7F"}, {"id": "len", "label": "Length", "dtype": "int", "default": "7"}], "inputs": [{"domain": "stream", "dtype": "byte"}], "outputs": [{"domain": "stream", "dtype": "byte"}], "templates": {"imports": "from gnuradio import digital", "make": "digital.scrambler_bb(${mask}, ${seed}, ${len})"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/scrambler_bb.h>"], "declarations": "digital::scrambler_bb::sptr ${id};", "make": "this->${id} = digital::scrambler_bb::make(${mask}, ${seed}, ${len});", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/digital_symbol_sync_xx.block.yml": {"cached-at": 1646515621, "data": {"id": "digital_symbol_sync_xx", "label": "Symbol Sync", "category": "[Core]/Synchronizers", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "I/O Type", "dtype": "enum", "options": ["cc", "ff"], "option_labels": ["Complex", "Float"], "option_attributes": {"input": ["complex", "float"], "output": ["complex", "float"]}, "hide": "part"}, {"id": "ted_type", "label": "Timing Error Detector", "dtype": "enum", "options": ["digital.TED_MUELLER_AND_MULLER", "digital.TED_MOD_MUELLER_AND_MULLER", "digital.TED_ZERO_CROSSING", "digital.TED_GARDNER", "digital.TED_EARLY_LATE", "digital.TED_DANDREA_AND_MENGALI_GEN_MSK", "digital.TED_MENGALI_AND_DANDREA_GMSK", "digital.TED_SIGNAL_TIMES_SLOPE_ML", "digital.TED_SIGNUM_TIMES_SLOPE_ML"], "option_labels": ["Mueller and Müller", "Modified Mueller and Müller", "Zero Crossing", "Gardner", "Early-Late", "D\'Andrea and Mengali Gen MSK", "Mengali and D\'Andrea GMSK", "y[n]y\'[n] Maximum likelihood", "sgn(y[n])y\'[n] Maximum likelihood"], "option_attributes": {"hide_constellation": ["part", "part", "part", "all", "all", "all", "all", "all", "all"]}}, {"id": "constellation", "label": "TED Slicer Constellation", "dtype": "raw", "default": "digital.constellation_bpsk().base()", "hide": "${ ted_type.hide_constellation }"}, {"id": "sps", "label": "Samples per Symbol", "dtype": "real", "default": "sps"}, {"id": "ted_gain", "label": "Expected TED Gain", "dtype": "real", "default": "1.0"}, {"id": "loop_bw", "label": "Loop Bandwidth", "dtype": "real", "default": "0.045"}, {"id": "damping", "label": "Damping Factor", "dtype": "real", "default": "1.0"}, {"id": "max_dev", "label": "Maximum Deviation", "dtype": "real", "default": "1.5"}, {"id": "osps", "label": "Output Samples/Symbol", "dtype": "int", "default": "1"}, {"id": "resamp_type", "label": "Interpolating Resampler", "dtype": "enum", "options": ["digital.IR_MMSE_8TAP", "digital.IR_PFB_NO_MF", "digital.IR_PFB_MF"], "option_labels": ["MMSE, 8 tap FIR", "Polyphase Filterbank, MMSE", "Polyphase Filterbank, MF"], "option_attributes": {"hide_nfilters": ["all", "none", "none"], "hide_pfb_mf_taps": ["all", "all", "none"]}}, {"id": "nfilters", "label": "Filterbank Arms", "dtype": "int", "default": "128", "hide": "${ resamp_type.hide_nfilters }"}, {"id": "pfb_mf_taps", "label": "PFB MF Taps", "dtype": "real_vector", "default": "[]", "hide": "${ resamp_type.hide_pfb_mf_taps }"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}, {"label": "error", "domain": "stream", "dtype": "float", "optional": true}, {"label": "T_inst", "domain": "stream", "dtype": "float", "optional": true}, {"label": "T_avg", "domain": "stream", "dtype": "float", "optional": true}], "templates": {"imports": "from gnuradio import digital\\nfrom gnuradio import filter", "make": "digital.symbol_sync_${type}(\\n ${ted_type}, \\n ${sps}, \\n ${loop_bw}, \\n ${damping},\\n ${ted_gain}, \\n ${max_dev}, \\n ${osps}, \\n ${constellation}, \\n ${resamp_type}, \\n ${nfilters},\\n ${pfb_mf_taps})", "callbacks": ["set_loop_bandwidth(${loop_bw})", "set_damping_factor(${damping})", "set_ted_gain(${ted_gain})"]}, "cpp_templates": {"includes": ["#include <gnuradio/digital/symbol_sync_${type}.h>"], "declarations": "digital::symbol_sync_${type}::sptr ${id};", "make": "std::vector<float> pfb_mf_taps = {${str(pfb_mf_taps)[1:-1]}};\\nthis->${id} = digital::symbol_sync_${type}::make(\\n ${ted_type}, \\n ${sps}, \\n ${loop_bw}, \\n ${damping},\\n ${ted_gain}, \\n ${max_dev}, \\n ${osps}, \\n ${constellation}, \\n ${resamp_type}, \\n ${nfilters},\\n pfb_mf_taps);", "link": ["gnuradio::gnuradio-digital"], "callbacks": ["set_loop_bandwidth(${loop_bw})", "set_damping_factor(${damping})", "set_ted_gain(${ted_gain})"], "translations": {"digital\\\\.": "digital::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/fft.tree.yml": {"cached-at": 1646515621, "data": {"[Core]": [{"Fourier Analysis": ["fft_vxx", "goertzel_fc", "logpwrfft_x"]}, {"Control Port": ["fft_ctrlport_probe_psd"]}]}}, "/lib/share/gnuradio/grc/blocks/fft_ctrlport_probe_psd.block.yml": {"cached-at": 1646515621, "data": {"id": "fft_ctrlport_probe_psd", "label": "Ctrlport Probe PSD", "flags": ["python", "cpp"], "parameters": [{"id": "name", "label": "Name", "dtype": "string", "default": "psd"}, {"id": "desc", "label": "Description", "dtype": "string", "default": "PSD Plot"}, {"id": "len", "label": "Length", "dtype": "int", "default": "1024"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import fft", "make": "fft.ctrlport_probe_psd(${name}, ${desc}, ${len})", "callbacks": ["set_length(${len})"]}, "cpp_templates": {"includes": ["#include <gnuradio/fft/ctrlport_probe_psd.h>"], "declarations": "fft::ctrlport_probe_psd::sptr ${id};", "make": "this->${id} = fft::ctrlport_probe_psd::make(${name}, ${desc}, ${len});", "link": ["gnuradio::gnuradio-fft"], "callbacks": ["set_length(${len})"]}, "documentation": "Place this in a graph to export PSD values to a GRCP port probe.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/fft_fft_vxx.block.yml": {"cached-at": 1646515621, "data": {"id": "fft_vxx", "label": "FFT", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["vcc", "vfc"]}, "hide": "part"}, {"id": "fft_size", "label": "FFT Size", "dtype": "int", "default": "1024"}, {"id": "forward", "label": "Forward/Reverse", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Forward", "Reverse"]}, {"id": "window", "label": "Window", "dtype": "real_vector", "default": "window.blackmanharris(1024)"}, {"id": "shift", "label": "Shift", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "nthreads", "label": "Num. Threads", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ fft_size }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ fft_size }"}], "templates": {"imports": "from gnuradio import fft\\nfrom gnuradio.fft import window", "make": "% if type == \\"complex\\":\\nfft.fft_vcc(${fft_size}, ${forward}, ${window}, ${shift}, ${nthreads})\\n% else:\\nfft.fft_vfc(${fft_size}, ${forward}, ${window}, ${shift}, ${nthreads})\\n% endif", "callbacks": ["set_nthreads(${nthreads})"]}, "cpp_templates": {"includes": ["#include <gnuradio/fft/fft.h>", "#include <gnuradio/fft/fft_${type.fcn}.h>", "#include <gnuradio/fft/window.h>"], "declarations": "fft::fft_${type.fcn}::sptr ${id};", "make": "% if type == \\"complex\\":\\nthis->${id} = fft::fft_vcc::make(${fft_size}, ${forward}, ${window}, ${shift}, ${nthreads});\\n% else:\\nthis->${id} = fft::fft_vfc::make(${fft_size}, ${forward}, ${window}, ${shift}, ${nthreads});\\n% endif", "link": ["gnuradio::gnuradio-fft"], "callbacks": ["set_nthreads(${nthreads})"], "translations": {"True": "true", "False": "false", "window\\\\.": "fft::window::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/fft_goertzel_fc.block.yml": {"cached-at": 1646515621, "data": {"id": "goertzel_fc", "label": "Goertzel", "flags": ["python", "cpp"], "parameters": [{"id": "rate", "label": "Rate", "dtype": "int", "default": "0"}, {"id": "len", "label": "Length", "dtype": "int", "default": "0"}, {"id": "freq", "label": "Frequency", "dtype": "real", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import fft", "make": "fft.goertzel_fc(${rate}, ${len}, ${freq})", "callbacks": ["set_freq(${freq})", "set_rate(${rate})"]}, "cpp_templates": {"includes": ["#include <gnuradio/fft/goertzel_fc.h>"], "declarations": "fft::goertzel_fc::sptr ${id};", "make": "this->${id} = fft::goertzel_fc::make(${rate}, ${len}, ${freq});", "link": ["gnuradio::gnuradio-fft"], "callbacks": ["set_freq(${freq})", "set_rate(${rate})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/fft_logpwrfft_x.block.yml": {"cached-at": 1646515621, "data": {"id": "logpwrfft_x", "label": "Log Power FFT", "flags": ["python"], "parameters": [{"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["c", "f"]}, "hide": "part"}, {"id": "sample_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "fft_size", "label": "FFT Size", "dtype": "int", "default": "1024"}, {"id": "ref_scale", "label": "Reference Scale", "dtype": "real", "default": "2"}, {"id": "frame_rate", "label": "Frame Rate", "dtype": "real", "default": "30"}, {"id": "average", "label": "Average", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"]}, {"id": "avg_alpha", "label": "Average Alpha", "dtype": "real", "default": "1.0"}, {"id": "shift", "label": "FFT Shift", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["On", "Off"]}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "float", "vlen": "${ fft_size }"}], "templates": {"imports": "from gnuradio.fft import logpwrfft", "make": "logpwrfft.logpwrfft_${type.fcn}(\\n sample_rate=${sample_rate},\\n fft_size=${fft_size},\\n ref_scale=${ref_scale},\\n frame_rate=${frame_rate},\\n avg_alpha=${avg_alpha},\\n average=${average},\\n shift=${shift})", "callbacks": ["set_sample_rate(${sample_rate})", "set_avg_alpha(${avg_alpha})", "set_average(${average})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter.tree.yml": {"cached-at": 1646515621, "data": {"[Core]": [{"Filters": ["variable_low_pass_filter_taps", "variable_high_pass_filter_taps", "variable_band_pass_filter_taps", "variable_band_reject_filter_taps", "variable_file_filter_taps", "variable_rrc_filter_taps", "low_pass_filter", "high_pass_filter", "band_pass_filter", "band_reject_filter", "root_raised_cosine_filter", "dc_blocker_xx", "fft_filter_xxx", "fir_filter_xxx", "filterbank_vcvcf", "filter_delay_fc", "hilbert_fc", "iir_filter_xxx", "interp_fir_filter_xxx", "single_pole_iir_filter_xx"]}, {"Resamplers": ["mmse_resampler_xx", "pfb_arb_resampler_xxx", "rational_resampler_xxx", "ival_decimator"]}, {"Channelizers": ["freq_xlating_fft_filter_ccc", "freq_xlating_fir_filter_xxx", "pfb_channelizer_ccf", "pfb_channelizer_hier_ccf", "pfb_decimator_ccf", "pfb_interpolator_ccf", "pfb_synthesizer_ccf"]}]}}, "/lib/share/gnuradio/grc/blocks/filter_band_pass_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "band_pass_filter", "label": "Band Pass Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "FIR Type", "dtype": "enum", "options": ["fir_filter_ccf", "interp_fir_filter_ccf", "fir_filter_fff", "interp_fir_filter_fff", "fir_filter_ccc", "interp_fir_filter_ccc", "fir_filter_fcc", "interp_fir_filter_fcc"], "option_labels": ["Complex->Complex (Real Taps) (Decim)", "Complex->Complex (Real Taps) (Interp)", "Float->Float (Real Taps) (Decim)", "Float->Float (Real Taps) (Interp)", "Complex->Complex (Complex Taps) (Decim)", "Complex->Complex (Complex Taps) (Interp)", "Float->Complex (Complex Taps) (Decim)", "Float->Complex (Complex Taps) (Interp)"], "option_attributes": {"fcn": ["band_pass", "band_pass", "band_pass", "band_pass", "complex_band_pass", "complex_band_pass", "complex_band_pass", "complex_band_pass"], "input": ["complex", "complex", "float", "float", "complex", "complex", "float", "float"], "output": ["complex", "complex", "float", "float", "complex", "complex", "complex", "complex"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1", "hide": "${ (\'all\' if str(type).startswith(\'interp\') else \'none\') }"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1", "hide": "${ (\'none\' if str(type).startswith(\'interp\') else \'all\') }"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "low_cutoff_freq", "label": "Low Cutoff Freq", "dtype": "real", "default": "0"}, {"id": "high_cutoff_freq", "label": "High Cutoff Freq", "dtype": "real", "default": "1"}, {"id": "width", "label": "Transition Width", "dtype": "real", "default": "1"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76"}], "asserts": ["${ low_cutoff_freq <= high_cutoff_freq }", "${ width > 0 }"], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.${type}(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.${type.fcn}(\\n ${gain},\\n ${samp_rate},\\n ${low_cutoff_freq},\\n ${high_cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}))", "callbacks": ["set_taps(firdes.${type.fcn}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "make": "this->${id} = filter::${type}::make(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.${type.fcn}(\\n ${gain},\\n ${samp_rate},\\n ${low_cutoff_freq},\\n ${high_cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}));", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(firdes::${type.fcn}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "documentation": "This filter is a convenience wrapper for an fir filter and a firdes taps generating function.\\n\\nSample rate, cutoff frequency, and transition width are in Hertz.\\n\\nThe beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_band_reject_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "band_reject_filter", "label": "Band Reject Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "FIR Type", "dtype": "enum", "options": ["fir_filter_ccf", "interp_fir_filter_ccf", "fir_filter_fff", "interp_fir_filter_fff", "fir_filter_ccc", "interp_fir_filter_ccc", "fir_filter_fcc", "interp_fir_filter_fcc"], "option_labels": ["Complex->Complex (Real Taps) (Decim)", "Complex->Complex (Real Taps) (Interp)", "Float->Float (Real Taps) (Decim)", "Float->Float (Real Taps) (Interp)", "Complex->Complex (Complex Taps) (Decim)", "Complex->Complex (Complex Taps) (Interp)", "Float->Complex (Complex Taps) (Decim)", "Float->Complex (Complex Taps) (Interp)"], "option_attributes": {"fcn": ["band_reject", "band_reject", "band_reject", "band_reject", "complex_band_reject", "complex_band_reject", "complex_band_reject", "complex_band_reject"], "input": ["complex", "complex", "float", "float", "complex", "complex", "float", "float"], "output": ["complex", "complex", "float", "float", "complex", "complex", "complex", "complex"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1", "hide": "${ (\'all\' if str(type).startswith(\'interp\') else \'none\') }"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1", "hide": "${ (\'none\' if str(type).startswith(\'interp\') else \'all\') }"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "low_cutoff_freq", "label": "Low Cutoff Freq", "dtype": "real"}, {"id": "high_cutoff_freq", "label": "High Cutoff Freq", "dtype": "real"}, {"id": "width", "label": "Transition Width", "dtype": "real"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76"}], "asserts": ["${ low_cutoff_freq <= high_cutoff_freq }", "${ width > 0 }"], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.${type}(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.${type.fcn}(\\n ${gain},\\n ${samp_rate},\\n ${low_cutoff_freq},\\n ${high_cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}))", "callbacks": ["set_taps(firdes.${type.fcn}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "make": "this->${id} = filter::${type}::make(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.${type.fcn}(\\n ${gain},\\n ${samp_rate},\\n ${low_cutoff_freq},\\n ${high_cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}));", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(firdes::${type.fcn}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "documentation": "This filter is a convenience wrapper for an fir filter and a firdes taps generating function.\\n\\nSample rate, cutoff frequency, and transition width are in Hertz.\\n\\nThe beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_dc_blocker_xx.block.yml": {"cached-at": 1646515621, "data": {"id": "dc_blocker_xx", "label": "DC Blocker", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["cc", "ff"], "option_labels": ["Complex->Complex", "Float->Float"], "option_attributes": {"input": ["complex", "float"], "output": ["complex", "float"]}, "hide": "part"}, {"id": "length", "label": "Length", "dtype": "int", "default": "32"}, {"id": "long_form", "label": "Long Form", "dtype": "bool", "default": "True"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.dc_blocker_${type}(${length}, ${long_form})"}, "cpp_templates": {"includes": ["#include <gnuradio/filter/dc_blocker_${type}.h>"], "declarations": "filter::dc_blocker_${type}::sptr ${id};", "make": "this->${id} = filter::dc_blocker_${type}::make(${length}, ${long_form});", "link": ["gnuradio::gnuradio-filter"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_fft_filter_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "fft_filter_xxx", "label": "FFT Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fff"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Float (Real Taps)"], "option_attributes": {"input": ["complex", "complex", "float"], "output": ["complex", "complex", "float"], "taps": ["complex_vector", "float_vector", "float_vector"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}, {"id": "nthreads", "label": "Num. Threads", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.fft_filter_${type}(${decim}, ${taps}, ${nthreads})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_nthreads(${nthreads})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/fft_filter_${type}.h>"], "declarations": "filter::fft_filter_${type}::sptr ${id};", "make": "% if str(type.taps) == \\"complex_vector\\":\\nstd::vector<gr_complex> taps = {${str(taps)[1:-1]}};\\n% else:\\nstd::vector<float> taps = {${str(taps)[1:-1]}};\\n% endif\\nthis->${id} = filter::fft_filter_${type}::make(\\n ${decim}, \\n taps,\\n ${nthreads});\\nthis->${id}.declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)", "set_nthreads(${nthreads})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_fft_low_pass_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "filter_fft_low_pass_filter", "label": "FFT Low Pass Filter", "category": "[Core]/Filters", "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fff"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Float (Real Taps)"], "option_attributes": {"input": ["complex", "complex", "float"], "output": ["complex", "complex", "float"], "taps": ["complex_vector", "float_vector", "float_vector"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "cutoff_freq", "label": "Cutoff Freq", "dtype": "real"}, {"id": "width", "label": "Transition Width", "dtype": "real"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76"}, {"id": "nthreads", "label": "Num. Threads", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.fft_filter_${type}(${decim}, firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}), ${nthreads})", "callbacks": ["set_taps(firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))", "set_nthreads(${nthreads})"]}, "documentation": "This filter is a convenience wrapper for an FFT-based low-pass filter.\\n\\nSample rate, cutoff frequency, and transition width are in Hertz.\\n\\nThe beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_fft_root_raised_cosine_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "filter_fft_rrc_filter", "label": "FFT Root Raised Cosine Filter", "category": "[Core]/Filters", "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fff"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Float (Real Taps)"], "option_attributes": {"input": ["complex", "complex", "float"], "output": ["complex", "complex", "float"], "taps": ["complex_vector", "float_vector", "float_vector"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "sym_rate", "label": "Symbol Rate", "dtype": "real", "default": "1.0"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "0.35"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "11*samp_rate"}, {"id": "nthreads", "label": "Num. Threads", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.fft_filter_${type}(${decim}, firdes.root_raised_cosine(${gain}, ${samp_rate}, ${sym_rate}, ${alpha}, ${ntaps}), ${nthreads})", "callbacks": ["set_taps(firdes.root_raised_cosine(${gain}, ${samp_rate}, ${sym_rate}, ${alpha}, ${ntaps}))", "set_nthreads(${nthreads})"]}, "documentation": "This filter is a convenience wrapper for an FFT-based Root Raised Cosine filter and a firdes taps generating function.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_filter_delay_fc.block.yml": {"cached-at": 1646515621, "data": {"id": "filter_delay_fc", "label": "Filter Delay", "flags": ["python", "cpp"], "parameters": [{"id": "taps", "label": "Taps", "dtype": "real_vector"}], "inputs": [{"domain": "stream", "dtype": "float"}, {"domain": "stream", "dtype": "float", "optional": true}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.filter_delay_fc(${taps})"}, "cpp_templates": {"includes": ["#include <gnuradio/filter/filter_delay_fc.h>"], "declarations": "filter::filter_delay_fc::sptr ${id};", "make": "std::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = filter::fft_filter_${type}::make(\\n taps);", "link": ["gnuradio::gnuradio-filter"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_filterbank_vcvcf.block.yml": {"cached-at": 1646515621, "data": {"id": "filterbank_vcvcf", "label": "Generic Filterbank", "flags": ["python", "cpp"], "parameters": [{"id": "taps", "label": "Taps(list of lists)", "dtype": "raw", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ len(taps) }"}], "outputs": [{"domain": "stream", "dtype": "complex", "vlen": "${ len(taps) }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.filterbank_vcvcf(${taps})", "callbacks": ["set_taps(${taps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/filterbank_vcvcf.h>"], "declarations": "filter::filterbank_vcvcf::sptr ${id};", "make": "this->${id} = filter::filterbank_vcvcf::make( \\n ${taps});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(${taps})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_fir_filter_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "fir_filter_xxx", "label": "Decimating FIR Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fcc", "fff", "fsf", "scc"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Complex (Complex Taps)", "Float->Float (Real Taps)", "Float->Short (Real Taps)", "Short->Complex (Complex Taps)"], "option_attributes": {"input": ["complex", "complex", "float", "float", "float", "short"], "output": ["complex", "complex", "complex", "float", "short", "complex"], "taps": ["complex_vector", "real_vector", "complex_vector", "real_vector", "real_vector", "complex_vector"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.fir_filter_${type}(${decim}, ${taps})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/fir_filter_${type}.h>"], "declarations": "filter::fir_filter_${type}::sptr ${id};", "make": "% if str(type.taps) == \\"complex_vector\\":\\nstd::vector<gr_complex> taps = {${str(taps)[1:-1]}};\\n% else:\\nstd::vector<float> taps = {${str(taps)[1:-1]}};\\n% endif\\nthis->${id} = filter::fir_filter_${type}::make(\\n ${decim}, \\n taps);\\nthis->${id}.declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_freq_xlating_fft_filter_ccc.block.yml": {"cached-at": 1646515621, "data": {"id": "freq_xlating_fft_filter_ccc", "label": "Frequency Xlating FFT Filter", "flags": ["python"], "parameters": [{"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "complex_vector"}, {"id": "center_freq", "label": "Center Frequency", "dtype": "real", "default": "0"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}, {"id": "nthreads", "label": "Num. Threads", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.freq_xlating_fft_filter_ccc(${decim}, ${taps}, ${center_freq}, ${samp_rate})\\nself.${id}.set_nthreads(${nthreads})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_center_freq(${center_freq})", "set_nthreads(${nthreads})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_freq_xlating_fir_filter_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "freq_xlating_fir_filter_xxx", "label": "Frequency Xlating FIR Filter", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fcc", "fcf", "scc", "scf"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Complex (Complex Taps)", "Float->Complex (Real Taps)", "Short->Complex (Complex Taps)", "Short->Complex (Real Taps)"], "option_attributes": {"input": ["complex", "complex", "float", "float", "short", "short"], "output": ["complex", "complex", "complex", "complex", "complex", "complex"], "taps": ["complex_vector", "real_vector", "complex_vector", "real_vector", "complex_vector", "real_vector"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }"}, {"id": "center_freq", "label": "Center Frequency", "dtype": "real", "default": "0"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}, {"domain": "message", "id": "freq", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.freq_xlating_fir_filter_${type}(${decim}, ${taps}, ${center_freq}, ${samp_rate})", "callbacks": ["set_taps(${taps})", "set_center_freq(${center_freq})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_high_pass_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "high_pass_filter", "label": "High Pass Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "FIR Type", "dtype": "enum", "options": ["fir_filter_ccf", "interp_fir_filter_ccf", "fir_filter_fff", "interp_fir_filter_fff"], "option_labels": ["Complex->Complex (Decimating)", "Complex->Complex (Interpolating)", "Float->Float (Decimating)", "Float->Float (Interpolating)"], "option_attributes": {"input": ["complex", "complex", "float", "float"], "output": ["complex", "complex", "float", "float"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1", "hide": "${ (\'all\' if str(type).startswith(\'interp\') else \'none\') }"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1", "hide": "${ (\'none\' if str(type).startswith(\'interp\') else \'all\') }"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "cutoff_freq", "label": "Cutoff Freq", "dtype": "real"}, {"id": "width", "label": "Transition Width", "dtype": "real"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.${type}(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.high_pass(\\n ${gain},\\n ${samp_rate},\\n ${cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}))", "callbacks": ["set_taps(firdes.high_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "make": "this->${id} = filter::${type}::make(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.high_pass(\\n ${gain},\\n ${samp_rate},\\n ${cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}));", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(firdes::high_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "documentation": "This filter is a convenience wrapper for an fir filter and a firdes taps generating function.\\n\\nSample rate, cutoff frequency, and transition width are in Hertz.\\n\\nThe beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_hilbert_fc.block.yml": {"cached-at": 1646515621, "data": {"id": "hilbert_fc", "label": "Hilbert", "flags": ["python", "cpp"], "parameters": [{"id": "num_taps", "label": "Num Taps", "dtype": "int", "default": "65"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_BLACKMAN_hARRIS", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Blackman-harris", "Rectangular", "Kaiser"], "hide": "part"}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "float"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.hilbert_fc(${num_taps}, ${win}, ${beta})"}, "cpp_templates": {"includes": ["#include <gnuradio/filter/hilbert_fc.h>"], "declarations": "filter::hilbert_fc::sptr ${id};", "make": "this->${id} = filter::hilbert_fc::make(\\n ${num_taps},\\n ${win},\\n ${beta});", "link": ["gnuradio::gnuradio-filter"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_iir_filter_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "iir_filter_xxx", "label": "IIR Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ffd", "ccf", "ccd", "ccc", "ccz"], "option_labels": ["Float->Float (Double Taps)", "Complex->Complex (Float Taps)", "Complex->Complex (Double Taps)", "Complex->Complex (Complex Taps)", "Complex->Complex (Complex Double Taps)"], "option_attributes": {"input": ["float", "complex", "complex", "complex", "complex"], "output": ["float", "complex", "complex", "complex", "complex"], "taps": ["real_vector", "real_vector", "real_vector", "complex_vector", "complex_vector"]}, "hide": "part"}, {"id": "fftaps", "label": "Feed-forward Taps", "dtype": "${ type.taps }"}, {"id": "fbtaps", "label": "Feedback Taps", "dtype": "${ type.taps }"}, {"id": "oldstyle", "label": "Old Style of Taps", "dtype": "enum", "default": "True", "options": ["True", "False"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.iir_filter_${type}(${fftaps}, ${fbtaps}, ${oldstyle})", "callbacks": ["set_taps(${fftaps}, ${fbtaps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/iir_filter_${type}.h>"], "declarations": "filter::firdes::sptr ${id};", "make": "% if str(type.taps) == \\"complex_vector\\":\\nstd::vector<gr_complex> fftaps = {${str(fftaps)[1:-1]}};\\nstd::vector<gr_complex> fbtaps = {${str(fbtaps)[1:-1]}};\\n% else:\\nstd::vector<float> fftaps = {${str(fftaps)[1:-1]}};\\nstd::vector<float> fbtaps = {${str(fbtaps)[1:-1]}};\\n% endif\\nthis->${id} = filter::iir_filter_${type}::make(\\n fftaps,\\n fbtaps,\\n ${oldstyle});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(fftaps, fbtaps)"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_interp_fir_filter_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "interp_fir_filter_xxx", "label": "Interpolating FIR Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fcc", "fff", "fsf", "scc"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Complex (Complex Taps)", "Float->Float (Real Taps)", "Float->Short (Real Taps)", "Short->Complex (Complex Taps)"], "option_attributes": {"input": ["complex", "complex", "float", "float", "float", "short"], "output": ["complex", "complex", "complex", "float", "short", "complex"], "taps": ["complex_vector", "real_vector", "complex_vector", "real_vector", "real_vector", "complex_vector"]}, "hide": "part"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.interp_fir_filter_${type}(${interp}, ${taps})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/interp_fir_filter.h>"], "declarations": "filter::interp_fir_filter_${type}::sptr ${id};", "make": "% if str(type.taps) == \\"complex_vector\\":\\nstd::vector<gr_complex> taps = {${str(taps)[1:-1]}};\\n% else:\\nstd::vector<int> taps = {${str(taps)[1:-1]}};\\n% endif\\nthis->${id} = filter::interp_fir_filter_${type}::make(${interp}, taps);", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(${taps})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_ival_decimator.block.yml": {"cached-at": 1646515621, "data": {"id": "ival_decimator", "label": "Interleaved Stream Decimator", "parameters": [{"id": "datatype", "label": "Input Type", "dtype": "enum", "options": ["byte", "short"], "option_attributes": {"datasize": ["gr.sizeof_char", "gr.sizeof_short"]}, "hide": "part"}, {"id": "decimation", "label": "Decimation", "dtype": "int", "default": "1"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.ival_decimator(${decimation}, ${datatype.datasize})"}, "documentation": "This block will directly decimate an incoming stream made up of the specified complex samples. \\nOne example would be if you have a source streaming 8-bit complex at high speeds and you want to \\ndecimate directly from a high-speed source, or before writing to a file or network sink.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_low_pass_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "low_pass_filter", "label": "Low Pass Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "FIR Type", "dtype": "enum", "options": ["fir_filter_ccf", "interp_fir_filter_ccf", "fir_filter_fff", "interp_fir_filter_fff"], "option_labels": ["Complex->Complex (Decimating)", "Complex->Complex (Interpolating)", "Float->Float (Decimating)", "Float->Float (Interpolating)"], "option_attributes": {"input": ["complex", "complex", "float", "float"], "output": ["complex", "complex", "float", "float"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1", "hide": "${ (\'all\' if str(type).startswith(\'interp\') else \'none\') }"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1", "hide": "${ (\'none\' if str(type).startswith(\'interp\') else \'all\') }"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "cutoff_freq", "label": "Cutoff Freq", "dtype": "real"}, {"id": "width", "label": "Transition Width", "dtype": "real"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "real", "default": "6.76"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.${type}(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.low_pass(\\n ${gain},\\n ${samp_rate},\\n ${cutoff_freq},\\n ${width},\\n ${win},\\n ${beta}))", "callbacks": ["set_taps(firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>", "#include <gnuradio/filter/interp_fir_filter.h>", "#include <gnuradio/filter/fir_filter_blk.h>"], "declarations": "gr::filter::${type}::sptr ${id};", "make": "this->${id} = filter::${type}::make(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n gr::filter::firdes::low_pass(\\n ${gain},\\n ${samp_rate},\\n ${cutoff_freq},\\n ${width},\\n ${win.replace(\'firdes.\', \'gr::filter::firdes::\')},\\n ${beta}));", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(gr::filter::firdes::low_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win.replace(\'firdes.\', \'gr::filter::firdes::\')}, ${beta}))"]}, "documentation": "This filter is a convenience wrapper for an fir filter and a firdes taps generating function.\\n\\nSample rate, cutoff frequency, and transition width are in Hertz.\\n\\nThe beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_mmse_resampler_xx.block.yml": {"cached-at": 1646515621, "data": {"id": "mmse_resampler_xx", "label": "Fractional Resampler", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "phase_shift", "label": "Phase Shift", "dtype": "real"}, {"id": "resamp_ratio", "label": "Resampling Ratio", "dtype": "real"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}, {"label": "rate", "domain": "stream", "dtype": "float", "optional": true}, {"domain": "message", "id": "msg_in", "optional": true}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.mmse_resampler_${type.fcn}(${phase_shift}, ${resamp_ratio})", "callbacks": ["set_resamp_ratio(${resamp_ratio})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/mmse_resampler_${type.fcn}.h>"], "declarations": "filter::mmse_resampler_${type.fcn}::sptr ${id};", "make": "this->${id} = filter::mmse_resampler_${type.fcn}::make(\\n ${phase_shift},\\n ${resamp_ratio});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_resamp_ratio(${resamp_ratio})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_arb_resampler.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_arb_resampler_xxx", "label": "Polyphase Arbitrary Resampler", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccf", "fff", "ccc"], "option_labels": ["Complex->Complex (Real Taps)", "Float->Float (Real Taps)", "Complex->Complex (Complex Taps)"], "option_attributes": {"input": ["complex", "float", "complex"], "output": ["complex", "float", "complex"], "taps": ["real_vector", "real_vector", "complex_vector"]}, "hide": "part"}, {"id": "rrate", "label": "Resampling Rate", "dtype": "real"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }"}, {"id": "nfilts", "label": "Number of Filters", "dtype": "int", "default": "32"}, {"id": "atten", "label": "Stop-band Attenuation", "dtype": "real", "default": "100"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}], "asserts": ["${ rrate > 0 }"], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio.filter import pfb\\nfrom gnuradio.filter import firdes", "make": "pfb.arb_resampler_${type}(\\n ${rrate},\\n taps=${ taps if taps else \'None\' },\\n flt_size=${nfilts})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_rate(${rrate})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/pfb_arb_resampler_${type}.h>"], "declarations": "gr::filter::pfb_arb_resampler_${type}::sptr ${id};", "make": "<% \\n taps = self.context.get(\'taps\')\\n try: taps\\n except NameError: taps = None \\n taps = None if (len(taps) == 0) else taps\\n%>\\n% if taps == None or len(taps) == 0:\\n <%\\n # Leverage python module to generate values for taps\\n from gnuradio import filter \\n %>\\n % if type == \'fff\':\\n <% taps = filter.pfb.arb_resampler_fff.create_taps(float(self.context.get(\'rrate\')), int(self.context.get(\'nfilts\')), float(self.context.get(\'atten\'))) %>\\n % elif type == \'ccf\':\\n <% taps = filter.pfb.arb_resampler_ccf.create_taps(float(self.context.get(\'rrate\')), int(self.context.get(\'nfilts\')), float(self.context.get(\'atten\'))) %>\\n % elif type == \'ccc\':\\n <% taps = filter.pfb.arb_resampler_ccc.create_taps(float(self.context.get(\'rrate\')), int(self.context.get(\'nfilts\')), float(self.context.get(\'atten\'))) %>\\n % endif\\n% endif\\n\\n% if str(type.taps) == \\"complex_vector\\":\\nstd::vector<gr_complex> taps = {${str(taps)[1:-1]}};\\n% else:\\nstd::vector<float> taps = {${str(taps)[1:-1]}};\\n% endif\\nthis->${id} = gr::filter::pfb_arb_resampler_${type}::make(\\n ${rrate},\\n taps,\\n ${nfilts});\\nthis->${id}->declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)", "set_rate(${rrate})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_channelizer.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_channelizer_ccf", "label": "Polyphase Channelizer", "flags": ["python", "cpp"], "parameters": [{"id": "nchans", "label": "Channels", "dtype": "int", "default": "1", "hide": "part"}, {"id": "taps", "label": "Taps", "dtype": "real_vector"}, {"id": "osr", "label": "Oversampling Ratio", "dtype": "real", "default": "1.0"}, {"id": "atten", "label": "Attenuation", "dtype": "real", "default": "100"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}, {"id": "ch_map", "label": "Channel Map", "dtype": "int_vector", "default": "[]"}, {"id": "bus_structure_source", "label": "Bus Connections", "dtype": "raw", "default": "[[0,],]", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex", "multiplicity": "${ nchans }"}], "templates": {"imports": "from gnuradio.filter import pfb\\nfrom gnuradio.filter import firdes", "make": "pfb.channelizer_ccf(\\n ${nchans},\\n ${taps},\\n ${osr},\\n ${atten})\\nself.${id}.set_channel_map(${ch_map})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_channel_map(${ch_map})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/pfb_channelizer_ccf.h>"], "declarations": "pfb::channelizer_ccf::sptr ${id};", "make": "std::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = pfb::channelizer_ccf::make(\\n ${nchans},\\n taps,\\n ${osr},\\n ${atten});\\nthis->${id}.set_channel_map(${ch_map});\\nthis->${id}.declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)", "set_channel_map(${ch_map})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_channelizer_hier.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_channelizer_hier_ccf", "label": "Hierarchical Polyphase Channelizer", "flags": ["python"], "parameters": [{"id": "nchans", "label": "Number of Channels", "dtype": "int", "default": "3", "hide": "part"}, {"id": "n_filterbanks", "label": "Number of Filterbanks", "dtype": "int", "default": "4"}, {"id": "taps", "label": "Taps", "dtype": "raw", "default": "None"}, {"id": "outchans", "label": "Output Channels", "dtype": "raw", "default": "None"}, {"id": "atten", "label": "Attenuation", "dtype": "real", "default": "100"}, {"id": "bw", "label": "Fraction of Channel to Keep", "dtype": "real", "default": "1.0"}, {"id": "tb", "label": "Transition Band (as a fraction of channel width)", "dtype": "real", "default": "0.2"}, {"id": "ripple", "label": "Passband Ripple in dB", "dtype": "real", "default": "0.1"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex", "multiplicity": "${ nchans }"}], "templates": {"imports": "from gnuradio.filter import pfb", "make": "pfb.channelizer_hier_ccf(\\n ${nchans},\\n ${n_filterbanks},\\n ${taps},\\n ${outchans},\\n ${atten},\\n ${bw},\\n ${tb},\\n ${ripple})", "callbacks": ["set_taps(${taps})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_decimator.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_decimator_ccf", "label": "Polyphase Decimator", "flags": ["python", "cpp"], "parameters": [{"id": "decim", "label": "Decimation", "dtype": "int"}, {"id": "taps", "label": "Taps", "dtype": "real_vector"}, {"id": "channel", "label": "Output Channel", "dtype": "int", "default": "0"}, {"id": "atten", "label": "Stop-band Attenuation", "dtype": "real", "default": "100"}, {"id": "fft_rot", "label": "Use FFT Rotator", "dtype": "raw", "default": "True", "options": ["True", "False"], "hide": "part"}, {"id": "fft_filts", "label": "Use FFT Filters", "dtype": "raw", "default": "True", "options": ["True", "False"], "hide": "part"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio.filter import pfb\\nfrom gnuradio.filter import firdes", "make": "pfb.decimator_ccf(\\n ${decim},\\n ${taps},\\n ${channel},\\n ${atten},\\n ${fft_rot},\\n ${fft_filts})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_channel(int(${channel}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/pfb_decimator_ccf.h>"], "declarations": "pfb::decimator_ccf::sptr ${id};", "make": "std::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = pfb::decimator_ccf::make(\\n ${decim},\\n taps,\\n ${channel},\\n ${atten},\\n ${fft_rot},\\n ${fft_filts});\\nthis->${id}.declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)", "set_channel(int(${channel}))"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_interpolator.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_interpolator_ccf", "label": "Polyphase Interpolator", "flags": ["python", "cpp"], "parameters": [{"id": "interp", "label": "Interpolation", "dtype": "int"}, {"id": "taps", "label": "Taps", "dtype": "real_vector"}, {"id": "atten", "label": "Attenuation", "dtype": "real", "default": "100"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio.filter import pfb\\nfrom gnuradio.filter import firdes", "make": "pfb.interpolator_ccf(\\n ${interp},\\n ${taps},\\n ${atten})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/pfb_interpolator_ccf.h>"], "declarations": "pfb::interpolator_ccf::sptr ${id};", "make": "std::vector<float> taps = {${str(taps)[1:-1]}};\\nthis->${id} = pfb::interpolator_ccf::make(\\n ${interp},\\n taps,\\n ${atten});\\nthis->${id}.declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_pfb_synthesizer.block.yml": {"cached-at": 1646515621, "data": {"id": "pfb_synthesizer_ccf", "label": "Polyphase Synthesizer", "flags": ["python", "cpp"], "parameters": [{"id": "numchans", "label": "Channels", "dtype": "int", "default": "2"}, {"id": "connections", "label": "Connections", "dtype": "int", "default": "2", "hide": "part"}, {"id": "taps", "label": "Taps", "dtype": "real_vector"}, {"id": "twox", "label": "2x Sample Rate", "dtype": "bool", "default": "False"}, {"id": "samp_delay", "label": "Sample Delay", "dtype": "int", "default": "0", "hide": "part"}, {"id": "ch_map", "label": "Channel Map", "dtype": "int_vector", "default": "[]"}, {"id": "bus_structure_sink", "label": "Bus Connections", "dtype": "raw", "default": "[[0,],]", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex", "multiplicity": "${ connections }"}], "outputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.pfb_synthesizer_ccf(\\n ${numchans},\\n ${taps},\\n ${twox})\\nself.${id}.set_channel_map(${ch_map})\\nself.${id}.declare_sample_delay(${samp_delay})", "callbacks": ["set_taps(${taps})", "set_channel_map(${ch_map})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/pfb_synthesizer_ccf.h>"], "declarations": "gr::filter::pfb_synthesizer_ccf::sptr ${id};", "make": "std::vector<float> taps = {${str(eval(taps))[1:-1]}};\\nstd::vector<int> ch_map = {${str(ch_map)[1:-1]}};\\nthis->${id} = gr::filter::pfb_synthesizer_ccf::make(\\n ${numchans},\\n taps,\\n ${twox});\\nthis->${id}->set_channel_map(ch_map);\\nthis->${id}->declare_sample_delay(${samp_delay});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(taps)", "set_channel_map(ch_map)"], "translations": {"True": "true", "False": "false"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_rational_resampler_xxx.block.yml": {"cached-at": 1646515621, "data": {"id": "rational_resampler_xxx", "label": "Rational Resampler", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["ccc", "ccf", "fcc", "fff"], "option_labels": ["Complex->Complex (Complex Taps)", "Complex->Complex (Real Taps)", "Float->Complex (Complex Taps)", "Float->Float (Real Taps)"], "option_attributes": {"input": ["complex", "complex", "float", "float"], "output": ["complex", "complex", "complex", "float"], "taps": ["complex_vector", "real_vector", "complex_vector", "real_vector"]}, "hide": "part"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1"}, {"id": "taps", "label": "Taps", "dtype": "${ type.taps }", "default": "[]"}, {"id": "fbw", "label": "Fractional BW", "dtype": "real", "default": "0"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.rational_resampler_${type}(\\n interpolation=${interp},\\n decimation=${decim},\\n% if taps:\\n taps=${taps},\\n% else:\\n taps=[],\\n% endif\\n% if fbw:\\n fractional_bw=${fbw})\\n% else:\\n fractional_bw=-1.0)\\n% endif", "callbacks": ["set_taps(${taps})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/rational_resampler.h>"], "declarations": "gr::filter::rational_resampler_${type}::sptr ${id};", "make": "<%\\n taps = self.context.get(\'taps\')\\n try: taps\\n except: taps = None\\n taps = None if (len(taps) == 0) else taps\\n%>\\n% if taps == None or len(taps) == 0:\\n % if str(type.taps) == \\"complex_vector\\":\\n std::vector<gr_complex> taps;\\n % else:\\n std::vector<float> taps;\\n % endif\\n% else:\\n % if str(type.taps) == \\"complex_vector\\":\\n std::vector<gr_complex> taps = {${str(taps)[1:-1]}};\\n % else:\\n std::vector<float> taps = {${str(taps)[1:-1]}};\\n % endif\\n% endif\\n\\nthis->${id} = gr::filter::rational_resampler_${type}::make(\\n ${interp},\\n ${decim},\\n taps,\\n ${fbw});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(${taps})"]}, "documentation": "This is a rational resampling polyphase FIR filter.\\n\\nEither taps or fractional_bw may be specified, but not both.\\n\\nIf neither is specified, a reasonable default, 0.4, is used as the fractional_bw.\\n\\nParameters:\\nInterpolation\\n Interpolation factor (integer > 0)\\n\\nDecimation\\n Decimation factor (integer > 0)\\n\\nTaps (R)\\n Optional filter coefficients (sequence)\\n\\nFractional BW\\n Fractional bandwidth in (0, 0.5), measured at final freq (use 0.4) (float)", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_root_raised_cosine_filter.block.yml": {"cached-at": 1646515621, "data": {"id": "root_raised_cosine_filter", "label": "Root Raised Cosine Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "FIR Type", "dtype": "enum", "options": ["fir_filter_ccf", "interp_fir_filter_ccf", "fir_filter_fff", "interp_fir_filter_fff"], "option_labels": ["Complex->Complex (Decimating)", "Complex->Complex (Interpolating)", "Float->Float (Decimating)", "Float->Float (Interpolating)"], "option_attributes": {"input": ["complex", "complex", "float", "float"], "output": ["complex", "complex", "float", "float"]}, "hide": "part"}, {"id": "decim", "label": "Decimation", "dtype": "int", "default": "1", "hide": "${ (\'all\' if str(type).startswith(\'interp\') else \'none\') }"}, {"id": "interp", "label": "Interpolation", "dtype": "int", "default": "1", "hide": "${ (\'none\' if str(type).startswith(\'interp\') else \'all\') }"}, {"id": "gain", "label": "Gain", "dtype": "real", "default": "1"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "sym_rate", "label": "Symbol Rate", "dtype": "real", "default": "1.0"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "0.35"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "11*samp_rate"}], "inputs": [{"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "stream", "dtype": "${ type.output }"}], "templates": {"imports": "from gnuradio import filter\\nfrom gnuradio.filter import firdes", "make": "filter.${type}(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes.root_raised_cosine(\\n ${gain},\\n ${samp_rate},\\n ${sym_rate},\\n ${alpha},\\n ${ntaps}))", "callbacks": ["set_taps(firdes.root_raised_cosine(${gain}, ${samp_rate}, ${sym_rate}, ${alpha}, ${ntaps}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "make": "this->${id} = filter::${type}::make(\\n ${ interp if str(type).startswith(\'interp\') else decim },\\n firdes::root_raised_cosine(\\n ${gain},\\n ${samp_rate},\\n ${sym_rate},\\n ${alpha},\\n ${ntaps}));", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(firdes::root_raised_cosine(${gain}, ${samp_rate}, ${sym_rate}, ${alpha}, ${ntaps}))"]}, "documentation": "This filter is a convenience wrapper for an fir filter and a firdes taps generating function.\\n\\nSample rate in Hertz.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/filter_single_pole_iir_filter_xx.block.yml": {"cached-at": 1646515621, "data": {"id": "single_pole_iir_filter_xx", "label": "Single Pole IIR Filter", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "options": ["complex", "float"], "option_attributes": {"fcn": ["cc", "ff"]}, "hide": "part"}, {"id": "alpha", "label": "Alpha", "dtype": "real", "default": "1.0"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }"}], "templates": {"imports": "from gnuradio import filter", "make": "filter.single_pole_iir_filter_${type.fcn}(${alpha}, ${vlen})", "callbacks": ["set_taps(${alpha})"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/single_pole_iir_filter_${type.fcn}.h>"], "declarations": "filter::single_pole_iir_filter_${type.fcn}::sptr ${id};", "make": "this->${id} = filter::single_pole_iir_filter_${type.fcn}::make(${alpha}, ${vlen});", "link": ["gnuradio::gnuradio-filter"], "callbacks": ["set_taps(${alpha})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/grc.tree.yml": {"cached-at": 1646515621, "data": {"[Core]": [{"Misc": ["options", "pad_source", "pad_sink", "virtual_source", "virtual_sink", "bus_sink", "bus_source", "bus_structure_sink", "bus_structure_source", "epy_block", "epy_module", "note", "import", "snippet"]}, {"Variables": ["variable", "variable_struct", "variable_config", "variable_function_probe", "parameter"]}]}}, "/lib/share/gnuradio/grc/blocks/import.block.yml": {"cached-at": 1646515621, "data": {"id": "import", "label": "Import", "flags": ["python"], "parameters": [{"id": "imports", "label": "Import", "dtype": "import"}], "templates": {"imports": "${imports}"}, "documentation": "Import additional python modules into the namespace.\\n\\nExamples:\\nfrom gnuradio.filter import firdes\\nimport math,cmath\\nfrom math import pi", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/message.domain.yml": {"cached-at": 1646515621, "data": {"id": "message", "label": "Message", "color": "#FFFFFF", "multiple_connections_per_input": true, "multiple_connections_per_output": true, "templates": [{"type": ["message", "message"], "connect": "self.msg_connect(${ make_port_sig(source) }, ${ make_port_sig(sink) })", "cpp_connect": "hier_block2::msg_connect(${ make_port_sig(source) }, ${ make_port_sig(sink) })"}]}}, "/lib/share/gnuradio/grc/blocks/note.block.yml": {"cached-at": 1646515621, "data": {"id": "note", "label": "Note", "flags": ["python", "cpp"], "parameters": [{"id": "note", "label": "Note", "dtype": "string"}], "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/options.block.yml": {"cached-at": 1646515621, "data": {"id": "options", "label": "Options", "flags": ["python", "cpp"], "parameters": [{"id": "title", "label": "Title", "dtype": "string", "hide": "${ (\'none\' if title else \'part\') }"}, {"id": "author", "label": "Author", "dtype": "string", "hide": "${ (\'none\' if author else \'part\') }"}, {"id": "copyright", "label": "Copyright", "dtype": "string", "hide": "${ (\'none\' if copyright else \'part\') }"}, {"id": "description", "label": "Description", "dtype": "string", "hide": "${ (\'none\' if description else \'part\') }"}, {"id": "output_language", "label": "Output Language", "dtype": "enum", "default": "python", "options": ["python", "cpp"], "option_labels": ["Python", "C++"]}, {"id": "generate_options", "label": "Generate Options", "dtype": "enum", "default": "qt_gui", "options": ["qt_gui", "bokeh_gui", "no_gui", "hb", "hb_qt_gui"], "option_labels": ["QT GUI", "Bokeh GUI", "No GUI", "Hier Block", "Hier Block (QT GUI)"]}, {"id": "gen_linking", "label": "Linking", "dtype": "enum", "default": "dynamic", "options": ["dynamic", "static"], "option_labels": ["Dynamic", "Static"], "hide": "all"}, {"id": "gen_cmake", "label": "Generate CMakeLists.txt", "dtype": "enum", "default": "On", "options": ["On", "Off"], "hide": "${ (\'part\' if output_language == \'cpp\' else \'all\') }"}, {"id": "cmake_opt", "label": "CMake options", "dtype": "string", "default": "", "hide": "${ (\'part\' if output_language == \'cpp\' else \'all\') }"}, {"id": "category", "label": "Category", "dtype": "string", "default": "[GRC Hier Blocks]", "hide": "${ (\'none\' if generate_options.startswith(\'hb\') else \'all\') }"}, {"id": "run_options", "label": "Run Options", "dtype": "enum", "default": "prompt", "options": ["run", "prompt"], "option_labels": ["Run to Completion", "Prompt for Exit"], "hide": "${ (\'none\' if generate_options == \'no_gui\' else \'all\') }"}, {"id": "placement", "label": "Widget Placement", "dtype": "int_vector", "default": "(0,0)", "hide": "${ (\'part\' if generate_options == \'bokeh_gui\' else \'all\') }"}, {"id": "window_size", "label": "Window size", "dtype": "int_vector", "default": "(1000,1000)", "hide": "${ (\'part\' if generate_options == \'bokeh_gui\' else \'all\') }"}, {"id": "sizing_mode", "label": "Sizing Mode", "dtype": "enum", "default": "fixed", "options": ["fixed", "stretch_both", "scale_width", "scale_height", "scale_both"], "option_labels": ["Fixed", "Stretch Both", "Scale Width", "Scale Height", "Scale Both"], "hide": "${ (\'part\' if generate_options == \'bokeh_gui\' else \'all\') }"}, {"id": "run", "label": "Run", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["Autostart", "Off"], "hide": "${ (\'all\' if generate_options not in (\'qt_gui\', \'bokeh_gui\') else (\'part\' if run else \'none\')) }"}, {"id": "max_nouts", "label": "Max Number of Output", "dtype": "int", "default": "0", "hide": "${ (\'all\' if generate_options.startswith(\'hb\') else (\'none\' if max_nouts else \'part\')) }"}, {"id": "realtime_scheduling", "label": "Realtime Scheduling", "dtype": "enum", "options": ["", "1"], "option_labels": ["Off", "On"], "hide": "${ (\'all\' if generate_options.startswith(\'hb\') else (\'none\' if realtime_scheduling else \'part\')) }"}, {"id": "qt_qss_theme", "label": "QSS Theme", "dtype": "file_open", "hide": "${ (\'all\' if generate_options != \'qt_gui\' else (\'none\' if qt_qss_theme else \'part\')) }"}, {"id": "thread_safe_setters", "label": "Thread-safe setters", "category": "Advanced", "dtype": "enum", "options": ["", "1"], "option_labels": ["Off", "On"], "hide": "part"}, {"id": "catch_exceptions", "label": "Catch Block Exceptions", "category": "Advanced", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Off", "On"], "default": "True", "hide": "part"}, {"id": "run_command", "label": "Run Command", "category": "Advanced", "dtype": "string", "default": "{python} -u {filename}", "hide": "${ (\'all\' if generate_options.startswith(\'hb\') else \'part\') }"}, {"id": "hier_block_src_path", "label": "Hier Block Source Path", "category": "Advanced", "dtype": "string", "default": ".:", "hide": "part"}], "asserts": ["${ len(placement) == 4 or len(placement) == 2 }", "${ all(i >= 0 for i in placement) }"], "templates": {"imports": "from gnuradio import gr\\nfrom gnuradio.filter import firdes\\nfrom gnuradio.fft import window\\nimport sys\\nimport signal\\n% if generate_options == \'qt_gui\':\\nfrom PyQt5 import Qt\\n% endif\\n% if not generate_options.startswith(\'hb\'):\\nfrom argparse import ArgumentParser\\nfrom gnuradio.eng_arg import eng_float, intx\\nfrom gnuradio import eng_notation\\n% endif", "callbacks": ["if ${run}: self.start()\\nelse: self.stop(); self.wait()"]}, "cpp_templates": {"includes": ["#include <gnuradio/top_block.h>"]}, "documentation": "The options block sets special parameters for the flow graph. Only one option block is allowed per flow graph.\\n\\nTitle, author, and description parameters are for identification purposes.\\n\\nThe window size controls the dimensions of the flow graph editor. The window size (width, height) must be between (300, 300) and (4096, 4096).\\n\\nThe generate options controls the type of code generated. Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.\\n\\nIn a graphical application, run can be controlled by a variable to start and stop the flowgraph at runtime.\\n\\nThe 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....\\n\\nThe 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.\\n\\nThe Max Number of Output is the maximum number of output items allowed for any block in the flowgraph; to disable this set the max_nouts equal to 0.Use this to adjust the maximum latency a flowgraph can exhibit.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pad_sink.block.yml": {"cached-at": 1646515621, "data": {"id": "pad_sink", "label": "Pad Sink", "flags": ["python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "default": "out"}, {"id": "type", "label": "Input Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte", "bit", "message", ""], "option_labels": ["Complex", "Float", "Int", "Short", "Byte", "Bits", "Message", "Wildcard"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char", "gr.sizeof_char", "0", "0"], "cpp_size": ["sizeof(gr_complex)", "sizeof(float)", "sizeof(int)", "sizeof(short)", "sizeof(char)", "sizeof(char)", "0", "0"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "1", "hide": "part"}, {"id": "optional", "label": "Optional", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["Optional", "Required"], "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }", "optional": "${optional}"}], "asserts": ["${ vlen > 0 }", "${ num_streams > 0 }"], "documentation": "The inputs of this block will become the outputs to this flow graph when it is instantiated as a hierarchical block.\\n\\nPad sink will be ordered alphabetically by their ids. The first pad sink will have an index of 0.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pad_source.block.yml": {"cached-at": 1646515621, "data": {"id": "pad_source", "label": "Pad Source", "flags": ["python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "default": "in"}, {"id": "type", "label": "Output Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte", "bit", "message", ""], "option_labels": ["Complex", "Float", "Int", "Short", "Byte", "Bits", "Message", "Wildcard"], "option_attributes": {"size": ["gr.sizeof_gr_complex", "gr.sizeof_float", "gr.sizeof_int", "gr.sizeof_short", "gr.sizeof_char", "gr.sizeof_char", "0", "0"], "cpp_size": ["sizeof(gr_complex)", "sizeof(float)", "sizeof(int)", "sizeof(short)", "sizeof(char)", "sizeof(char)", "0", "0"]}, "hide": "part"}, {"id": "vlen", "label": "Vector Length", "dtype": "int", "default": "1", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "num_streams", "label": "Num Streams", "dtype": "int", "default": "1", "hide": "part"}, {"id": "optional", "label": "Optional", "dtype": "bool", "default": "False", "options": ["True", "False"], "option_labels": ["Optional", "Required"], "hide": "part"}], "outputs": [{"domain": "stream", "dtype": "${ type }", "vlen": "${ vlen }", "multiplicity": "${ num_streams }", "optional": "${optional}"}], "asserts": ["${ vlen > 0 }", "${ num_streams > 0 }"], "documentation": "The outputs of this block will become the inputs to this flow graph when it is instantiated as a hierarchical block.\\n\\nPad sources will be ordered alphabetically by their ids. The first pad source will have an index of 0.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/parameter.block.yml": {"cached-at": 1646515622, "data": {"id": "parameter", "label": "Parameter", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "options": ["", "complex", "eng_float", "intx", "long", "str"], "option_labels": ["None", "Complex", "Float", "Int", "Long", "String"], "option_attributes": {"type": ["raw", "complex", "real", "int", "int", "string"]}, "hide": "${ (\'none\' if type else \'part\') }"}, {"id": "value", "label": "Value", "dtype": "${ type.type }", "default": "0"}, {"id": "short_id", "label": "Short ID", "dtype": "string", "hide": "${ \'all\' if not type else (\'none\' if short_id else \'part\') }"}, {"id": "hide", "label": "Show", "dtype": "enum", "options": ["none", "part"], "option_labels": ["Always", "Only in Properties"], "hide": "part"}], "asserts": ["${ len(short_id) in (0, 1) }", "${ short_id == \'\' or short_id.isalpha() }"], "templates": {"var_make": "self.${id} = ${id}", "make": "${value}"}, "cpp_templates": {"var_make": "${id} = ${value};", "make": "${value}"}, "documentation": "This block represents a parameter to the flow graph. A parameter can be used to pass command line arguments into a top block. Or, parameters can pass arguments into an instantiated hierarchical block.\\n\\nThe parameter value cannot depend on any variables.\\n\\nLeave the label blank to use the parameter id as the label.\\n\\nWhen type is not None, this parameter also becomes a command line option of the form:\\n\\n-[short_id] --[id] [value]\\n\\nThe Short ID field may be left blank.\\n\\nTo disable showing the parameter on the hierarchical block in GRC, use Only in Properties option in the Show field.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu.tree.yml": {"cached-at": 1646515622, "data": {"[Core]": [{"PDU Tools": ["pdu_add_system_time", "pdu_pdu_filter", "pdu_pdu_lambda", "pdu_pdu_remove", "pdu_pdu_set", "pdu_pdu_split", "pdu_pdu_to_stream_x", "pdu_pdu_to_tagged_stream", "pdu_tagged_stream_to_pdu", "pdu_random_pdu", "pdu_tags_to_pdu_x", "pdu_take_skip_to_pdu", "pdu_time_delta"]}]}}, "/lib/share/gnuradio/grc/blocks/pdu_add_system_time.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_add_system_time", "label": "Add System Time", "flags": ["python"], "parameters": [{"id": "key", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"system_time\\")"}], "inputs": [{"domain": "message", "id": "pdu", "optional": true}], "outputs": [{"domain": "message", "id": "pdu", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.add_system_time(${key})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_filter.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_filter", "label": "PDU Filter", "flags": ["python"], "parameters": [{"id": "k", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"key\\")"}, {"id": "v", "label": "Value", "dtype": "raw", "default": "pmt.intern(\\"value\\")"}, {"id": "invert", "label": "Invert Filter", "dtype": "bool", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"]}], "inputs": [{"domain": "message", "id": "pdus", "optional": true}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.pdu_filter(${k}, ${v}, ${invert})", "callbacks": ["set_key(${k})", "set_val(${v})", "set_inversion(${invert})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_lambda.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_lambda", "label": "PDU Lambda", "flags": ["python"], "parameters": [{"id": "fn", "label": "Function", "dtype": "raw", "default": "lambda x: x*10"}, {"id": "metadict", "label": "Mode", "dtype": "enum", "options": ["Metadata", "Uniform Vector", "Raw Message"], "option_attributes": {"mode": ["\\"META\\"", "\\"UVEC\\"", "\\"RAW\\""]}, "default": true, "hide": "part"}, {"id": "key", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"key\\")", "hide": "${ \'none\' if metadict.mode == \'META\' else \'all\' }"}], "inputs": [{"id": "pdu", "domain": "message", "optional": true}], "outputs": [{"id": "pdu", "domain": "message", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt, numpy as np", "make": "pdu.pdu_lambda(${fn}, ${metadict.mode}, ${key})", "callbacks": ["set_fn(${fn})", "set_fn(${key})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_remove.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_remove", "label": "PDU Remove", "flags": ["python"], "parameters": [{"id": "k", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"key\\")"}], "inputs": [{"domain": "message", "id": "pdus", "optional": true}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.pdu_remove(${k})", "callbacks": ["set_key(${k})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_set.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_set", "label": "PDU Set", "flags": ["python"], "parameters": [{"id": "k", "label": "Key", "dtype": "raw", "default": "pmt.intern(\\"key\\")"}, {"id": "v", "label": "Value", "dtype": "raw", "default": "pmt.intern(\\"value\\")"}], "inputs": [{"domain": "message", "id": "pdus", "optional": true}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.pdu_set(${k}, ${v})", "callbacks": ["set_key(${k})", "set_val(${v})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_split.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_split", "label": "PDU Split", "flags": ["python"], "parameters": [{"id": "pass_empty", "label": "Empty", "dtype": "enum", "options": ["False", "True"], "option_labels": ["Drop", "Print"]}], "inputs": [{"domain": "message", "id": "pdu"}], "outputs": [{"domain": "message", "id": "dict", "optional": true}, {"domain": "message", "id": "vec", "optional": true}], "templates": {"imports": "from gnuradio import pdu", "make": "pdu.pdu_split(${pass_empty})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_to_stream.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_to_stream_x", "label": "PDU To Stream", "flags": ["python"], "parameters": [{"id": "type", "label": "PDU Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_labels": ["Complex", "Float", "Int", "Short", "Byte"], "option_attributes": {"shortform": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "early_behavior", "label": "Early Behavior", "dtype": "enum", "options": ["pdu.EARLY_BURST_APPEND", "pdu.EARLY_BURST_DROP", "pdu.EARLY_BURST_BALK"], "option_labels": ["Append", "Drop", "Balk"]}, {"id": "depth", "label": "Queue Depth", "dtype": "int", "default": "64", "hide": "part"}], "inputs": [{"domain": "message", "id": "pdus"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "asserts": ["${ depth > 2 }", "${ depth <= 65536 }"], "templates": {"imports": "from gnuradio import pdu", "make": "pdu.pdu_to_stream_${type.shortform}(${early_behavior}, ${depth})", "callbacks": ["set_max_queue_size(${depth})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_pdu_to_tagged_stream.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_pdu_to_tagged_stream", "label": "PDU to Tagged Stream", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Item Type", "dtype": "enum", "options": ["byte", "complex", "float"], "option_attributes": {"tv": ["gr.types.byte_t", "gr.types.complex_t", "gr.types.float_t"]}, "hide": "part"}, {"id": "tag", "label": "Length tag name", "dtype": "string", "default": "packet_len"}], "inputs": [{"domain": "message", "id": "pdus"}], "outputs": [{"domain": "stream", "dtype": "${ type }"}], "templates": {"imports": "from gnuradio import gr, pdu", "make": "pdu.pdu_to_tagged_stream(${type.tv}, ${tag})"}, "cpp_templates": {"includes": ["#include <gnuradio/pdu/pdu_to_tagged_stream.h>"], "declarations": "pdu::pdu_to_tagged_stream::sptr ${id};", "make": "this->${id} = pdu::pdu_to_tagged_stream::make(${type.tv}, ${tag});", "translations": {"pdu\\\\.": "pdu::"}}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_random_pdu.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_random_pdu", "label": "Random PDU Generator", "flags": ["python"], "parameters": [{"id": "minsize", "label": "Min Bytes", "dtype": "int", "default": "50"}, {"id": "maxsize", "label": "Max Bytes", "dtype": "int", "default": "2000"}, {"id": "mask", "label": "Byte Mask", "dtype": "int", "default": "0xFF"}, {"id": "length_modulo", "label": "Length Modulo", "dtype": "int", "default": "2"}], "inputs": [{"domain": "message", "id": "generate", "optional": true}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.random_pdu(${minsize}, ${maxsize}, ${mask}, ${length_modulo})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_tagged_stream_to_pdu.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_tagged_stream_to_pdu", "label": "Tagged Stream to PDU", "flags": ["python"], "parameters": [{"id": "type", "label": "Item Type", "dtype": "enum", "options": ["byte", "complex", "float"], "option_attributes": {"tv": ["gr.types.byte_t", "gr.types.complex_t", "gr.types.float_t"]}, "hide": "part"}, {"id": "tag", "label": "Length tag name", "dtype": "string", "default": "packet_len"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "templates": {"imports": "from gnuradio import gr, pdu", "make": "pdu.tagged_stream_to_pdu(${type.tv}, ${tag})"}, "cpp_templates": {"includes": ["#include <gnuradio/pdu/tagged_stream_to_pdu.h>"], "declarations": "pdu::tagged_stream_to_pdu::sptr ${id};", "make": "this->${id} = pdu::tagged_stream_to_pdu::make(${type.tv}, ${tag});"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_tags_to_pdu.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_tags_to_pdu_x", "label": "Tags To PDU", "flags": ["python"], "parameters": [{"id": "type", "label": "PDU Type", "dtype": "enum", "options": ["c", "f", "i", "s", "b"], "option_labels": ["Complex", "Float", "Int", "Short", "Byte"], "option_attributes": {"input": ["complex", "float", "int", "short", "byte"], "vec_type": ["complex_vector", "float_vector", "int_vector", "int_vector", "int_vector"]}, "hide": "part"}, {"id": "start_tag", "label": "Start Tag", "dtype": "string", "default": "SOB"}, {"id": "end_tag", "label": "End Tag", "dtype": "string", "default": "EOB"}, {"id": "max_pdu_size", "label": "Max PDU Size", "dtype": "int", "default": "1024", "hide": "part"}, {"id": "rate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate", "hide": "part"}, {"id": "prepend", "label": "Prepend", "dtype": "${ type.vec_type }", "default": "[]", "hide": "part"}, {"id": "cfg_port", "label": "Config Port", "category": "Optional", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Enabled", "Disabled"], "option_attributes": {"hide": ["False", "True"]}, "hide": "part"}, {"id": "pub_det", "label": "Emit Detections", "category": "Optional", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "option_attributes": {"hide": ["False", "True"]}, "hide": "part"}, {"id": "tail_size", "label": "Tail Size", "category": "Optional", "dtype": "int", "default": "0", "hide": "part"}, {"id": "eob_alignment", "label": "EOB Alignment", "category": "Optional", "dtype": "int", "default": "1", "hide": "part"}, {"id": "eob_offset", "label": "EOB Offset", "category": "Optional", "dtype": "int", "default": "0", "hide": "part"}, {"id": "start_time", "label": "Start Time (s)", "category": "Optional", "dtype": "float", "default": "0.0", "hide": "part"}, {"id": "boost_time", "label": "Boost Time", "category": "Optional", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}], "inputs": [{"domain": "message", "id": "conf", "optional": true, "hide": "${ cfg_port.hide }"}, {"domain": "stream", "dtype": "${ type.input }"}], "outputs": [{"domain": "message", "id": "detects", "optional": true, "hide": "${ pub_det.hide }"}, {"domain": "message", "id": "pdus", "optional": true}], "asserts": ["${ max_pdu_size > 0 }", "${ rate > 0 }", "${ tail_size >= 0 }", "${ eob_alignment > 0 }", "${ eob_offset >= 0 }", "${ eob_offset < eob_alignment }", "${ start_time >= 0 }"], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.tags_to_pdu_${type}(pmt.intern(${start_tag}), pmt.intern(${end_tag}), ${max_pdu_size}, ${rate}, ${prepend}, ${pub_det}, ${tail_size}, ${start_time})\\nself.${id}.set_eob_parameters(${eob_alignment}, ${eob_offset})\\nself.${id}.enable_time_debug(${boost_time})\\n", "callbacks": ["set_start_tag(pmt.intern(${start_tag}))", "set_end_tag(pmt.intern(${end_tag}))", "set_max_pdu_size(${max_pdu_size})", "set_rate(${rate})", "set_prepend(${prepend})", "set_tail_size(${tail_size})", "set_eob_parameters(${eob_alignment}, ${eob_offset})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_take_skip_to_pdu.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_take_skip_to_pdu", "label": "Take/Skip To PDU", "flags": ["python"], "parameters": [{"id": "type", "label": "PDU Type", "dtype": "enum", "options": ["complex", "float", "int", "short", "byte"], "option_labels": ["Complex", "Float", "Int", "Short", "Byte"], "option_attributes": {"t": ["c", "f", "i", "s", "b"]}, "hide": "part"}, {"id": "take", "label": "Take", "dtype": "int", "default": "1024"}, {"id": "skip", "label": "Skip", "dtype": "int", "default": "4096"}], "inputs": [{"domain": "stream", "dtype": "${ type }"}], "outputs": [{"domain": "message", "id": "pdus", "optional": true}], "asserts": ["${ take >= 1 }", "${ skip >= 0 }"], "templates": {"imports": "from gnuradio import pdu", "make": "pdu.take_skip_to_pdu_${type.t}(${take}, ${skip})", "callbacks": ["set_take(${take})", "set_skip(${skip})"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/pdu_time_delta.block.yml": {"cached-at": 1646515622, "data": {"id": "pdu_time_delta", "label": "Time Delta", "flags": ["python"], "parameters": [{"id": "delta_key", "label": "Time Delta Key", "dtype": "raw", "default": "pmt.intern(\\"time_delta_ms\\")"}, {"id": "time_key", "label": "Time Key", "dtype": "raw", "default": "pmt.intern(\\"system_time\\")"}], "inputs": [{"domain": "message", "id": "pdu", "optional": true}], "outputs": [{"domain": "message", "id": "pdu", "optional": true}], "templates": {"imports": "from gnuradio import pdu\\nimport pmt", "make": "pdu.time_delta(${delta_key}, ${time_key})"}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui.tree.yml": {"cached-at": 1646515622, "data": {"[Core]": [{"Instrumentation": [{"QT": ["qtgui_eye_sink_x", "qtgui_freq_sink_x", "qtgui_time_sink_x", "qtgui_const_sink_x", "qtgui_waterfall_sink_x", "qtgui_time_raster_sink_x", "qtgui_bercurve_sink", "qtgui_histogram_sink_x", "qtgui_number_sink", "qtgui_vector_sink_f", "qtgui_sink_x"]}]}, {"GUI Widgets": [{"QT": ["qtgui_tab_widget", "variable_qtgui_range", "variable_qtgui_chooser", "variable_qtgui_check_box", "variable_qtgui_push_button", "variable_qtgui_entry", "variable_qtgui_label", "qtgui_edit_box_msg", "qtgui_auto_correlator_sink", "qtgui_grbackground", "variable_qtgui_azelplot", "qtgui_compass", "variable_qtgui_dial_control", "qtgui_dialgauge", "variable_qtgui_distanceradar", "qtgui_graphicitem", "qtgui_graphicoverlay", "qtgui_ledindicator", "qtgui_levelgauge", "variable_qtgui_msgcheckbox", "qtgui_msgdigitalnumbercontrol", "variable_qtgui_msg_push_button", "variable_qtgui_toggle_button_msg", "variable_qtgui_toggle_switch"]}]}]}}, "/lib/share/gnuradio/grc/blocks/qtgui_appbackground.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_grbackground", "label": "QT GUI App Background", "category": "[Core]/GUI Widgets/QT", "flags": ["python"], "parameters": [{"id": "file", "label": "File", "dtype": "file_open"}, {"id": "alignment", "label": "Image Alignment", "dtype": "enum", "default": "center", "options": ["center", "Top Left"], "option_labels": ["center", "top left"], "hide": "part"}, {"id": "relBackgroundColor", "label": "Background", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}], "templates": {"imports": "import PyQt5", "make": "None\\nif \\"${relBackgroundColor}\\" != \'default\':\\n bkcolor=\\"background-color: ${relBackgroundColor};\\"\\nelse:\\n bkcolor=\\"\\"\\n\\nstyleSht = self.styleSheet()\\n\\nif len(${file}) > 0: \\n bkgnd=\\"background-image: url(\\" + ${file} + \\"); background-repeat: repeat_n; background-position: \\" + \\"${alignment}\\" + \\";\\"\\nelse:\\n bkgnd = \'\'\\n\\t\\nstyleSht += \\"QWidget{\\" + bkgnd + bkcolor + \\"}\\"\\n\\nself.setStyleSheet(styleSht)"}, "documentation": "This block sets the application window background to the specified graphic and/or color. A standard color name (see background-color style sheet options) can also be provided.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_autocorrelator_sink.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_auto_correlator_sink", "label": "QT GUI Fast Auto-Correlator Sink", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "sampRate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate"}, {"id": "fac_size", "label": "FAC Size", "dtype": "int", "default": "512"}, {"id": "fac_decimation", "label": "FAC Decimation", "dtype": "int", "default": "10"}, {"id": "useDB", "label": "Output", "dtype": "enum", "options": ["True", "False"], "option_labels": ["dB", "Normalized"]}, {"id": "title", "label": "Title", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "grid", "label": "Show Grid", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoScale", "label": "Auto-Scale", "dtype": "enum", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "yMin", "label": "Y Min", "dtype": "float", "default": "0", "hide": "part"}, {"id": "yMax", "label": "Y Max", "dtype": "float", "default": "1", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "complex"}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.AutoCorrelatorSink(${sampRate}, \\n ${fac_size}, \\n ${fac_decimation}, \\n ${title}, \\n ${autoScale}, \\n ${grid}, \\n ${yMin}, \\n ${yMax}, \\n ${useDB}\\n)\\nself._${id}_win = self.${id}.getWidget()\\n${gui_hint() % win}"}, "documentation": "This block uses the Wiener Khinchin theorem that the FFT of a signal\'s power spectrum is its auto-correlation function. \\n \\nFAC Size controls the FFT size and therefore the length of time (samp_rate/fac_size) the auto-correlation runs over.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_azelplot.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_azelplot", "label": "QT GUI Az-El Plot", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "backgroundColor", "label": "Background", "dtype": "enum", "default": "white", "options": ["#efefef", "lightgray", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["background gray", "light gray", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "dotColor", "label": "Dot Color", "dtype": "enum", "default": "ro", "options": ["bo", "go", "ro", "co", "mo", "yo", "ko", "wo"], "option_labels": ["blue", "green", "red", "cyan", "magenta", "yellow", "black", "white"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "message", "id": "azel", "optional": false}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = None", "make": "<%\\n win = \'_distance_radar_%s\'%id\\n%>\\\\\\n${win} = qtgui.AzElPlot(${label}, \\"${backgroundColor}\\", \\"${dotColor}\\", self)\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a polar plot with azimuth represented as the angle clockwise around the circle, and elevation represented as the radius. 90 degrees elevation is center (directly overhead), while the horizon (0 degrees) is the outside circe. Note that if an elevation < 0 is provided, the marker will turn to an open circle on the perimeter at the specified azimuth angle.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_ber_sink_b.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_bercurve_sink", "label": "QT GUI Bercurve Sink", "flags": ["python"], "parameters": [{"id": "esno", "label": "esno", "dtype": "raw", "default": "numpy.arange(0.0, 4.0, .5)", "hide": "part"}, {"id": "berminerrors", "label": "Min. BER Errs.", "dtype": "int", "default": "100"}, {"id": "berlimit", "label": "BER Limit", "dtype": "real", "default": "-7.0"}, {"id": "num_curves", "label": "Num Curves", "dtype": "int", "default": "1", "hide": "part"}, {"id": "curvenames", "label": "Curve Names", "dtype": "raw", "default": "[]", "hide": "part"}, {"id": "ymin", "label": "Y min", "dtype": "real", "default": "-10", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "real", "default": "0", "hide": "part"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "width1", "label": "Line 1 Width", "category": "Config", "dtype": "int", "default": "1", "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["\\"blue\\"", "\\"red\\"", "\\"green\\"", "\\"black\\"", "\\"cyan\\"", "\\"magenta\\"", "\\"yellow\\"", "\\"dark red\\"", "\\"dark green\\"", "\\"Dark Blue\\""], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "style1", "label": "Line 1 Style", "category": "Config", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot", "None"], "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "marker1", "label": "Line 1 Marker", "category": "Config", "dtype": "enum", "options": ["0", "1", "2", "3", "4", "6", "7", "8", "9", "-1"], "option_labels": ["Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross", "None"], "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(num_curves) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "width2", "label": "Line 2 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "style2", "label": "Line 2 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "marker2", "label": "Line 2 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "width3", "label": "Line 3 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "default": "\\"green\\"", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "style3", "label": "Line 3 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "marker3", "label": "Line 3 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "width4", "label": "Line 4 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "default": "\\"black\\"", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "style4", "label": "Line 4 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "marker4", "label": "Line 4 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "width5", "label": "Line 5 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "default": "\\"cyan\\"", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "style5", "label": "Line 5 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "marker5", "label": "Line 5 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "width6", "label": "Line 6 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "default": "\\"magenta\\"", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "style6", "label": "Line 6 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "marker6", "label": "Line 6 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "width7", "label": "Line 7 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "default": "\\"yellow\\"", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "style7", "label": "Line 7 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "marker7", "label": "Line 7 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "width8", "label": "Line 8 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "default": "\\"dark red\\"", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "style8", "label": "Line 8 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "marker8", "label": "Line 8 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "width9", "label": "Line 9 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "default": "\\"dark green\\"", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "style9", "label": "Line 9 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "marker9", "label": "Line 9 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "width10", "label": "Line 10 Width", "base_key": "width1", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "default": "\\"dark blue\\"", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "style10", "label": "Line 10 Style", "base_key": "style1", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "marker10", "label": "Line 10 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(num_curves) >= 10 else \'all\') }"}, {"id": "bus_structure_sink", "default": "list(map(lambda b:list(map(lambda a:b * len(esno) * 2 + a, range(len(esno)*2))), range(num_curves)))", "dtype": "raw", "hide": "all"}], "inputs": [{"domain": "stream", "dtype": "byte", "multiplicity": "${ len(esno)*2*num_curves }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip\\nimport numpy", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.ber_sink_b(\\n ${esno}, #range of esnos\\n ${num_curves}, #number of curves\\n ${berminerrors}, #ensure at least\\n ${berlimit}, #cutoff\\n ${curvenames}, #indiv. curve names\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\nself.${id}.set_x_axis(${esno}[0], ${esno}[-1])\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\nstyles = [${style1}, ${style2}, ${style3}, ${style4}, ${style5},\\n ${style6}, ${style7}, ${style8}, ${style9}, ${style10}]\\nmarkers = [${marker1}, ${marker2}, ${marker3}, ${marker4}, ${marker5},\\n ${marker6}, ${marker7}, ${marker8}, ${marker9}, ${marker10}]\\n \\nfor i in range(${num_curves}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_check_box.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_check_box", "label": "QT GUI Check Box", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool", "raw"], "option_labels": ["Float", "Integer", "String", "Boolean", "Any"], "option_attributes": {"conv": ["float", "int", "str", "bool", "eval"], "cpp_opts": ["double", "int", "std::string", "double", "double"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "True"}, {"id": "true", "label": "True", "dtype": "${ type }", "default": "True"}, {"id": "false", "label": "False", "dtype": "${ type }", "default": "False"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "asserts": ["${value in (true, false)}"], "templates": {"imports": "from PyQt5 import Qt", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})", "self._${id}_callback(${id})"], "make": "<%\\n win = \'_%s_check_box\'%id\\n%>\\n${win} = Qt.QCheckBox(\\"${no_quotes(label,repr(id))}\\")\\nself._${id}_choices = {True: ${true}, False: ${false}}\\nself._${id}_choices_inv = dict((v,k) for k,v in self._${id}_choices.items())\\nself._${id}_callback = lambda i: Qt.QMetaObject.invokeMethod(${win}, \\"setChecked\\", Qt.Q_ARG(\\"bool\\", self._${id}_choices_inv[i]))\\nself._${id}_callback(self.${id})\\n${win}.stateChanged.connect(lambda i: self.set_${id}(self._${id}_choices[bool(i)]))\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <QCheckBox>"], "declarations": "QCheckBox *_${id};\\n${type.cpp_opts} _${id}_values[2] = {${false},${true}};", "var_make": "${id} = ${value};", "callbacks": ["set_${id}(${value})"], "make": "<%\\n win = \'_%s\'%id\\n%>\\n${win} = new QCheckBox(\\"${no_quotes(label,repr(id))}\\");\\nif ( ${value} == ${true} ) {\\n ${win}->setCheckState(Qt::Checked);\\n}\\n\\nQObject::connect(${win},&QCheckBox::stateChanged, this, [this] () {this->set_${id}(_${id}_values[${win}->checkState()/2]);});\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable check box. Leave the label blank to use the variable id as the label.\\n\\nA check box selects between two values of similar type. The values do not necessarily need to be of boolean type.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_chooser.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_chooser", "label": "QT GUI Chooser", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "raw"], "option_labels": ["Float", "Integer", "String", "Any"], "hide": "part"}, {"id": "num_opts", "label": "Num Options", "dtype": "enum", "default": "3", "options": ["0", "1", "2", "3", "4", "5"], "option_labels": ["List", "1", "2", "3", "4", "5"]}, {"id": "options", "label": "Options", "dtype": "raw", "default": "[0, 1, 2]", "hide": "${ (\'all\' if int(num_opts) else \'none\') }"}, {"id": "labels", "label": "Labels", "dtype": "raw", "default": "[]", "hide": "${ (\'all\' if int(num_opts) else \'none\') }"}, {"id": "value", "label": "Default option", "dtype": "${type}", "default": "0"}, {"id": "option0", "label": "Option 0", "dtype": "${ type }", "default": "0", "hide": "${ (\'none\' if int(num_opts) > 0 else \'all\') }"}, {"id": "label0", "label": "Label 0", "dtype": "string", "hide": "${ (int(num_opts) > 0) and (label0 and \'none\' or \'part\') or \'all\' }"}, {"id": "option1", "label": "Option 1", "dtype": "${ type }", "default": "1", "hide": "${ (\'none\' if int(num_opts) > 1 else \'all\') }"}, {"id": "label1", "label": "Label 1", "dtype": "string", "hide": "${ (int(num_opts) > 1) and (label1 and \'none\' or \'part\') or \'all\' }"}, {"id": "option2", "label": "Option 2", "dtype": "${ type }", "default": "2", "hide": "${ (\'none\' if int(num_opts) > 2 else \'all\') }"}, {"id": "label2", "label": "Label 2", "dtype": "string", "hide": "${ (int(num_opts) > 2) and (label2 and \'none\' or \'part\') or \'all\' }"}, {"id": "option3", "label": "Option 3", "dtype": "${ type }", "default": "3", "hide": "${ (\'none\' if int(num_opts) > 3 else \'all\') }"}, {"id": "label3", "label": "Label 3", "dtype": "string", "hide": "${ (int(num_opts) > 3) and (label3 and \'none\' or \'part\') or \'all\' }"}, {"id": "option4", "label": "Option 4", "dtype": "${ type }", "default": "4", "hide": "${ (\'none\' if int(num_opts) > 4 else \'all\') }"}, {"id": "label4", "label": "Label 4", "dtype": "string", "hide": "${ (int(num_opts) > 4) and (label4 and \'none\' or \'part\') or \'all\' }"}, {"id": "widget", "label": "Widget", "dtype": "enum", "default": "combo_box", "options": ["combo_box", "radio_buttons"], "option_labels": ["Combo Box", "Radio Buttons"], "hide": "part"}, {"id": "orient", "label": "Orientation", "dtype": "enum", "default": "Qt.QVBoxLayout", "options": ["Qt.QHBoxLayout", "Qt.QVBoxLayout"], "option_labels": ["Horizontal", "Vertical"], "hide": "${ (\'part\' if widget == \'radio_buttons\' else \'all\') }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "asserts": ["${ (int(num_opts) != 0) or (labels == [] or len(labels) == len(options)) }", "${ int(num_opts) != 0 or (value in options) }", "${ int(num_opts) == 0 or (value in [option0, option1, option2, option3, option4 ]) }"], "templates": {"imports": "from PyQt5 import Qt\\nfrom PyQt5.QtCore import QObject, pyqtSlot", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})", "self._${id}_callback(${id})"], "make": "<%\\n if int(num_opts) > 0:\\n all_options = [ option0(), option1(), option2(), option3(), option4() ][:int(num_opts)]\\n all_labels = [ label0(), label1(), label2(), label3(), label4() ][:int(num_opts)]\\n else:\\n all_options = options()\\n all_labels = labels()\\n\\n # Make sure these are lists\\n if not isinstance(all_options, list):\\n all_options = [all_options]\\n if not isinstance(all_labels, list):\\n all_labels = [all_labels]\\n\\n use_labels = True\\n if len(all_labels) == 0:\\n use_labels = False\\n else:\\n # replace blank labels with their respective options\\n for i, label_ in enumerate(all_labels):\\n if label_ == \\"\'\'\\" or label_ == \\"\\":\\n all_labels[i] = str(all_options[i])\\n%>\\\\\\n# Create the options list\\nself._${id}_options = ${all_options}\\n# Create the labels list\\n% if use_labels:\\nself._${id}_labels = ${all_labels}\\n% else:\\nself._${id}_labels = map(str, self._${id}_options)\\n% endif\\n# Create the combo box\\n% if widget == \'combo_box\':\\n<%\\n win = \'self._%s_tool_bar\'%id\\n%>\\\\\\n${win} = Qt.QToolBar(self)\\n${win}.addWidget(Qt.QLabel(\\"${no_quotes(label,repr(id))}\\" + \\": \\"))\\nself._${id}_combo_box = Qt.QComboBox()\\n${win}.addWidget(self._${id}_combo_box)\\nfor _label in self._${id}_labels: self._${id}_combo_box.addItem(_label)\\nself._${id}_callback = lambda i: Qt.QMetaObject.invokeMethod(self._${id}_combo_box, \\"setCurrentIndex\\", Qt.Q_ARG(\\"int\\", self._${id}_options.index(i)))\\nself._${id}_callback(self.${id})\\nself._${id}_combo_box.currentIndexChanged.connect(\\n lambda i: self.set_${id}(self._${id}_options[i]))\\n% endif\\n# Create the radio buttons\\n% if widget == \'radio_buttons\':\\n<%\\n win = \'self._%s_group_box\'%id\\n%>\\\\\\n${win} = Qt.QGroupBox(\\"${no_quotes(label,repr(id))}\\" + \\": \\")\\nself._${id}_box = ${orient}()\\nclass variable_chooser_button_group(Qt.QButtonGroup):\\n def __init__(self, parent=None):\\n Qt.QButtonGroup.__init__(self, parent)\\n @pyqtSlot(int)\\n def updateButtonChecked(self, button_id):\\n self.button(button_id).setChecked(True)\\nself._${id}_button_group = variable_chooser_button_group()\\n${win}.setLayout(self._${id}_box)\\nfor i, _label in enumerate(self._${id}_labels):\\n radio_button = Qt.QRadioButton(_label)\\n self._${id}_box.addWidget(radio_button)\\n self._${id}_button_group.addButton(radio_button, i)\\nself._${id}_callback = lambda i: Qt.QMetaObject.invokeMethod(self._${id}_button_group, \\"updateButtonChecked\\", Qt.Q_ARG(\\"int\\", self._${id}_options.index(i)))\\nself._${id}_callback(self.${id})\\nself._${id}_button_group.buttonClicked[int].connect(\\n lambda i: self.set_${id}(self._${id}_options[i]))\\n% endif\\n${gui_hint() % win}"}, "documentation": "This block creates a variable with enumerated options. The gui widget is implemented as a combo box or radio button group. Leave the label blank to use the variable id as the label.\\n\\nChoose the number of options available to your chooser. When the label is left blank, the option will be used as the label. Set the number of options to \\"list\\" to enter a single list of options and labels. When the labels is an empty list, the options will be used as the label.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_compass.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_compass", "label": "QT GUI Compass", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "name", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "position", "label": "Label Position", "dtype": "enum", "default": "1", "options": ["1", "2"], "option_labels": ["Above", "Below"], "hide": "part"}, {"id": "update_time", "label": "Update Period", "dtype": "float", "default": "0.10"}, {"id": "min_size", "label": "Min Size (px)", "dtype": "int", "default": "250"}, {"id": "fullNeedle", "label": "Needle", "dtype": "enum", "options": ["1", "0", "2"], "option_labels": ["Full", "Indicator", "Ambig -Pi to Pi"]}, {"id": "usemsg", "label": "Input Type", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["Stream", "Message"]}, {"id": "backgroundColor", "label": "Background Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "needleTipColor", "label": "Needle Tip Color", "dtype": "enum", "default": "red", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "needleBodyColor", "label": "Needle Body Color", "dtype": "enum", "default": "black", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "scaleColor", "label": "Scale Color", "dtype": "enum", "default": "black", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "setDebug", "label": "Print Updates", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["No", "Yes"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "float", "optional": true}, {"domain": "message", "id": "angle", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\n${win} = qtgui.GrCompass(${name}, ${min_size}, ${update_time}, ${setDebug}, ${fullNeedle},${usemsg},${position},\\"${backgroundColor}\\")\\n${win}.setColors(\\"${backgroundColor}\\",\\"${needleTipColor}\\", \\"${needleBodyColor}\\", \\"${scaleColor}\\")\\nself._${id} = ${win}\\n${gui_hint() % win}"}, "documentation": "This block takes angle in degrees as input and displays it on a compass.\\nArgs:\\nUpdate Period: Time-interval between GUI update.\\nMin Size (px): Min. size of the compass.\\nInput Type: Use the message instead of the stream input.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_const_sink_x.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_const_sink_x", "label": "QT GUI Constellation Sink", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "msg_complex"], "option_labels": ["Complex", "Complex Message"], "option_attributes": {"fcn": ["const_sink_c", "const_sink_c"], "t": ["complex", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "size", "label": "Number of Points", "dtype": "int", "default": "1024", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "ymin", "label": "Y min", "dtype": "real", "default": "-2", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "real", "default": "2", "hide": "part"}, {"id": "xmin", "label": "X min", "dtype": "real", "default": "-2", "hide": "part"}, {"id": "xmax", "label": "X max", "dtype": "real", "default": "2", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "tr_mode", "label": "Trigger Mode", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_FREE", "options": ["qtgui.TRIG_MODE_FREE", "qtgui.TRIG_MODE_AUTO", "qtgui.TRIG_MODE_NORM", "qtgui.TRIG_MODE_TAG"], "option_labels": ["Free", "Auto", "Normal", "Tag"], "hide": "part"}, {"id": "tr_slope", "label": "Trigger Slope", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_POS", "options": ["qtgui.TRIG_SLOPE_POS", "qtgui.TRIG_SLOPE_NEG"], "option_labels": ["Positive", "Negative"], "hide": "part"}, {"id": "tr_level", "label": "Trigger Level", "category": "Trigger", "dtype": "float", "default": "0.0", "hide": "part"}, {"id": "tr_chan", "label": "Trigger Channel", "category": "Trigger", "dtype": "int", "default": "0", "hide": "part"}, {"id": "tr_tag", "label": "Trigger Tag Key", "category": "Trigger", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "width1", "label": "Line 1 Width", "category": "Config", "dtype": "int", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["\\"blue\\"", "\\"red\\"", "\\"green\\"", "\\"black\\"", "\\"cyan\\"", "\\"magenta\\"", "\\"yellow\\"", "\\"dark red\\"", "\\"dark green\\"", "\\"Dark Blue\\""], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "style1", "label": "Line 1 Style", "category": "Config", "dtype": "enum", "options": ["0", "1", "2", "3", "4", "5"], "option_labels": ["None", "Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "marker1", "label": "Line 1 Marker", "category": "Config", "dtype": "enum", "options": ["0", "1", "2", "3", "4", "6", "7", "8", "9", "-1"], "option_labels": ["Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross", "None"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "width2", "label": "Line 2 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "style2", "label": "Line 2 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "marker2", "label": "Line 2 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "width3", "label": "Line 3 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "style3", "label": "Line 3 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "marker3", "label": "Line 3 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "width4", "label": "Line 4 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "style4", "label": "Line 4 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "marker4", "label": "Line 4 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "width5", "label": "Line 5 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "style5", "label": "Line 5 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "marker5", "label": "Line 5 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "width6", "label": "Line 6 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "style6", "label": "Line 6 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "marker6", "label": "Line 6 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "width7", "label": "Line 7 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "style7", "label": "Line 7 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "marker7", "label": "Line 7 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "width8", "label": "Line 8 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "style8", "label": "Line 8 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "marker8", "label": "Line 8 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "width9", "label": "Line 9 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "style9", "label": "Line 9 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "marker9", "label": "Line 9 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "width10", "label": "Line 10 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "style10", "label": "Line 10 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "marker10", "label": "Line 10 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "callbacks": ["set_update_time(${update_time})", "self.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_chan}, ${tr_tag})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${size}, #size\\n ${name}, #name\\n ${0 if type.startswith(\'msg\') else nconnections}, #number of inputs\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\nself.${id}.set_x_axis(${xmin}, ${xmax})\\nself.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_chan}, ${tr_tag})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nstyles = [${style1}, ${style2}, ${style3}, ${style4}, ${style5},\\n ${style6}, ${style7}, ${style8}, ${style9}, ${style10}]\\nmarkers = [${marker1}, ${marker2}, ${marker3}, ${marker4}, ${marker5},\\n ${marker6}, ${marker7}, ${marker8}, ${marker9}, ${marker10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${1 if type.startswith(\'msg\') else nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\nself._${id}_win = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_dialcontrol.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_dial_control", "label": "QT GUI Dial", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int"], "option_labels": ["Float", "Integer"], "option_attributes": {"conv": ["float", "int"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "minimum", "label": "Minimum", "dtype": "${ type }", "default": "0"}, {"id": "maximum", "label": "Maximum", "dtype": "${ type }", "default": "100"}, {"id": "scaleFactor", "label": "Scale Factor", "dtype": "${ type }", "default": "1", "hide": "${ (\'part\' if type==\'real\' else \'all\') }"}, {"id": "showvalue", "label": "Show Value", "dtype": "bool", "default": "False"}, {"id": "minsize", "label": "Minimum Size", "dtype": "int", "default": "100", "hide": "part"}, {"id": "outputmsgname", "label": "Message Property Name", "dtype": "string", "default": "value", "hide": "part"}, {"id": "relBackgroundColor", "label": "Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "outputs": [{"domain": "message", "id": "value", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = ${id} = ${value}", "make": "<%\\n win = \'_%s_dial_control\'%id\\n%>\\\\\\n\\nif \\"${type}\\" == \\"int\\":\\n\\tisFloat = False\\n\\tscaleFactor = 1\\nelse:\\n\\tisFloat = True\\n\\tscaleFactor = ${scaleFactor}\\n\\t\\n${win} = qtgui.GrDialControl(${label}, self, ${minimum},${maximum},${value},\\"${relBackgroundColor}\\",self.set_${id},isFloat, scaleFactor, ${minsize}, ${showvalue}, \\"${outputmsgname}\\")\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a dial control. The control does control a variable which can be used for other items. Leave the label blank to use the variable id as the label.\\n\\nThe block also creates an optional message with the control value that can be used in message-based applications.\\n\\nNote: Dials only produce integer values, so the scale factor can be used with the min/max to adjust the output value to the desired range. Think of the min/max as the increments, and the scale factor as the adjustment to get the values you want.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_dialgauge.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_dialgauge", "label": "QT GUI Dial Gauge", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "position", "label": "Label Position", "dtype": "enum", "default": "1", "options": ["1", "2"], "option_labels": ["Above", "Below"], "hide": "part"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int"], "option_labels": ["Float", "Integer"], "option_attributes": {"conv": ["float", "int"]}, "hide": "part"}, {"id": "value", "label": "Value", "dtype": "${ type }", "default": "0"}, {"id": "minimum", "label": "Minimum", "dtype": "${ type }", "default": "0"}, {"id": "maximum", "label": "Maximum", "dtype": "${ type }", "default": "100"}, {"id": "showValue", "label": "Show Value", "dtype": "bool", "default": "False"}, {"id": "msize", "label": "Control Size (px)", "dtype": "int", "default": "100", "hide": "part"}, {"id": "barColor", "label": "Filled Bar Color", "dtype": "enum", "default": "blue", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "backgroundColor", "label": "Empty Bar Color", "dtype": "enum", "default": "white", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "fontColor", "label": "Font Color", "dtype": "enum", "default": "black", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "inputs": [{"domain": "message", "id": "value", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'_%s_lg_win\'%id\\n%>\\\\\\n\\nif \\"${type}\\" == \\"int\\":\\n\\tisFloat = False\\nelse:\\n\\tisFloat = True\\n\\t\\n${win} = qtgui.GrDialGauge(${label},\\"${barColor}\\",\\"${backgroundColor}\\",\\"${fontColor}\\",${minimum},${maximum}, ${msize}, ${position},isFloat,${showValue},True,self)\\n${win}.setValue(${value})\\nself.${id} = ${win}\\n\\n${gui_hint() % win}", "callbacks": ["self.${id}.setValue(${value})"]}, "documentation": "This block creates a dial-style gauge. The value can be set either with a variable or an input message.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_distanceradar.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_distanceradar", "label": "QT GUI Distance Radar", "flags": ["show_id", "python"], "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "ticklabels", "label": "Ring Labels", "default": ["20", "40", "60", "80", "100"]}, {"id": "backgroundColor", "label": "Background", "dtype": "enum", "default": "black", "options": ["black", "white", "blue", "red", "green", "yellow"], "option_labels": ["black", "white", "blue", "red", "green", "yellow"], "hide": "part"}, {"id": "fontColor", "label": "Font Color", "dtype": "enum", "default": "white", "options": ["white", "black", "blue", "red", "green", "yellow"], "option_labels": ["white", "black", "blue", "red", "green", "yellow"], "hide": "part"}, {"id": "ringColor", "label": "Ring Color", "dtype": "enum", "default": "red", "options": ["red", "white", "black", "blue", "green", "yellow"], "option_labels": ["red", "white", "black", "blue", "green", "yellow"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "message", "id": "radius", "optional": false}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = None", "make": "<%\\n win = \'_distance_radar_%s\'%id\\n%>\\\\\\n${win} = qtgui.DistanceRadar(${label}, ${ticklabels}, \\"${backgroundColor}\\", \\"${fontColor}\\", \\"${ringColor}\\", self)\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a radar-like screen used to represent distance or size. This can be used in many ways such as circles closer to the center are closer, or just the opposite where closer to the center is smaller.\\n\\nNote: Incoming values should range between 0 (center bullseye) and 100 (all the way out)\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_edit_box_msg.block.yml": {"cached-at": 1646515622, "data": {"id": "qtgui_edit_box_msg", "label": "QT GUI Message Edit Box", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "string", "options": ["string", "int", "float", "double", "complex", "int_vec", "flt_vec", "dbl_vec", "cpx_vec"], "option_labels": ["String", "Int", "Float", "Double", "Complex", "Int (Vec)", "Float (Vec)", "Double (Vec)", "Complex (Vec)"], "option_attributes": {"t": ["qtgui.STRING", "qtgui.INT", "qtgui.FLOAT", "qtgui.DOUBLE", "qtgui.COMPLEX", "qtgui.INT_VEC", "qtgui.FLOAT_VEC", "qtgui.DOUBLE_VEC", "qtgui.COMPLEX_VEC"]}}, {"id": "value", "label": "Value", "dtype": "string"}, {"id": "label", "label": "Label", "dtype": "string"}, {"id": "is_pair", "label": "Pair Mode", "dtype": "enum", "default": "True", "options": ["False", "True"]}, {"id": "is_static", "label": "Static Mode", "dtype": "enum", "default": "True", "options": ["False", "True"]}, {"id": "key", "label": "Key", "dtype": "string", "hide": "${ (\'none\' if is_pair == \'True\' else \'all\') }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "asserts": ["${(len(key) > 0) or not ((is_pair == \'True\') and (is_static == \'True\'))}"], "inputs": [{"domain": "message", "id": "val", "optional": true}], "outputs": [{"domain": "message", "id": "msg", "optional": true}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.edit_box_msg(${type.t}, ${value}, ${label}, ${is_pair}, ${is_static}, ${key}, None)\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_entry.block.yml": {"cached-at": 1646515622, "data": {"id": "variable_qtgui_entry", "label": "QT GUI Entry", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool", "raw"], "option_labels": ["Float", "Integer", "String", "Boolean", "Any"], "option_attributes": {"conv": ["eng_notation.str_to_num", "int", "str", "bool", "eval"], "str": ["eng_notation.num_to_str", "str", "str", "str", "repr"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import eng_notation", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})", "Qt.QMetaObject.invokeMethod(self._${id}_line_edit, \\"setText\\", Qt.Q_ARG(\\"QString\\", ${type.str}(${id})))"], "make": "<%\\n win = \'self._%s_tool_bar\'%id\\n%>\\n${win} = Qt.QToolBar(self)\\n${win}.addWidget(Qt.QLabel(\\"${no_quotes(label,repr(id))}\\" + \\": \\"))\\nself._${id}_line_edit = Qt.QLineEdit(str(self.${id}))\\nself._${id}_tool_bar.addWidget(self._${id}_line_edit)\\nself._${id}_line_edit.returnPressed.connect(\\n lambda: self.set_${id}(${type.conv}(str(self._${id}_line_edit.text()))))\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <QToolBar>", "#include <QLineEdit>", "#include <QLabel>", "#include <QMetaObject>", "#include <QString>"], "declarations": "QToolBar *_${id}_tool_bar;\\nQLineEdit *_${id}_line_edit;\\nQLabel *_${id}_label;", "var_make": "${id} = ${value};", "callbacks": ["set_${id}(${value})", "QMetaObject::invokeMethod(this->_${id}_line_edit, \\"setText\\", Q_ARG(QString, QString::number(${id})))"], "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'this->_%s_tool_bar\'%id\\n%>\\nthis->_${id}_tool_bar = new QToolBar();\\nthis->_${id}_label = new QLabel(QString::fromStdString(std::string(\\"${no_quotes(label,repr(id))}\\")+ std::string(\\": \\")));\\nthis->_${id}_tool_bar->addWidget(_${id}_label);\\nthis->_${id}_line_edit = new QLineEdit(QString::number(this->${id}));\\nthis->_${id}_tool_bar->addWidget(this->_${id}_line_edit);\\nQObject::connect(this->_${id}_line_edit, &QLineEdit::returnPressed, this, [this] () {this->set_${id}(this->_${id}_line_edit->text().toInt());});\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable with a text entry box. Leave the label blank to use the variable id as the label.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_eye_sink_x.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_eye_sink_x", "label": "QT GUI Eye Sink", "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "float", "msg_complex", "msg_float"], "option_labels": ["Complex", "Float", "Complex Message", "Float Message"], "option_attributes": {"fcn": ["eye_sink_c", "eye_sink_f", "eye_sink_c", "eye_sink_f"], "t": ["complex", "float", "message", "message"]}, "hide": "part"}, {"id": "ylabel", "label": "Y Axis Label", "dtype": "string", "default": "Amplitude", "hide": "part"}, {"id": "yunit", "label": "Y Axis Unit", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "size", "label": "Number of Points", "dtype": "int", "default": "1024", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "samp_per_symbol", "label": "Samples per Symbol", "dtype": "int", "default": "sps"}, {"id": "srate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "ymin", "label": "Y min", "dtype": "float", "default": "-1", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "float", "default": "1", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "float", "default": "0.10", "hide": "part"}, {"id": "entags", "label": "Disp. Tags", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "tr_mode", "label": "Trigger Mode", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_FREE", "options": ["qtgui.TRIG_MODE_FREE", "qtgui.TRIG_MODE_AUTO", "qtgui.TRIG_MODE_NORM", "qtgui.TRIG_MODE_TAG"], "option_labels": ["Free", "Auto", "Normal", "Tag"], "hide": "part"}, {"id": "tr_slope", "label": "Trigger Slope", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_POS", "options": ["qtgui.TRIG_SLOPE_POS", "qtgui.TRIG_SLOPE_NEG"], "option_labels": ["Positive", "Negative"], "hide": "part"}, {"id": "tr_level", "label": "Trigger Level", "category": "Trigger", "dtype": "float", "default": "0.0", "hide": "part"}, {"id": "tr_delay", "label": "Trigger Delay", "category": "Trigger", "dtype": "float", "default": "0", "hide": "part"}, {"id": "tr_chan", "label": "Trigger Channel", "category": "Trigger", "dtype": "int", "default": "0", "hide": "part"}, {"id": "tr_tag", "label": "Trigger Tag Key", "category": "Trigger", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "ctrlpanel", "label": "Control Panel", "category": "Config", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "dtype": "string", "default": "Signal 1", "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width1", "label": "Line 1 Width", "default": 1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color1", "label": "Line 1 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style1", "label": "Line 1 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker1", "label": "Line 1 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha1", "label": "Line 1 Alpha", "dtype": "real", "default": 1.0, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label2", "label": "Line 2 Label", "dtype": "string", "default": "Signal 2", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width2", "label": "Line 2 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color2", "label": "Line 2 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style2", "label": "Line 2 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker2", "label": "Line 2 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha2", "label": "Line 2 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label3", "label": "Line 3 Label", "dtype": "string", "default": "Signal 3", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width3", "label": "Line 3 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color3", "label": "Line 3 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style3", "label": "Line 3 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker3", "label": "Line 3 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha3", "label": "Line 3 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label4", "label": "Line 4 Label", "dtype": "string", "default": "Signal 4", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width4", "label": "Line 4 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color4", "label": "Line 4 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style4", "label": "Line 4 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker4", "label": "Line 4 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha4", "label": "Line 4 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label5", "label": "Line 5 Label", "dtype": "string", "default": "Signal 5", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width5", "label": "Line 5 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color5", "label": "Line 5 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style5", "label": "Line 5 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker5", "label": "Line 5 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha5", "label": "Line 5 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label6", "label": "Line 6 Label", "dtype": "string", "default": "Signal 6", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width6", "label": "Line 6 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color6", "label": "Line 6 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style6", "label": "Line 6 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker6", "label": "Line 6 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha6", "label": "Line 6 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label7", "label": "Line 7 Label", "dtype": "string", "default": "Signal 7", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width7", "label": "Line 7 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color7", "label": "Line 7 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style7", "label": "Line 7 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker7", "label": "Line 7 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha7", "label": "Line 7 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label8", "label": "Line 8 Label", "dtype": "string", "default": "Signal 8", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width8", "label": "Line 8 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color8", "label": "Line 8 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style8", "label": "Line 8 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker8", "label": "Line 8 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha8", "label": "Line 8 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label9", "label": "Line 9 Label", "dtype": "string", "default": "Signal 9", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width9", "label": "Line 9 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color9", "label": "Line 9 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style9", "label": "Line 9 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker9", "label": "Line 9 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha9", "label": "Line 9 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "label10", "label": "Line 10 Label", "dtype": "string", "default": "Signal 10", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "width10", "label": "Line 10 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "color10", "label": "Line 10 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "style10", "label": "Line 10 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "marker10", "label": "Line 10 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}, {"id": "alpha10", "label": "Line 10 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\")) and (not type == \\"msg_float\\") else \'all\') }", "category": "Config"}], "asserts": ["${nconnections <= (5 if type == \'complex\' else 10)}"], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nfrom gnuradio.filter import firdes\\nimport sip", "callbacks": ["set_time_domain_axis(${min}, ${max})", "set_update_time(${update_time})", "set_y_axis(${ymin}, ${ymax})", "set_samp_rate(${srate})", "set_samp_per_symbol(${samp_per_symbol})", "self.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_delay}, ${tr_chan}, ${tr_tag})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${size}, #size\\n ${srate}, #samp_rate\\n ${0 if type.startswith(\'msg\') else nconnections}, #number of inputs\\n None\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_samp_per_symbol(${samp_per_symbol})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\n\\nself.${id}.set_y_label(${ylabel}, ${yunit})\\n\\nself.${id}.enable_tags(${entags})\\nself.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_delay}, ${tr_chan}, ${tr_tag})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\nself.${id}.enable_control_panel(${ctrlpanel})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [\'${color1}\', \'${color2}\', \'${color3}\', \'${color4}\', \'${color5}\',\\n \'${color6}\', \'${color7}\', \'${color8}\', \'${color9}\', \'${color10}\']\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\nstyles = [${style1}, ${style2}, ${style3}, ${style4}, ${style5},\\n ${style6}, ${style7}, ${style8}, ${style9}, ${style10}]\\nmarkers = [${marker1}, ${marker2}, ${marker3}, ${marker4}, ${marker5},\\n ${marker6}, ${marker7}, ${marker8}, ${marker9}, ${marker10}]\\n\\n\\n% if type.endswith(\'complex\'):\\nfor i in range(${2 if type.startswith(\'msg\') else 2*int(nconnections)}):\\n if len(labels[i]) == 0:\\n if (i % 2 == 0):\\n self.${id}.set_line_label(i, \\"Eye [Re{{Data {0}}}]\\".format(round(i/2)))\\n else:\\n self.${id}.set_line_label(i, \\"Eye [Im{{Data {0}}}]\\".format(round((i-1)/2)))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n% else:\\nfor i in range(${1 if type.startswith(\'msg\') else int(nconnections)}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Eye[Data {0}]\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n% endif\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_freq_sink_x.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_freq_sink_x", "label": "QT GUI Frequency Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "float", "msg_complex", "msg_float"], "option_labels": ["Complex", "Float", "Complex Message", "Float Message"], "option_attributes": {"fcn": ["freq_sink_c", "freq_sink_f", "freq_sink_c", "freq_sink_f"], "t": ["complex", "float", "message", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "fftsize", "label": "FFT Size", "dtype": "int", "default": "1024", "options": ["32", "64", "128", "256", "512", "1024", "2048", "4096", "8192", "16384", "32768"], "hide": "${ (\'all\' if (type == \'msg_complex\' or type == \'msg_float\') else \'none\') }"}, {"id": "freqhalf", "label": "Spectrum Width", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Full", "Half"], "hide": "${ (\'part\' if type == \\"float\\" or type == \\"msg_float\\" else \'all\') }"}, {"id": "wintype", "label": "Window Type", "dtype": "enum", "default": "window.WIN_BLACKMAN_hARRIS", "options": ["window.WIN_BLACKMAN_hARRIS", "window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER", "window.WIN_FLATTOP"], "option_labels": ["Blackman-harris", "Hamming", "Hann", "Blackman", "Rectangular", "Kaiser", "Flat-top"], "option_attributes": {"cpp_opts": ["fft::window::WIN_BLACKMAN_hARRIS", "fft::window::WIN_HAMMING", "fft::window::WIN_HANN", "fft::window::WIN_BLACKMAN", "fft::window::WIN_RECTANGULAR", "fft::window::WIN_KAISER", "fft::window::WIN_FLATTOP"]}, "hide": "part"}, {"id": "norm_window", "label": "Normalize Window Power", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": [true, false], "hide": "${ (\'none\' if norm_window == \'True\' else \'part\') }"}, {"id": "fc", "label": "Center Frequency (Hz)", "dtype": "real", "default": "0"}, {"id": "bw", "label": "Bandwidth (Hz)", "dtype": "real", "default": "samp_rate"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "average", "label": "Average", "dtype": "enum", "default": "False", "options": ["1.0", "0.2", "0.1", "0.05"], "option_labels": ["None", "Low", "Medium", "High"], "hide": "part"}, {"id": "ymin", "label": "Y min", "dtype": "real", "default": "-140", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "real", "default": "10", "hide": "part"}, {"id": "label", "label": "Y label", "dtype": "string", "default": "Relative Gain", "hide": "part"}, {"id": "units", "label": "Y units", "dtype": "string", "default": "dB", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if (type == \'msg_complex\' or type == \'msg_float\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}, {"id": "tr_mode", "label": "Trigger Mode", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_FREE", "options": ["qtgui.TRIG_MODE_FREE", "qtgui.TRIG_MODE_AUTO", "qtgui.TRIG_MODE_NORM", "qtgui.TRIG_MODE_TAG"], "option_labels": ["Free", "Auto", "Normal", "Tag"], "option_attributes": {"cpp_opts": ["qtgui::TRIG_MODE_FREE", "qtgui::TRIG_MODE_AUTO", "qtgui::TRIG_MODE_NORM", "qtgui::TRIG_MODE_TAG"]}, "hide": "part"}, {"id": "tr_level", "label": "Trigger Level", "category": "Trigger", "dtype": "float", "default": "0.0", "hide": "part"}, {"id": "tr_chan", "label": "Trigger Channel", "category": "Trigger", "dtype": "int", "default": "0", "hide": "part"}, {"id": "tr_tag", "label": "Trigger Tag Key", "category": "Trigger", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "ctrlpanel", "label": "Control Panel", "category": "Config", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "width1", "label": "Line 1 Width", "category": "Config", "dtype": "int", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["\\"blue\\"", "\\"red\\"", "\\"green\\"", "\\"black\\"", "\\"cyan\\"", "\\"magenta\\"", "\\"yellow\\"", "\\"dark red\\"", "\\"dark green\\"", "\\"dark blue\\""], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "width2", "label": "Line 2 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "width3", "label": "Line 3 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "default": "\\"green\\"", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "width4", "label": "Line 4 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "default": "\\"black\\"", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "width5", "label": "Line 5 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "default": "\\"cyan\\"", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "width6", "label": "Line 6 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "default": "\\"magenta\\"", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "width7", "label": "Line 7 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "default": "\\"yellow\\"", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "width8", "label": "Line 8 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "default": "\\"dark red\\"", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "width9", "label": "Line 9 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "default": "\\"dark green\\"", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "default": "\'\'", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "width10", "label": "Line 10 Width", "base_key": "width1", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "default": "\\"dark blue\\"", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}, {"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}, {"domain": "message", "id": "bw", "optional": true, "hide": "${ not showports }"}], "outputs": [{"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}], "asserts": ["${fftsize >= 32 and fftsize <= 32768}", "${not (fftsize & (fftsize -1))}"], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nfrom gnuradio.filter import firdes\\nimport sip", "callbacks": ["set_frequency_range(${fc}, ${bw})", "set_update_time(${update_time})", "set_y_axis(${ymin}, ${ymax})", "self.${id}.set_trigger_mode(${tr_mode}, ${tr_level}, ${tr_chan}, ${tr_tag})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${fftsize}, #size\\n ${wintype}, #wintype\\n ${fc}, #fc\\n ${bw}, #bw\\n ${name}, #name\\n ${ 0 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections },\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\nself.${id}.set_y_label(${label}, ${units})\\nself.${id}.set_trigger_mode(${tr_mode}, ${tr_level}, ${tr_chan}, ${tr_tag})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_grid(${grid})\\nself.${id}.set_fft_average(${average})\\nself.${id}.enable_axis_labels(${axislabels})\\nself.${id}.enable_control_panel(${ctrlpanel})\\nself.${id}.set_fft_window_normalized(${norm_window})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\n% if type == \\"float\\" or type == \\"msg_float\\":\\nself.${id}.set_plot_pos_half(not ${freqhalf})\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${1 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${ gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <gnuradio/qtgui/${type.fcn}.h>", "#include <gnuradio/filter/firdes.h>"], "declarations": "qtgui::${type.fcn}::sptr ${id};", "callbacks": ["set_frequency_range(${fc}, ${bw})", "set_update_time(${update_time})", "set_y_axis(${ymin}, ${ymax})", "this->${id}.set_trigger_mode(${tr_mode.cpp_opts}, ${tr_level}, ${tr_chan}, ${tr_tag})"], "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'_%s_win\'%id\\n%>\\\\\\n${id} = qtgui::${type.fcn}::make(\\n ${fftsize}, // size\\n ${wintype.cpp_opts}, // wintype\\n ${fc}, // fc\\n ${bw}, // bw\\n ${name}, // name\\n ${ 0 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections } // nconnections\\n);\\n\\nQWidget* _${id}_win;\\n\\n${id}->set_update_time(${update_time});\\n${id}->set_y_axis(${ymin}, ${ymax});\\n${id}->set_y_label(\\"${label.strip(\\"\'\\")}\\", \\"${units.strip(\\"\'\\")}\\");\\n${id}->set_trigger_mode(${tr_mode.replace(\'qtgui.\',\'gr::qtgui::\')}, ${tr_level}, ${tr_chan}, ${tr_tag});\\n${id}->enable_autoscale(${autoscale});\\n${id}->enable_grid(${grid});\\n${id}->set_fft_average(${average});\\n${id}->enable_axis_labels(${axislabels});\\n${id}->enable_control_panel(${ctrlpanel});\\n\\nif (!${legend}) {\\n ${id}->disable_legend(); // if (!legend)\\n}\\n\\n/* C++ doesn\'t have this\\nif (\\"${type}\\" == \\"float\\" or \\"${type}\\" == \\"msg_float\\") {\\n this->${id}->set_plot_pos_half(not ${freqhalf});\\n}*/\\n\\n{\\n std::string labels[10] = {\\"${label1.strip(\\"\'\\")}\\", \\"${label2.strip(\\"\'\\")}\\", \\"${label3.strip(\\"\'\\")}\\", \\"${label4.strip(\\"\'\\")}\\", \\"${label5.strip(\\"\'\\")}\\",\\n \\"${label6.strip(\\"\'\\")}\\", \\"${label7.strip(\\"\'\\")}\\", \\"${label8.strip(\\"\'\\")}\\", \\"${label9.strip(\\"\'\\")}\\", \\"${label10.strip(\\"\'\\")}\\"};\\n int widths[10] = {${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}};\\n std::string colors[10] = {${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}};\\n double alphas[10] = {${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}};\\n for (int i = 0; i < ${ 1 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections }; i++) {\\n if (sizeof(labels[i]) == 0) {\\n ${id}->set_line_label(i, \\"Data \\" + std::to_string(i));\\n } else {\\n ${id}->set_line_label(i, labels[i]);\\n }\\n ${id}->set_line_width(i, widths[i]);\\n ${id}->set_line_color(i, colors[i]);\\n ${id}->set_line_alpha(i, alphas[i]);\\n }\\n}\\n_${id}_win = this->${id}->qwidget();\\n\\n${gui_hint() % win}", "translations": {"True": "true", "False": "false"}}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_graphicitem.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_graphicitem", "label": "QT GUI Graphic Item", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "file", "label": "File", "dtype": "file_open"}, {"id": "scaleImage", "label": "Scale Image", "dtype": "bool", "default": "False", "hide": "part"}, {"id": "fixedsize", "label": "Fixed Size", "dtype": "bool", "default": "False", "hide": "${ \'all\' if scaleImage else \'part\' }"}, {"id": "width", "label": "Width", "dtype": "int", "default": "0", "hide": "${ \'part\' if fixedsize and not scaleImage else \'all\' }"}, {"id": "height", "label": "height", "dtype": "int", "default": "0", "hide": "${ \'part\' if fixedsize and not scaleImage else \'all\' }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "message", "id": "filename", "optional": true}, {"domain": "message", "id": "overlay", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\n${win} = qtgui.GrGraphicItem(${file},${scaleImage},${fixedsize},${width},${height})\\nself._${id}_win = ${win}\\n${gui_hint() % win}"}, "documentation": "This block displays the selected graphic item. You can pass a filename as a string in a message to change the image on the fly. overlays can also be added by passing in a message with a dictionary of a list of dictionaries in the car portion of the message. Each dictionary should have the following keys: \'filename\',\'x\',\'y\', and an optional \'scalefactor\'. Setting the x/y attributes to -1,-1 will remove an overlay. Otherwise items are indexed by filename and can be animated throughout the background image.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_graphicoverlay.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_graphicoverlay", "label": "QT GUI Graphic Overlay Sample Source", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "overlayList", "label": "Overlay Dict or List(dict)", "default": "[{\'filename\':\'exampleoverlay.png\',\'x\':10,\'y\':0,\'scalefactor\':1},{\'filename\':\'exampleoverlay.png\',\'x\':20,\'y\':20,\'scalefactor\':2},{\'filename\':\'exampleoverlay.png\',\'x\':30,\'y\':40,\'scalefactor\':2},{\'filename\':\'exampleoverlay.png\',\'x\':40,\'y\':60,\'scalefactor\':3},{\'filename\':\'exampleoverlay.png\',\'x\':50,\'y\':80,\'scalefactor\':4}]", "hide": "part"}, {"id": "listDelay", "label": "If List Send With Delay (sec)", "dtype": "real", "default": "1.0", "hide": "part"}, {"id": "repeat", "label": "If List Repeat", "dtype": "bool", "default": "True", "hide": "part"}], "outputs": [{"domain": "message", "id": "overlay"}], "templates": {"imports": "from gnuradio import qtgui", "make": "qtgui.GrGraphicOverlay(${overlayList},${listDelay},${repeat})"}, "documentation": "This block is an example of how to feed an overlay to a graphic item. The graphic item overlay is expecting a dictionary with the following keys: \'filename\',\'x\',\'y\', and optionally a \'scalefactor\'. A list of dictionaries can also be supplied to support multiple items.\\n\\nAny file can be added to the graphic item as an overlay and the particular item indexed by its filename can be updated by passing in new x/y coordinates. To remove an overlay, use coordinates -1,-1 for the x,y coordinates.\\n\\nThis sample block sends either a dictionary or list of dictionaries to the graphicitem block. To test updating a single overlay item, you can use a list with the same file but different coordinates and use the update delay > 0.0 to animate it.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_histogram_sink_x.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_histogram_sink_x", "label": "QT GUI Histogram Sink", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "float", "options": ["float", "msg_float"], "option_labels": ["Float", "Float Message"], "option_attributes": {"fcn": ["histogram_sink_f", "histogram_sink_f"], "t": ["float", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "size", "label": "Number of Points", "dtype": "int", "default": "1024", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "bins", "label": "Number of Bins", "dtype": "int", "default": "100"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "accum", "label": "Accumulate", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "xmin", "label": "Min x-axis", "dtype": "real", "default": "-1"}, {"id": "xmax", "label": "Max x-axis", "dtype": "real", "default": "1"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "float", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "width1", "label": "Line 1 Width", "category": "Config", "dtype": "int", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["\\"blue\\"", "\\"red\\"", "\\"green\\"", "\\"black\\"", "\\"cyan\\"", "\\"magenta\\"", "\\"yellow\\"", "\\"dark red\\"", "\\"dark green\\"", "\\"dark blue\\""], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "style1", "label": "Line 1 Style", "category": "Config", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot", "None"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "marker1", "label": "Line 1 Marker", "category": "Config", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "width2", "label": "Line 2 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "style2", "label": "Line 2 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "marker2", "label": "Line 2 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "width3", "label": "Line 3 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "default": "\\"green\\"", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "style3", "label": "Line 3 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "marker3", "label": "Line 3 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "width4", "label": "Line 4 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "default": "\\"black\\"", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "style4", "label": "Line 4 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "marker4", "label": "Line 4 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "width5", "label": "Line 5 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "default": "\\"cyan\\"", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "style5", "label": "Line 5 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "marker5", "label": "Line 5 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "width6", "label": "Line 6 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "default": "\\"magenta\\"", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "style6", "label": "Line 6 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "marker6", "label": "Line 6 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "width7", "label": "Line 7 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "default": "\\"yellow\\"", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "style7", "label": "Line 7 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "marker7", "label": "Line 7 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "width8", "label": "Line 8 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "default": "\\"dark red\\"", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "style8", "label": "Line 8 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "marker8", "label": "Line 8 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "width9", "label": "Line 9 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "default": "\\"dark green\\"", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "style9", "label": "Line 9 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "marker9", "label": "Line 9 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "width10", "label": "Line 10 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "default": "\\"dark blue\\"", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "style10", "label": "Line 10 Style", "base_key": "style1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "marker10", "label": "Line 10 Marker", "base_key": "marker1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "callbacks": ["set_update_time(${update_time})", "set_bins(${bins})", "set_x_axis(${xmin}, ${xmax})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.histogram_sink_f(\\n ${size},\\n ${bins},\\n ${xmin},\\n ${xmax},\\n ${name},\\n ${ 0 if type.startswith(\'msg\') else nconnections},\\n None # parent\\n)\\n\\nself.${id}.set_update_time(${update_time})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_accumulate(${accum})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nstyles = [${style1}, ${style2}, ${style3}, ${style4}, ${style5},\\n ${style6}, ${style7}, ${style8}, ${style9}, ${style10}]\\nmarkers= [${marker1}, ${marker2}, ${marker3}, ${marker4}, ${marker5},\\n ${marker6}, ${marker7}, ${marker8}, ${marker9}, ${marker10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${1 if type.startswith(\'msg\') else nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_label.block.yml": {"cached-at": 1646515623, "data": {"id": "variable_qtgui_label", "label": "QT GUI Label", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool", "raw"], "option_labels": ["Float", "Integer", "String", "Boolean", "Any"], "option_attributes": {"conv": ["eng_notation.str_to_num", "int", "str", "bool", "eval"], "str": ["eng_notation.num_to_str", "str", "str", "str", "repr"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "formatter", "label": "Formatter", "dtype": "raw", "default": "None", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import eng_notation", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})", "Qt.QMetaObject.invokeMethod(self._${id}_label, \\"setText\\", Qt.Q_ARG(\\"QString\\", str(self._${id}_formatter(${id}))))"], "make": "<%\\n win = \'self._%s_tool_bar\'%id\\n%>\\\\\\n${win} = Qt.QToolBar(self)\\n\\nif ${formatter}:\\n self._${id}_formatter = ${formatter}\\nelse:\\n self._${id}_formatter = lambda x: ${type.str}(x)\\n\\n${win}.addWidget(Qt.QLabel(\\"${no_quotes(label,repr(id))}\\"))\\nself._${id}_label = Qt.QLabel(str(self._${id}_formatter(self.${id})))\\nself._${id}_tool_bar.addWidget(self._${id}_label)\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <QLabel>", "#include <QMetaObject>", "#include <QString>"], "declarations": "QLabel *_${id}_label;", "var_make": "${id} = ${value};", "callbacks": ["set_${id}(${value})", "QMetaObject::invokeMethod(this->_${id}_label, \\"setText\\", Q_ARG(QString, QString(\\"${no_quotes(label)}\\\\%1\\").arg(${id})))"], "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'this->_%s_label\'%id\\n%>\\\\\\n// Todo: use formatter\\nthis->_${id}_label = new QLabel(QString(\\"${no_quotes(label,repr(id))}\\") +QString(\\": \\") + QString(\\"%1\\").arg(${value}));\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable with a label widget for text. Leave the label blank to use the variable id as the label.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_ledindicator.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_ledindicator", "label": "QT GUI LED Indicator", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "label", "label": "Label", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(label) > 0 else \'part\') }"}, {"id": "position", "label": "Label Position", "dtype": "enum", "default": "1", "options": ["1", "2"], "option_labels": ["Above", "Below"], "hide": "part"}, {"id": "state", "label": "State", "default": "False"}, {"id": "onColor", "label": "On Color", "dtype": "enum", "default": "green", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "offColor", "label": "Off Color", "dtype": "enum", "default": "red", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "maxSize", "label": "Size", "dtype": "int", "default": "40", "hide": "part"}, {"id": "cellalignment", "label": "Cell Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Left", "Right"], "hide": "part"}, {"id": "verticalalignment", "label": "Vertical Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Top", "Bottom"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "inputs": [{"domain": "message", "id": "state", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\n${win} = qtgui.GrLEDIndicator(${label}, \\"${onColor}\\", \\"${offColor}\\", ${state}, ${maxSize}, ${position}, ${cellalignment}, ${verticalalignment}, self)\\nself.${id} = ${win}\\n${gui_hint() % win}", "callbacks": ["setState(${state})"]}, "documentation": "This block makes a basic LED indicator", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_levelgauge.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_levelgauge", "label": "QT GUI Level Gauge", "category": "[Core]/GUI Widgets/QT", "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "position", "label": "Label Position", "dtype": "enum", "default": "1", "options": ["1", "2"], "option_labels": ["Above", "Below"], "hide": "part"}, {"id": "isVertical", "label": "Orientation", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Vertical", "Horizontal"], "hide": "part"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int"], "option_labels": ["Float", "Integer"], "option_attributes": {"conv": ["float", "int"]}, "hide": "part"}, {"id": "value", "label": "Value", "dtype": "${ type }", "default": "0"}, {"id": "minimum", "label": "Minimum", "dtype": "${ type }", "default": "0"}, {"id": "maximum", "label": "Maximum", "dtype": "${ type }", "default": "100"}, {"id": "scaleFactor", "label": "Scale Factor", "dtype": "${ type }", "default": "1", "hide": "${ (\'part\' if type==\'real\' else \'all\') }"}, {"id": "showValue", "label": "Show Value", "dtype": "bool", "default": "False"}, {"id": "msize", "label": "Control Size", "dtype": "int", "default": "100", "hide": "part"}, {"id": "barColor", "label": "Bar Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "backgroundColor", "label": "Background Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "fontColor", "label": "Font Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "inputs": [{"domain": "message", "id": "value", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "make": "<%\\n win = \'_%s_lg_win\'%id\\n%>\\\\\\n\\nif \\"${type}\\" == \\"int\\":\\n\\tisFloat = False\\n\\tscaleFactor = 1\\nelse:\\n\\tisFloat = True\\n\\tscaleFactor = ${scaleFactor}\\n\\t\\n${win} = qtgui.GrLevelGauge(${label},\\"${barColor}\\",\\"${backgroundColor}\\",\\"${fontColor}\\",${minimum},${maximum}, ${msize}, ${isVertical},${position},isFloat,scaleFactor,${showValue},self)\\n${win}.setValue(${value})\\nself.${id} = ${win}\\n\\n${gui_hint() % win}", "callbacks": ["self.${id}.setValue(${value})"]}, "documentation": "This block creates a level gauge. The value can be set either with a variable or an input message.\\n\\nNOTE: This control has some quirks due to the fact that QProgressBar only accepts integers. If you want to work with floats, you have to use the scaleFactor to map incoming values to the specified min/max range. For instance if the min/max are 0-100 but your incoming values are 0.0-1.0, you will need to set a scalefactor of 100.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_msgcheckbox.block.yml": {"cached-at": 1646515623, "data": {"id": "variable_qtgui_msgcheckbox", "label": "QT GUI Msg CheckBox", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool"], "option_labels": ["Float", "Integer", "String", "Boolean"], "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "initPressed", "label": "Initial State", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["Unchecked", "Checked"]}, {"id": "pressed", "label": "Checked", "dtype": "${ type }", "default": "1"}, {"id": "released", "label": "Unchecked", "dtype": "${ type }", "default": "0"}, {"id": "cellalignment", "label": "Cell Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Left", "Right"], "hide": "part"}, {"id": "verticalalignment", "label": "Vertical Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Top", "Bottom"], "hide": "part"}, {"id": "outputmsgname", "label": "Message Property Name", "dtype": "string", "default": "value", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "outputs": [{"domain": "message", "id": "state", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = ${id} = ${value}", "make": "<%\\n win = \'_%s_toggle_button\'%id\\n%>\\\\\\nself._${id}_choices = {\'Pressed\': ${pressed}, \'Released\': ${released}}\\n\\t\\n${win} = qtgui.MsgCheckBox(${ \'self.set_\' + context.get(\'id\')() }, \'${no_quotes(label,repr(id))}\', self._${id}_choices, ${initPressed}, ${cellalignment}, ${verticalalignment},\\"${outputmsgname}\\".replace(\\"\'\\",\\"\\"))\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable checkbox. Leave the label blank to use the variable id as the label.\\n\\nA checkbox selects between two values of similar type, but will stay depressed until clicked again. The variable will take on one value or the other depending on whether the button is pressed or released.\\n\\nThis control will also produce a state message matching the set values.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_msgdigitalnumbercontrol.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_msgdigitalnumbercontrol", "label": "QT GUI Digital Number Control", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "lbl", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if lbl else \'part\') }"}, {"id": "minFreqHz", "label": "Min Freq (Hz)", "dtype": "float", "default": "30e6"}, {"id": "maxFreqHz", "label": "Max Freq (Hz)", "dtype": "float", "default": "1700e6"}, {"id": "value", "label": "Value", "dtype": "real", "default": "100e6"}, {"id": "ThousandsSeparator", "label": "Thousands Separator", "dtype": "enum", "default": ",", "options": [",", ".", ""], "option_labels": ["Comma", "Period", "None"], "hide": "part"}, {"id": "outputmsgname", "label": "Message Property Name", "dtype": "string", "default": "freq", "hide": "part"}, {"id": "relBackgroundColor", "label": "Background", "dtype": "enum", "default": "black", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "relFontColor", "label": "Font Color", "dtype": "enum", "default": "white", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "readOnly", "label": "Read Only", "dtype": "bool", "default": "False", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "inputs": [{"domain": "message", "id": "valuein", "optional": true}], "outputs": [{"domain": "message", "id": "valueout", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = ${id} = ${value}", "make": "<%\\n win = \'self._%s_msgdigctl_win\'%id\\n%>\\\\\\n${win} = qtgui.MsgDigitalNumberControl(lbl = ${lbl}, min_freq_hz = ${minFreqHz}, max_freq_hz=${maxFreqHz}, parent=self, thousands_separator=\\"${ThousandsSeparator}\\",background_color=\\"${relBackgroundColor}\\",fontColor=\\"${relFontColor}\\", var_callback=self.set_${id},outputmsgname=\\"${outputmsgname}\\".replace(\\"\'\\",\\"\\"))\\n${win}.setValue(${value})\\n${win}.setReadOnly(${readOnly})\\nself.${id} = ${win}\\n\\n${gui_hint() % win}", "callbacks": ["self._${id}_msgdigctl_win.setValue(${value})"]}, "documentation": "While it can be used for anything, this block replicates the frequency control found in many SDR receiver software.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_msgpushbutton.block.yml": {"cached-at": 1646515623, "data": {"id": "variable_qtgui_msg_push_button", "label": "QT GUI Msg Push Button", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool"], "option_labels": ["Float", "Integer", "String", "Boolean"], "option_attributes": {"conv": ["float", "int", "str", "bool"]}, "hide": "part"}, {"id": "msgName", "label": "Message Property Name", "dtype": "string", "default": "pressed"}, {"id": "value", "label": "Message Value", "dtype": "${ type }", "default": "1"}, {"id": "relBackgroundColor", "label": "Button Background", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "relFontColor", "label": "Button Font Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "outputs": [{"domain": "message", "id": "pressed", "optional": false}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = None", "make": "<%\\n win = \'_%s_toggle_button\'%id\\n%>\\\\\\n${win} = qtgui.MsgPushButton(${(label if (len(label) - 2 > 0) else repr(id))}, ${msgName},${value},\\"${relBackgroundColor}\\",\\"${relFontColor}\\")\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable push button that creates a message when clicked. Leave the label blank to use the variable id as the label.\\n\\nYou can define both the output message pmt name as well as the value and value type.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_number_sink.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_number_sink", "label": "QT GUI Number Sink", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "type", "label": "Input Type", "category": "General", "dtype": "enum", "options": ["float", "short", "byte"], "option_attributes": {"size": ["gr.sizeof_float", "gr.sizeof_short", "gr.sizeof_char"]}, "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "avg", "label": "Average", "category": "General", "dtype": "float", "default": "0"}, {"id": "graph_type", "label": "Graph Type", "category": "General", "dtype": "enum", "options": ["qtgui.NUM_GRAPH_HORIZ", "qtgui.NUM_GRAPH_VERT", "qtgui.NUM_GRAPH_NONE"], "option_labels": ["Horizontal", "Vertical", "None"], "option_attributes": {"cpp_opts": ["qtgui::NUM_GRAPH_HORIZ", "qtgui::NUM_GRAPH_VERT", "qtgui::NUM_GRAPH_NONE"]}}, {"id": "nconnections", "label": "Number of Inputs", "category": "General", "dtype": "int", "default": "1", "hide": "part"}, {"id": "min", "label": "Min", "dtype": "float", "default": "-1", "hide": "part"}, {"id": "max", "label": "Max", "dtype": "float", "default": "1", "hide": "part"}, {"id": "update_time", "label": "Update Period", "category": "General", "dtype": "float", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "category": "General", "dtype": "gui_hint", "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "unit1", "label": "Line 1 Unit", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["(\\"black\\", \\"black\\")", "(\\"blue\\", \\"red\\")", "(\\"black\\", \\"white\\")", "(\\"white\\", \\"black\\")", "(\\"black\\", \\"red\\")"], "option_labels": ["Black", "Blue-Red", "White Hot", "Black Hot", "Black-Red"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "factor1", "label": "Line 1 Factor", "category": "Config", "dtype": "float", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "unit2", "label": "Line 2 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "factor2", "label": "Line 2 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "unit3", "label": "Line 3 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "factor3", "label": "Line 3 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "unit4", "label": "Line 4 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "factor4", "label": "Line 4 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "unit5", "label": "Line 5 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "factor5", "label": "Line 5 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "unit6", "label": "Line 6 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "factor6", "label": "Line 6 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "unit7", "label": "Line 7 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "factor7", "label": "Line 7 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "unit8", "label": "Line 8 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "factor8", "label": "Line 8 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "unit9", "label": "Line 9 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "factor9", "label": "Line 9 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "unit10", "label": "Line 10 Unit", "base_key": "unit1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "factor10", "label": "Line 10 Factor", "base_key": "factor1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ nconnections }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "callbacks": ["set_update_time(${update_time})", "set_average(${avg})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.number_sink(\\n ${type.size},\\n ${avg},\\n ${graph_type},\\n ${nconnections},\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_title(${name})\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nunits = [${unit1}, ${unit2}, ${unit3}, ${unit4}, ${unit5},\\n ${unit6}, ${unit7}, ${unit8}, ${unit9}, ${unit10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nfactor = [${factor1}, ${factor2}, ${factor3}, ${factor4}, ${factor5},\\n ${factor6}, ${factor7}, ${factor8}, ${factor9}, ${factor10}]\\n\\nfor i in range(${nconnections}):\\n self.${id}.set_min(i, ${min})\\n self.${id}.set_max(i, ${max})\\n self.${id}.set_color(i, colors[i][0], colors[i][1])\\n if len(labels[i]) == 0:\\n self.${id}.set_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_label(i, labels[i])\\n self.${id}.set_unit(i, units[i])\\n self.${id}.set_factor(i, factor[i])\\n\\nself.${id}.enable_autoscale(${autoscale})\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <gnuradio/qtgui/number_sink.h>", "#include <gnuradio/qtgui/qtgui_types.h>"], "declarations": "qtgui::number_sink::sptr ${id};", "callbacks": ["set_update_time(${update_time})", "set_average(${avg})"], "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'_%s_win\'%id\\n%>\\\\\\n${id} = qtgui::number_sink::make(\\n ${type.size},\\n ${avg},\\n ${graph_type.cpp_opts},\\n ${nconnections},\\n nullptr // parent\\n);\\n${id}->set_update_time(${update_time});\\n${id}->set_title(${name});\\n{\\n std::string labels[10] = {\\"${label1.strip(\\"\'\\")}\\", \\"${label2.strip(\\"\'\\")}\\", \\"${label3.strip(\\"\'\\")}\\", \\"${label4.strip(\\"\'\\")}\\", \\"${label5.strip(\\"\'\\")}\\",\\n \\"${label6.strip(\\"\'\\")}\\", \\"${label7.strip(\\"\'\\")}\\", \\"${label8.strip(\\"\'\\")}\\", \\"${label9.strip(\\"\'\\")}\\", \\"${label10.strip(\\"\'\\")}\\"};\\n std::string colors[10] = {${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}};\\n std::string units[10] ={\\"${unit1.strip(\\"\'\\")}\\", \\"${unit2.strip(\\"\'\\")}\\", \\"${unit3.strip(\\"\'\\")}\\", \\"${unit4.strip(\\"\'\\")}\\", \\"${unit5.strip(\\"\'\\")}\\",\\n \\"${unit6.strip(\\"\'\\")}\\", \\"${unit7.strip(\\"\'\\")}\\", \\"${unit8.strip(\\"\'\\")}\\", \\"${unit9.strip(\\"\'\\")}\\", \\"${unit10.strip(\\"\'\\")}\\"};\\n int factor[10] ={${factor1}, ${factor2}, ${factor3}, ${factor4}, ${factor5},\\n ${factor6}, ${factor7}, ${factor8}, ${factor9}, ${factor10}};\\n for (int i = 0; i < ${nconnections} ; i++ ) {\\n ${id}->set_min(i, ${min});\\n ${id}->set_max(i, ${max});\\n ${id}->set_color(i, colors[i][0], colors[i][1]);\\n if (labels[i].length() == 0)\\n ${id}->set_label(i, \\"Data \\"+std::to_string(i));\\n else\\n ${id}->set_label(i, labels[i]);\\n ${id}->set_unit(i, units[i]);\\n ${id}->set_factor(i, factor[i]);\\n }\\n }\\n ${id}->enable_autoscale(${autoscale});\\n QWidget* _${id}_win;\\n_${id}_win = this->${id}->qwidget();\\n\\n${gui_hint() % win}", "translations": {"True": "true", "False": "false"}}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_push_button.block.yml": {"cached-at": 1646515623, "data": {"id": "variable_qtgui_push_button", "label": "QT GUI Push Button", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool", "raw"], "option_labels": ["Float", "Integer", "String", "Boolean", "Any"], "option_attributes": {"conv": ["float", "int", "str", "bool", "eval"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "pressed", "label": "Pressed", "dtype": "${ type }", "default": "1"}, {"id": "released", "label": "Released", "dtype": "${ type }", "default": "0"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "templates": {"imports": "from PyQt5 import Qt", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})"], "make": "<%\\n win = \'_%s_push_button\'%id\\n%>\\\\\\n${win} = Qt.QPushButton(${label})\\n${win} = Qt.QPushButton(${(label if (len(label) - 2 > 0) else repr(id))})\\nself._${id}_choices = {\'Pressed\': ${pressed}, \'Released\': ${released}}\\n${win}.pressed.connect(lambda: self.set_${id}(self._${id}_choices[\'Pressed\']))\\n${win}.released.connect(lambda: self.set_${id}(self._${id}_choices[\'Released\']))\\n${gui_hint() % win}"}, "documentation": "This block creates a variable push button. Leave the label blank to use the variable id as the label.\\n\\nA push button selects between two values of similar type. The variable will take on one value or the other depending on whether the button is pressed or released.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_range.block.yml": {"cached-at": 1646515623, "data": {"id": "variable_qtgui_range", "label": "QT GUI Range", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "rangeType", "label": "Type", "dtype": "enum", "default": "\\"float\\"", "options": ["float", "int"], "option_attributes": {"type": ["float", "int"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ rangeType.type }", "default": "50"}, {"id": "start", "label": "Start", "dtype": "${ rangeType.type }", "default": "0"}, {"id": "stop", "label": "Stop", "dtype": "${ rangeType.type }", "default": "100"}, {"id": "step", "label": "Step", "dtype": "${ rangeType.type }", "default": "1"}, {"id": "widget", "label": "Widget", "dtype": "enum", "default": "counter_slider", "options": ["counter_slider", "counter", "slider", "dial"], "option_labels": ["Counter + Slider", "Counter", "Slider", "Knob"], "hide": "part"}, {"id": "orient", "label": "Orientation", "dtype": "enum", "default": "QtCore.Qt.Horizontal", "options": ["QtCore.Qt.Horizontal", "QtCore.Qt.Vertical"], "option_labels": ["Horizontal", "Vertical"], "option_attributes": {"minfcn": ["setMinimumWidth", "setMinimumHeight"], "scalepos": ["BottomScale", "LeftScale"]}, "hide": "${ (\'part\' if widget == \\"slider\\" else \'all\') }"}, {"id": "min_len", "label": "Minimum Length", "dtype": "int", "default": "200", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "asserts": ["${start <= value <= stop}", "${start <= stop}"], "templates": {"imports": "from gnuradio.qtgui import Range, RangeWidget\\nfrom PyQt5 import QtCore", "var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})"], "make": "<%\\n win = \'self._%s_win\'%id\\n range = \'self._%s_range\'%id\\n%>\\\\\\n${range} = Range(${start}, ${stop}, ${step}, ${value}, ${min_len})\\n${win} = RangeWidget(${range}, self.set_${id}, \\"${no_quotes(label,repr(id))}\\", \\"${widget}\\", ${rangeType}, ${orient})\\n${gui_hint() % win}"}, "documentation": "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 start and the stop.\\n\\n The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_sink_x.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_sink_x", "label": "QT GUI Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "float"], "option_attributes": {"fcn": ["sink_c", "sink_f"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\""}, {"id": "fftsize", "label": "FFT Size", "dtype": "int", "default": "1024", "options": ["32", "64", "128", "256", "512", "1024", "2048", "4096", "8192", "16384", "32768"]}, {"id": "wintype", "label": "Window Type", "dtype": "enum", "default": "window.WIN_BLACKMAN_hARRIS", "options": ["window.WIN_BLACKMAN_hARRIS", "window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Blackman-harris", "Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"], "option_attributes": {"cpp_opts": ["fft::window::WIN_BLACKMAN_hARRIS", "fft::window::WIN_HAMMING", "fft::window::WIN_HANN", "fft::window::WIN_BLACKMAN", "fft::window::WIN_RECTANGULAR", "fft::window::WIN_KAISER"]}, "hide": "part"}, {"id": "fc", "label": "Center Frequency (Hz)", "dtype": "real", "default": "0"}, {"id": "bw", "label": "Bandwidth (Hz)", "dtype": "real", "default": "samp_rate"}, {"id": "rate", "label": "Update Rate", "dtype": "real", "default": "10"}, {"id": "showrf", "label": "Show RF Freq", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "plotfreq", "label": "Plot Frequency", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "part"}, {"id": "plotwaterfall", "label": "Plot Waterfall", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "part"}, {"id": "plottime", "label": "Plot Time", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "part"}, {"id": "plotconst", "label": "Plot Const", "dtype": "bool", "default": "True", "options": ["True", "False"], "option_labels": ["On", "Off"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}], "inputs": [{"domain": "stream", "dtype": "${ type }", "multiplicity": "${ num_inputs }"}, {"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}], "outputs": [{"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}], "asserts": ["${fftsize >= 32 and fftsize <= 32768}", "${not (fftsize & (fftsize -1))}"], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nfrom gnuradio.filter import firdes\\nimport sip", "callbacks": ["set_frequency_range(${fc}, ${bw})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${fftsize}, #fftsize\\n ${wintype}, #wintype\\n ${fc}, #fc\\n ${bw}, #bw\\n ${name}, #name\\n ${plotfreq}, #plotfreq\\n ${plotwaterfall}, #plotwaterfall\\n ${plottime}, #plottime\\n ${plotconst}, #plotconst\\n None # parent\\n)\\nself.${id}.set_update_time(1.0/${rate})\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n\\nself.${id}.enable_rf_freq(${showrf})\\n\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <gnuradio/qtgui/${type.fcn}.h>", "#include <gnuradio/filter/firdes.h>"], "declarations": "gr::qtgui::${type.fcn}::sptr ${id};", "make": "<%\\n win = \'_%s_win\'%id\\n%>\\\\\\n${id} = gr::qtgui::${type.fcn}::make(\\n ${fftsize}, //fftsize\\n ${wintype.cpp_opts}, // wintype\\n ${fc}, //fc\\n ${bw}, //bw\\n \\"${name.strip(\\"\'\\").strip(\'\\"\')}\\", //name\\n ${plotfreq}, //plotfreq\\n ${plotwaterfall}, //plotwaterfall\\n ${plottime}, //plottime\\n ${plotconst} //plotconst\\n );\\n${id}->set_update_time(1.0/${rate}); \\n${id}->enable_rf_freq(${showrf});\\nQWidget* _${id}_win;\\n_${id}_win = this->${id}->qwidget();\\n${gui_hint() % win}", "link": ["gnuradio::gnuradio-qtgui"], "translations": {"True": "true", "False": "false"}}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_tab_widget.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_tab_widget", "label": "QT GUI Tab Widget", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "num_tabs", "label": "Num Tabs", "dtype": "enum", "default": "1", "options": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]}, {"id": "label0", "label": "Label 0", "dtype": "string", "default": "Tab 0", "hide": "${ (\'none\' if int(num_tabs) > 0 else \'all\') }"}, {"id": "label1", "label": "Label 1", "dtype": "string", "default": "Tab 1", "hide": "${ (\'none\' if int(num_tabs) > 1 else \'all\') }"}, {"id": "label2", "label": "Label 2", "dtype": "string", "default": "Tab 2", "hide": "${ (\'none\' if int(num_tabs) > 2 else \'all\') }"}, {"id": "label3", "label": "Label 3", "dtype": "string", "default": "Tab 3", "hide": "${ (\'none\' if int(num_tabs) > 3 else \'all\') }"}, {"id": "label4", "label": "Label 4", "dtype": "string", "default": "Tab 4", "hide": "${ (\'none\' if int(num_tabs) > 4 else \'all\') }"}, {"id": "label5", "label": "Label 5", "dtype": "string", "default": "Tab 5", "hide": "${ (\'none\' if int(num_tabs) > 5 else \'all\') }"}, {"id": "label6", "label": "Label 6", "dtype": "string", "default": "Tab 6", "hide": "${ (\'none\' if int(num_tabs) > 6 else \'all\') }"}, {"id": "label7", "label": "Label 7", "dtype": "string", "default": "Tab 7", "hide": "${ (\'none\' if int(num_tabs) > 7 else \'all\') }"}, {"id": "label8", "label": "Label 8", "dtype": "string", "default": "Tab 8", "hide": "${ (\'none\' if int(num_tabs) > 8 else \'all\') }"}, {"id": "label9", "label": "Label 9", "dtype": "string", "default": "Tab 9", "hide": "${ (\'none\' if int(num_tabs) > 9 else \'all\') }"}, {"id": "label10", "label": "Label 10", "dtype": "string", "default": "Tab 10", "hide": "${ (\'none\' if int(num_tabs) > 10 else \'all\') }"}, {"id": "label11", "label": "Label 11", "dtype": "string", "default": "Tab 11", "hide": "${ (\'none\' if int(num_tabs) > 11 else \'all\') }"}, {"id": "label12", "label": "Label 12", "dtype": "string", "default": "Tab 12", "hide": "${ (\'none\' if int(num_tabs) > 12 else \'all\') }"}, {"id": "label13", "label": "Label 13", "dtype": "string", "default": "Tab 13", "hide": "${ (\'none\' if int(num_tabs) > 13 else \'all\') }"}, {"id": "label14", "label": "Label 14", "dtype": "string", "default": "Tab 14", "hide": "${ (\'none\' if int(num_tabs) > 14 else \'all\') }"}, {"id": "label15", "label": "Label 15", "dtype": "string", "default": "Tab 15", "hide": "${ (\'none\' if int(num_tabs) > 15 else \'all\') }"}, {"id": "label16", "label": "Label 16", "dtype": "string", "default": "Tab 16", "hide": "${ (\'none\' if int(num_tabs) > 16 else \'all\') }"}, {"id": "label17", "label": "Label 17", "dtype": "string", "default": "Tab 17", "hide": "${ (\'none\' if int(num_tabs) > 17 else \'all\') }"}, {"id": "label18", "label": "Label 18", "dtype": "string", "default": "Tab 18", "hide": "${ (\'none\' if int(num_tabs) > 18 else \'all\') }"}, {"id": "label19", "label": "Label 19", "dtype": "string", "default": "Tab 19", "hide": "${ (\'none\' if int(num_tabs) > 19 else \'all\') }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "templates": {"imports": "from PyQt5 import Qt", "make": "<%\\n win = \'self.%s\'%id\\n all_labels = [label0, label1, label2, label3, label4,\\n label5, label6, label7, label8, label9,\\n label10, label11, label12, label13, label14,\\n label15, label16, label17, label18, label19][:int(num_tabs)]\\n%>\\\\\\nQt.QTabWidget()\\n% for i, label in enumerate(all_labels):\\nself.${id}_widget_${i} = Qt.QWidget()\\nself.${id}_layout_${i} = Qt.QBoxLayout(Qt.QBoxLayout.TopToBottom, self.${id}_widget_${i})\\nself.${id}_grid_layout_${i} = Qt.QGridLayout()\\nself.${id}_layout_${i}.addLayout(self.${id}_grid_layout_${i})\\n${win}.addTab(self.${id}_widget_${i}, ${label})\\n% endfor\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <QTabWidget>"], "declarations": "QTabWidget *${id};", "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'%s\'%id\\n all_labels = [label0, label1, label2, label3, label4,\\n label5, label6, label7, label8, label9,\\n label10, label11, label12, label13, label14,\\n label15, label16, label17, label18,label19][:int(num_tabs)]\\n%>\\\\\\n${id} = new QTabWidget();\\n% for i,label in enumerate(all_labels):\\nQWidget* ${id}_widget_${i} = new QWidget();\\nQBoxLayout* ${id}_layout_${i} =new QBoxLayout(QBoxLayout::TopToBottom,${id}_widget_${i});\\nQGridLayout* ${id}_grid_layout_${i} = new QGridLayout();\\n${id}_layout_${i}->addLayout(${id}_grid_layout_${i});\\n${win}->addTab(${id}_widget_${i},\\"${no_quotes(label)}\\");\\n% endfor\\n${gui_hint() % win}"}, "documentation": "This block creates a tabbed widget to organize other widgets. The ID of this block can be used as the tab_id in the GUI hints of other widgets.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_time_raster_x.block.yml": {"cached-at": 1646515623, "data": {"id": "qtgui_time_raster_sink_x", "label": "QT GUI Time Raster Sink", "flags": ["python"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["byte", "float", "msg_byte", "msg_float"], "option_labels": ["Byte", "Float", "Byte Message", "Float Message"], "option_attributes": {"fcn": ["time_raster_sink_b", "time_raster_sink_f", "time_raster_sink_b", "time_raster_sink_f"], "t": ["byte", "float", "message", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "samp_rate", "label": "Sample Rate", "dtype": "real", "default": "samp_rate"}, {"id": "nrows", "label": "Num. Rows", "dtype": "int", "default": 256, "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "ncols", "label": "Num. Cols", "dtype": "int", "default": 256}, {"id": "x_label", "label": "X-Axis Label", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "x_start_value", "label": "X-Axis Start Value", "dtype": "float", "default": 0.0, "hide": "part"}, {"id": "x_end_value", "label": "X-Axis End Value", "dtype": "float", "default": 0.0, "hide": "part"}, {"id": "y_label", "label": "Y-Axis Label", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "y_start_value", "label": "Y-Axis Start Value", "dtype": "float", "default": 0.0, "hide": "part"}, {"id": "y_end_value", "label": "Y-Axis End Value", "dtype": "float", "default": 0.0, "hide": "part"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "zmin", "label": "Int. min", "dtype": "real", "default": "-1", "hide": "part"}, {"id": "zmax", "label": "Int. max", "dtype": "real", "default": "1", "hide": "part"}, {"id": "mult", "label": "Multiplier", "dtype": "real_vector", "default": "[]", "hide": "part"}, {"id": "offset", "label": "Offset", "dtype": "real_vector", "default": "[]", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["0", "1", "2", "3", "5", "6"], "option_labels": ["Multi Color", "White Hot", "Black Hot", "Incandescent", "Sunset", "Cool"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "callbacks": ["set_num_rows(${nrows})", "set_num_cols(${ncols})", "set_multiplier(${mult})", "set_offset(${offset})", "set_update_time(${update_time})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${samp_rate},\\n ${nrows},\\n ${ncols},\\n ${mult},\\n ${offset},\\n ${name},\\n ${0 if type.startswith(\'msg\') else nconnections},\\n None\\n)\\n\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_intensity_range(${zmin}, ${zmax})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\nself.${id}.set_x_label(${x_label})\\nself.${id}.set_x_range(${x_start_value}, ${x_end_value})\\nself.${id}.set_y_label(${y_label})\\nself.${id}.set_y_range(${y_start_value}, ${y_end_value})\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${1 if type.startswith(\'msg\') else nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_color_map(i, colors[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.\\n\\nNote that for user-defined axis values, numbers will be scaled to their power of 10 3-unit grouping (e.g. Giga, Mega, Kilo, milli, nano (u), pico) and appended with the first letter descriptor for a more concise display. ", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_time_sink_x.block.yml": {"cached-at": 1646515624, "data": {"id": "qtgui_time_sink_x", "label": "QT GUI Time Sink", "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "float", "msg_complex", "msg_float"], "option_labels": ["Complex", "Float", "Complex Message", "Float Message"], "option_attributes": {"fcn": ["time_sink_c", "time_sink_f", "time_sink_c", "time_sink_f"], "t": ["complex", "float", "message", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "ylabel", "label": "Y Axis Label", "dtype": "string", "default": "Amplitude", "hide": "part"}, {"id": "yunit", "label": "Y Axis Unit", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "size", "label": "Number of Points", "dtype": "int", "default": "1024", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "srate", "label": "Sample Rate", "dtype": "float", "default": "samp_rate"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"]}, {"id": "ymin", "label": "Y min", "dtype": "float", "default": "-1", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "float", "default": "1", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "float", "default": "0.10", "hide": "part"}, {"id": "entags", "label": "Disp. Tags", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "tr_mode", "label": "Trigger Mode", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_FREE", "options": ["qtgui.TRIG_MODE_FREE", "qtgui.TRIG_MODE_AUTO", "qtgui.TRIG_MODE_NORM", "qtgui.TRIG_MODE_TAG"], "option_labels": ["Free", "Auto", "Normal", "Tag"], "hide": "part"}, {"id": "tr_slope", "label": "Trigger Slope", "category": "Trigger", "dtype": "enum", "default": "qtgui.TRIG_MODE_POS", "options": ["qtgui.TRIG_SLOPE_POS", "qtgui.TRIG_SLOPE_NEG"], "option_labels": ["Positive", "Negative"], "hide": "part"}, {"id": "tr_level", "label": "Trigger Level", "category": "Trigger", "dtype": "float", "default": "0.0", "hide": "part"}, {"id": "tr_delay", "label": "Trigger Delay", "category": "Trigger", "dtype": "float", "default": "0", "hide": "part"}, {"id": "tr_chan", "label": "Trigger Channel", "category": "Trigger", "dtype": "int", "default": "0", "hide": "part"}, {"id": "tr_tag", "label": "Trigger Tag Key", "category": "Trigger", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "ctrlpanel", "label": "Control Panel", "category": "Config", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "stemplot", "label": "Stem Plot", "category": "Config", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "dtype": "string", "default": "Signal 1", "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width1", "label": "Line 1 Width", "default": 1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color1", "label": "Line 1 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "blue", "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style1", "label": "Line 1 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker1", "label": "Line 1 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha1", "label": "Line 1 Alpha", "dtype": "real", "default": 1.0, "hide": "${ (\'part\' if ( int(nconnections) >= 1 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 1 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label2", "label": "Line 2 Label", "dtype": "string", "default": "Signal 2", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width2", "label": "Line 2 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color2", "label": "Line 2 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "red", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style2", "label": "Line 2 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker2", "label": "Line 2 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha2", "label": "Line 2 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 2 or (type == \\"complex\\" and int(nconnections) >= 1) or (type == \\"msg_complex\\" and 1 <= 1) or (type == \\"msg_float\\" and 2 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label3", "label": "Line 3 Label", "dtype": "string", "default": "Signal 3", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width3", "label": "Line 3 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color3", "label": "Line 3 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "green", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style3", "label": "Line 3 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker3", "label": "Line 3 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha3", "label": "Line 3 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 3 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 3 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label4", "label": "Line 4 Label", "dtype": "string", "default": "Signal 4", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width4", "label": "Line 4 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color4", "label": "Line 4 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "black", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style4", "label": "Line 4 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker4", "label": "Line 4 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha4", "label": "Line 4 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 4 or (type == \\"complex\\" and int(nconnections) >= 2) or (type == \\"msg_complex\\" and 2 <= 1) or (type == \\"msg_float\\" and 4 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label5", "label": "Line 5 Label", "dtype": "string", "default": "Signal 5", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width5", "label": "Line 5 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color5", "label": "Line 5 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "cyan", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style5", "label": "Line 5 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker5", "label": "Line 5 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha5", "label": "Line 5 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 5 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 5 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label6", "label": "Line 6 Label", "dtype": "string", "default": "Signal 6", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width6", "label": "Line 6 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color6", "label": "Line 6 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "magenta", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style6", "label": "Line 6 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker6", "label": "Line 6 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha6", "label": "Line 6 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 6 or (type == \\"complex\\" and int(nconnections) >= 3) or (type == \\"msg_complex\\" and 3 <= 1) or (type == \\"msg_float\\" and 6 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label7", "label": "Line 7 Label", "dtype": "string", "default": "Signal 7", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width7", "label": "Line 7 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color7", "label": "Line 7 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "yellow", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style7", "label": "Line 7 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker7", "label": "Line 7 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha7", "label": "Line 7 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 7 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 7 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label8", "label": "Line 8 Label", "dtype": "string", "default": "Signal 8", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width8", "label": "Line 8 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color8", "label": "Line 8 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "dark red", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style8", "label": "Line 8 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker8", "label": "Line 8 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha8", "label": "Line 8 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 8 or (type == \\"complex\\" and int(nconnections) >= 4) or (type == \\"msg_complex\\" and 4 <= 1) or (type == \\"msg_float\\" and 8 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label9", "label": "Line 9 Label", "dtype": "string", "default": "Signal 9", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width9", "label": "Line 9 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color9", "label": "Line 9 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "dark green", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style9", "label": "Line 9 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker9", "label": "Line 9 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha9", "label": "Line 9 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 9 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 9 <= 1)) else \'all\') }", "category": "Config"}, {"id": "label10", "label": "Line 10 Label", "dtype": "string", "default": "Signal 10", "base_key": "label1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}, {"id": "width10", "label": "Line 10 Width", "default": 1, "base_key": "width1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}, {"id": "color10", "label": "Line 10 Color", "dtype": "enum", "options": ["blue", "red", "green", "black", "cyan", "magenta", "yellow", "dark red", "dark green", "dark blue"], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "default": "dark blue", "base_key": "color1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}, {"id": "style10", "label": "Line 10 Style", "dtype": "enum", "options": ["1", "2", "3", "4", "5", "0"], "option_labels": ["Solid", "Dash", "Dots", "Dash-Dot", "Dash-Dot-Dot"], "default": 1, "base_key": "style1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}, {"id": "marker10", "label": "Line 10 Marker", "dtype": "enum", "options": ["-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "option_labels": ["None", "Circle", "Rectangle", "Diamond", "Triangle", "Down Triangle", "Left Triangle", "Right Triangle", "Cross", "X-Cross"], "default": -1, "base_key": "marker1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}, {"id": "alpha10", "label": "Line 10 Alpha", "dtype": "real", "default": 1.0, "base_key": "alpha1", "hide": "${ (\'part\' if ( int(nconnections) >= 10 or (type == \\"complex\\" and int(nconnections) >= 5) or (type == \\"msg_complex\\" and 5 <= 1) or (type == \\"msg_float\\" and 10 <= 1)) else \'all\') }", "category": "Config"}], "asserts": ["${nconnections <= (5 if type == \'complex\' else 10)}"], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nfrom gnuradio.filter import firdes\\nimport sip", "callbacks": ["set_time_domain_axis(${min}, ${max})", "set_update_time(${update_time})", "set_y_axis(${ymin}, ${ymax})", "set_samp_rate(${srate})", "self.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_delay}, ${tr_chan}, ${tr_tag})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${size}, #size\\n ${srate}, #samp_rate\\n ${name}, #name\\n ${0 if type.startswith(\'msg\') else nconnections}, #number of inputs\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\n\\nself.${id}.set_y_label(${ylabel}, ${yunit})\\n\\nself.${id}.enable_tags(${entags})\\nself.${id}.set_trigger_mode(${tr_mode}, ${tr_slope}, ${tr_level}, ${tr_delay}, ${tr_chan}, ${tr_tag})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\nself.${id}.enable_control_panel(${ctrlpanel})\\nself.${id}.enable_stem_plot(${stemplot})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [\'${color1}\', \'${color2}\', \'${color3}\', \'${color4}\', \'${color5}\',\\n \'${color6}\', \'${color7}\', \'${color8}\', \'${color9}\', \'${color10}\']\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\nstyles = [${style1}, ${style2}, ${style3}, ${style4}, ${style5},\\n ${style6}, ${style7}, ${style8}, ${style9}, ${style10}]\\nmarkers = [${marker1}, ${marker2}, ${marker3}, ${marker4}, ${marker5},\\n ${marker6}, ${marker7}, ${marker8}, ${marker9}, ${marker10}]\\n\\n\\n% if type.endswith(\'complex\'):\\nfor i in range(${2 if type.startswith(\'msg\') else 2*int(nconnections)}):\\n if len(labels[i]) == 0:\\n if (i % 2 == 0):\\n self.${id}.set_line_label(i, \\"Re{{Data {0}}}\\".format(i/2))\\n else:\\n self.${id}.set_line_label(i, \\"Im{{Data {0}}}\\".format(i/2))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n% else:\\nfor i in range(${1 if type.startswith(\'msg\') else int(nconnections)}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_style(i, styles[i])\\n self.${id}.set_line_marker(i, markers[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n% endif\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_togglebutton.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_qtgui_toggle_button_msg", "label": "QT GUI Toggle Button", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool"], "option_labels": ["Float", "Integer", "String", "Boolean"], "option_attributes": {"conv": ["float", "int", "str", "bool"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "initPressed", "label": "Initial State", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["Released", "Pressed"]}, {"id": "pressed", "label": "Pressed", "dtype": "${ type }", "default": "1"}, {"id": "released", "label": "Released", "dtype": "${ type }", "default": "0"}, {"id": "outputmsgname", "label": "Message Property Name", "dtype": "string", "default": "value", "hide": "part"}, {"id": "relBackgroundColor", "label": "Released Background", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "relFontColor", "label": "Released Font Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "pressBackgroundColor", "label": "Pressed Background", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "pressFontColor", "label": "Pressed Font Color", "dtype": "enum", "default": "default", "options": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["default", "silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "outputs": [{"domain": "message", "id": "state", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = ${id} = ${value}", "make": "<%\\n win = \'_%s_toggle_button\'%id\\n%>\\\\\\nif ${type} == bool:\\n\\tself._${id}_choices = {\'Pressed\': bool(${pressed}), \'Released\': bool(${released})}\\nelif ${type} == str:\\n\\tself._${id}_choices = {\'Pressed\': \\"${pressed}\\".replace(\\"\'\\",\\"\\"), \'Released\': \\"${released}\\".replace(\\"\'\\",\\"\\")}\\nelse:\\n\\tself._${id}_choices = {\'Pressed\': ${pressed}, \'Released\': ${released}}\\n\\t\\n${win} = qtgui.ToggleButton(${ \'self.set_\' + context.get(\'id\')() }, ${(label if (len(label) - 2 > 0) else repr(id))}, self._${id}_choices, ${initPressed},\\"${outputmsgname}\\".replace(\\"\'\\",\\"\\"))\\n${win}.setColors(\\"${relBackgroundColor}\\",\\"${relFontColor}\\",\\"${pressBackgroundColor}\\",\\"${pressFontColor}\\")\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a variable toggle button. Leave the label blank to use the variable id as the label.\\n\\nA toggle button selects between two values of similar type, but will stay depressed until clicked again. The variable will take on one value or the other depending on whether the button is pressed or released.\\n\\nThis button will also produce a state message matching the set values.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_toggleswitch.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_qtgui_toggle_switch", "label": "QT GUI Toggle Switch", "category": "[Core]/GUI Widgets/QT", "flags": ["show_id", "python"], "parameters": [{"id": "label", "label": "Label", "dtype": "string", "hide": "${ (\'none\' if label else \'part\') }"}, {"id": "position", "label": "Label Position", "dtype": "enum", "default": "4", "options": ["3", "4"], "option_labels": ["Left", "Right"], "hide": "part"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "int", "options": ["real", "int", "string", "bool"], "option_labels": ["Float", "Integer", "String", "Boolean"], "option_attributes": {"conv": ["float", "int", "str", "bool"]}, "hide": "part"}, {"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "initPressed", "label": "Initial State", "dtype": "enum", "default": "False", "options": ["False", "True"], "option_labels": ["Released", "Pressed"]}, {"id": "pressed", "label": "On Value", "dtype": "${ type }", "default": "1"}, {"id": "released", "label": "Off Value", "dtype": "${ type }", "default": "0"}, {"id": "outputmsgname", "label": "Message Property Name", "dtype": "string", "default": "value", "hide": "part"}, {"id": "switchOnBackground", "label": "Switch On Background", "dtype": "enum", "default": "green", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "switchOffBackground", "label": "switchOffBackground", "dtype": "enum", "default": "gray", "options": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "option_labels": ["silver", "gray", "black", "white", "red", "green", "blue", "navy", "yellow", "orange", "purple", "lime", "aqua", "teal"], "hide": "part"}, {"id": "cellalignment", "label": "Cell Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Left", "Right"], "hide": "part"}, {"id": "verticalalignment", "label": "Vertical Alignment", "dtype": "enum", "default": "1", "options": ["1", "2", "3"], "option_labels": ["Center", "Top", "Bottom"], "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}], "value": "${ value }", "outputs": [{"domain": "message", "id": "state", "optional": true}], "templates": {"imports": "from gnuradio import qtgui", "var_make": "self.${id} = ${id} = ${value}", "make": "<%\\n win = \'_%s_toggle_button\'%id\\n%>\\\\\\nif ${type} == bool:\\n\\tself._${id}_choices = {\'Pressed\': bool(${pressed}), \'Released\': bool(${released})}\\nelif ${type} == str:\\n\\tself._${id}_choices = {\'Pressed\': \\"${pressed}\\".replace(\\"\'\\",\\"\\"), \'Released\': \\"${released}\\".replace(\\"\'\\",\\"\\")}\\nelse:\\n\\tself._${id}_choices = {\'Pressed\': ${pressed}, \'Released\': ${released}}\\n\\t\\n${win} = qtgui.GrToggleSwitch(${ \'self.set_\' + context.get(\'id\')() }, ${label}, self._${id}_choices, ${initPressed},\\"${switchOnBackground}\\",\\"${switchOffBackground}\\",${position}, 50, ${cellalignment}, ${verticalalignment},self,\\"${outputmsgname}\\".replace(\\"\'\\",\\"\\"))\\nself.${id} = ${win}\\n\\n${gui_hint() % win}"}, "documentation": "This block creates a modern toggle switch. The variable will take on one value or the other as set in the dialog.\\n\\nThis button will also produce a state message matching the set values.\\n\\nThe GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_vector_sink_f.block.yml": {"cached-at": 1646515624, "data": {"id": "qtgui_vector_sink_f", "label": "QT GUI Vector Sink", "flags": ["python"], "parameters": [{"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "vlen", "label": "Vector Size", "dtype": "int", "default": "1024", "hide": "${ \'part\' if vlen == 1 else \'none\' }"}, {"id": "x_start", "label": "X-Axis Start Value", "dtype": "real", "default": "0"}, {"id": "x_step", "label": "X-Axis Step Value", "dtype": "real", "default": "1.0"}, {"id": "x_axis_label", "label": "X-Axis Label", "dtype": "string", "default": "\\"x-Axis\\"", "hide": "${ (\'none\' if (len(x_axis_label) > 0 and x_axis_label != \\"x-Axis\\") else \'part\') }"}, {"id": "y_axis_label", "label": "Y-Axis Label", "dtype": "string", "default": "\\"y-Axis\\"", "hide": "${ (\'none\' if (len(y_axis_label) > 0 and y_axis_label != \\"y-Axis\\") else \'part\') }"}, {"id": "x_units", "label": "X-Axis Units", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "y_units", "label": "Y-Axis Units", "dtype": "string", "default": "\\"\\"", "hide": "part"}, {"id": "ref_level", "label": "Ref Level", "dtype": "real", "default": "0"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "autoscale", "label": "Autoscale", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "average", "label": "Average", "dtype": "enum", "default": "False", "options": ["1.0", "0.2", "0.1", "0.05"], "option_labels": ["None", "Low", "Medium", "High"], "hide": "part"}, {"id": "ymin", "label": "Y min", "dtype": "real", "default": "-140", "hide": "part"}, {"id": "ymax", "label": "Y max", "dtype": "real", "default": "10", "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "part"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "width1", "label": "Line 1 Width", "category": "Config", "dtype": "int", "default": "1", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["\\"blue\\"", "\\"red\\"", "\\"green\\"", "\\"black\\"", "\\"cyan\\"", "\\"magenta\\"", "\\"yellow\\"", "\\"dark red\\"", "\\"dark green\\"", "\\"dark blue\\""], "option_labels": ["Blue", "Red", "Green", "Black", "Cyan", "Magenta", "Yellow", "Dark Red", "Dark Green", "Dark Blue"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "width2", "label": "Line 2 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "default": "\\"red\\"", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "width3", "label": "Line 3 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "default": "\\"green\\"", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "width4", "label": "Line 4 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "default": "\\"black\\"", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "width5", "label": "Line 5 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "default": "\\"cyan\\"", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "width6", "label": "Line 6 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "default": "\\"magenta\\"", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "width7", "label": "Line 7 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "default": "\\"yellow\\"", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "width8", "label": "Line 8 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "default": "\\"dark red\\"", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "width9", "label": "Line 9 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "default": "\\"dark green\\"", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "width10", "label": "Line 10 Width", "base_key": "width1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "default": "\\"dark blue\\"", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "float", "vlen": "${ vlen }", "multiplicity": "${ nconnections }"}], "outputs": [{"domain": "message", "id": "xval", "optional": true, "hide": "${ not showports }"}], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nimport sip", "callbacks": ["set_update_time(${update_time})", "set_x_axis(${x_start}, ${x_step})", "set_y_axis(${ymin}, ${ymax})", "set_ref_level(${ref_level})", "set_x_axis_units(${x_units})", "set_y_axis_units(${y_units})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.vector_sink_f(\\n ${vlen},\\n ${x_start},\\n ${x_step},\\n ${x_axis_label},\\n ${y_axis_label},\\n ${name},\\n ${nconnections}, # Number of inputs\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.set_y_axis(${ymin}, ${ymax})\\nself.${id}.enable_autoscale(${autoscale})\\nself.${id}.enable_grid(${grid})\\nself.${id}.set_x_axis_units(${x_units})\\nself.${id}.set_y_axis_units(${y_units})\\nself.${id}.set_ref_level(${ref_level})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\nwidths = [${width1}, ${width2}, ${width3}, ${width4}, ${width5},\\n ${width6}, ${width7}, ${width8}, ${width9}, ${width10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_line_width(i, widths[i])\\n self.${id}.set_line_color(i, colors[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n${gui_hint() % win}"}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/qtgui_waterfall_sink_x.block.yml": {"cached-at": 1646515624, "data": {"id": "qtgui_waterfall_sink_x", "label": "QT GUI Waterfall Sink", "flags": ["python", "cpp"], "parameters": [{"id": "type", "label": "Type", "dtype": "enum", "default": "complex", "options": ["complex", "float", "msg_complex", "msg_float"], "option_labels": ["Complex", "Float", "Complex Message", "Float Message"], "option_attributes": {"fcn": ["waterfall_sink_c", "waterfall_sink_f", "waterfall_sink_c", "waterfall_sink_f"], "t": ["complex", "float", "message", "message"]}, "hide": "part"}, {"id": "name", "label": "Name", "dtype": "string", "default": "\\"\\"", "hide": "${ (\'none\' if len(name) > 0 else \'part\') }"}, {"id": "fftsize", "label": "FFT Size", "dtype": "int", "default": "1024", "options": ["32", "64", "128", "256", "512", "1024", "2048", "4096", "8192", "16384", "32768"], "hide": "${ (\'all\' if type.startswith(\'msg\') else \'none\') }"}, {"id": "freqhalf", "label": "Spectrum Width", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Full", "Half"], "hide": "${ (\'part\' if type == \\"float\\" or type == \\"msg_float\\" else \'all\') }"}, {"id": "wintype", "label": "Window Type", "dtype": "enum", "default": "window.WIN_BLACKMAN_hARRIS", "options": ["window.WIN_BLACKMAN_hARRIS", "window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER", "window.WIN_FLATTOP"], "option_labels": ["Blackman-harris", "Hamming", "Hann", "Blackman", "Rectangular", "Kaiser", "Flat-top"], "option_attributes": {"cpp_opts": ["fft::window::WIN_BLACKMAN_hARRIS", "fft::window::WIN_HAMMING", "fft::window::WIN_HANN", "fft::window::WIN_BLACKMAN", "fft::window::WIN_RECTANGULAR", "fft::window::WIN_KAISER", "fft::window::WIN_FLATTOP"]}, "hide": "part"}, {"id": "fc", "label": "Center Frequency (Hz)", "dtype": "real", "default": "0"}, {"id": "bw", "label": "Bandwidth (Hz)", "dtype": "real", "default": "samp_rate"}, {"id": "int_min", "label": "Intensity Min", "dtype": "float", "default": "-140", "hide": "part"}, {"id": "int_max", "label": "Intensity Max", "dtype": "float", "default": "10", "hide": "part"}, {"id": "grid", "label": "Grid", "dtype": "enum", "default": "False", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "nconnections", "label": "Number of Inputs", "dtype": "int", "default": "1", "hide": "${ (\'all\' if type.startswith(\'msg\') else \'part\') }"}, {"id": "update_time", "label": "Update Period", "dtype": "real", "default": "0.10", "hide": "part"}, {"id": "gui_hint", "label": "GUI Hint", "dtype": "gui_hint", "hide": "part"}, {"id": "showports", "label": "Show Msg Ports", "dtype": "bool", "default": "False", "hide": "part"}, {"id": "legend", "label": "Legend", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "label1", "label": "Line 1 Label", "category": "Config", "dtype": "string", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "axislabels", "label": "Axis Labels", "category": "Config", "dtype": "enum", "default": "True", "options": ["True", "False"], "option_labels": ["Yes", "No"], "hide": "part"}, {"id": "color1", "label": "Line 1 Color", "category": "Config", "dtype": "enum", "options": ["0", "1", "2", "3", "5", "6"], "option_labels": ["Multi Color", "White Hot", "Black Hot", "Incandescent", "Sunset", "Cool"], "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "alpha1", "label": "Line 1 Alpha", "category": "Config", "dtype": "float", "default": "1.0", "hide": "${ (\'part\' if int(nconnections) >= 1 else \'all\') }"}, {"id": "label2", "label": "Line 2 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "color2", "label": "Line 2 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "alpha2", "label": "Line 2 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 2 else \'all\') }"}, {"id": "label3", "label": "Line 3 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "color3", "label": "Line 3 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "alpha3", "label": "Line 3 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 3 else \'all\') }"}, {"id": "label4", "label": "Line 4 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "color4", "label": "Line 4 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "alpha4", "label": "Line 4 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 4 else \'all\') }"}, {"id": "label5", "label": "Line 5 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "color5", "label": "Line 5 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "alpha5", "label": "Line 5 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 5 else \'all\') }"}, {"id": "label6", "label": "Line 6 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "color6", "label": "Line 6 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "alpha6", "label": "Line 6 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 6 else \'all\') }"}, {"id": "label7", "label": "Line 7 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "color7", "label": "Line 7 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "alpha7", "label": "Line 7 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 7 else \'all\') }"}, {"id": "label8", "label": "Line 8 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "color8", "label": "Line 8 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "alpha8", "label": "Line 8 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 8 else \'all\') }"}, {"id": "label9", "label": "Line 9 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "color9", "label": "Line 9 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "alpha9", "label": "Line 9 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 9 else \'all\') }"}, {"id": "label10", "label": "Line 10 Label", "base_key": "label1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "color10", "label": "Line 10 Color", "base_key": "color1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}, {"id": "alpha10", "label": "Line 10 Alpha", "base_key": "alpha1", "hide": "${ (\'part\' if int(nconnections) >= 10 else \'all\') }"}], "inputs": [{"domain": "stream", "dtype": "${ type.t }", "multiplicity": "${ (0 if type.startswith(\'msg\') else nconnections) }", "optional": "${ (True if type.startswith(\'msg\') else False) }"}, {"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}, {"domain": "message", "id": "bw", "optional": true, "hide": "${ not showports }"}], "outputs": [{"domain": "message", "id": "freq", "optional": true, "hide": "${ not showports }"}], "asserts": ["${fftsize >= 32 and fftsize <= 32768}", "${not (fftsize & (fftsize -1))}"], "templates": {"imports": "from PyQt5 import Qt\\nfrom gnuradio import qtgui\\nfrom gnuradio.filter import firdes\\nimport sip", "callbacks": ["set_frequency_range(${fc}, ${bw})", "set_update_time(${update_time})", "set_intensity_range(${int_min}, ${int_max})"], "make": "<%\\n win = \'self._%s_win\'%id\\n%>\\\\\\nqtgui.${type.fcn}(\\n ${fftsize}, #size\\n ${wintype}, #wintype\\n ${fc}, #fc\\n ${bw}, #bw\\n ${name}, #name\\n ${ (0 if type.startswith(\'msg\') else nconnections) }, #number of inputs\\n None # parent\\n)\\nself.${id}.set_update_time(${update_time})\\nself.${id}.enable_grid(${grid})\\nself.${id}.enable_axis_labels(${axislabels})\\n\\n% if legend == \\"False\\":\\nself.${id}.disable_legend()\\n% endif\\n\\n% if type == \\"float\\" or type == \\"msg_float\\":\\nself.${id}.set_plot_pos_half(not ${freqhalf})\\n% endif\\n\\nlabels = [${label1}, ${label2}, ${label3}, ${label4}, ${label5},\\n ${label6}, ${label7}, ${label8}, ${label9}, ${label10}]\\ncolors = [${color1}, ${color2}, ${color3}, ${color4}, ${color5},\\n ${color6}, ${color7}, ${color8}, ${color9}, ${color10}]\\nalphas = [${alpha1}, ${alpha2}, ${alpha3}, ${alpha4}, ${alpha5},\\n ${alpha6}, ${alpha7}, ${alpha8}, ${alpha9}, ${alpha10}]\\n\\nfor i in range(${1 if type.startswith(\'msg\') else nconnections}):\\n if len(labels[i]) == 0:\\n self.${id}.set_line_label(i, \\"Data {0}\\".format(i))\\n else:\\n self.${id}.set_line_label(i, labels[i])\\n self.${id}.set_color_map(i, colors[i])\\n self.${id}.set_line_alpha(i, alphas[i])\\n\\nself.${id}.set_intensity_range(${int_min}, ${int_max})\\n\\n${win} = sip.wrapinstance(self.${id}.qwidget(), Qt.QWidget)\\n\\n${gui_hint() % win}"}, "cpp_templates": {"includes": ["#include <gnuradio/qtgui/${type.fcn}.h>", "#include <gnuradio/filter/firdes.h>"], "declarations": "qtgui::${type.fcn}::sptr ${id};", "callbacks": ["set_frequency_range(${fc}, ${bw})", "set_update_time(${update_time})"], "link": ["gnuradio::gnuradio-qtgui"], "make": "<%\\n win = \'_%s_win\'%id\\n%>\\\\\\n${id} = qtgui::${type.fcn}::make(\\n ${fftsize}, // size\\n ${wintype.cpp_opts}, // wintype\\n ${fc}, // fc\\n ${bw}, // bw\\n ${name}, // name\\n ${ (0 if type.startswith(\'msg\') else nconnections) } // number of inputs\\n);\\n\\n\\nQWidget* _${id}_win;\\n\\n${id}->set_update_time(${update_time});\\n${id}->enable_grid(${grid});\\n${id}->enable_axis_labels(${axislabels});\\n\\nif (!${legend}) {\\n this->${id}->disable_legend(); // if (!legend)\\n}\\n\\n/* C++ doesn\'t have this\\nif (\\"${type}\\" == \\"float\\" or \\"${type}\\" == \\"msg_float\\") {\\n this->${id}->set_plot_pos_half(not ${freqhalf});\\n}*/\\n{\\n std::string labels[10] = {\\"${label1.strip(\\"\'\\")}\\", \\"${label2.strip(\\"\'\\")}\\", \\"${label3.strip(\\"\'\\")}\\", \\"${label4.strip(\\"\'\\")}\\", \\"${label5.strip(\\"\'\\")}\\",\\n \\"${label6.strip(\\"\'\\")}\\", \\"${label7.strip(\\"\'\\")}\\", \\"${label8.strip(\\"\'\\")}\\", \\"${label9.strip(\\"\'\\")}\\", \\"${label10.strip(\\"\'\\")}\\"};\\n int colors[10] = {${color1 or 0}, ${color2 or 0}, ${color3 or 0}, ${color4 or 0}, ${color5 or 0},\\n ${color6 or 0}, ${color7 or 0}, ${color8 or 0}, ${color9 or 0}, ${color10 or 0}};\\n double alphas[10] = {${alpha1 or 1.0}, ${alpha2 or 1.0}, ${alpha3 or 1.0}, ${alpha4 or 1.0}, ${alpha5 or 1.0},\\n ${alpha6 or 1.0}, ${alpha7 or 1.0}, ${alpha8 or 1.0}, ${alpha9 or 1.0}, ${alpha10 or 1.0}};\\n\\n for (int i = 0; i < ${ 1 if (type == \'msg_complex\' or type == \'msg_float\') else nconnections }; i++) {\\n if (sizeof(labels[i]) == 0) {\\n ${id}->set_line_label(i, \\"Data \\" + std::to_string(i));\\n } else {\\n ${id}->set_line_label(i, labels[i]);\\n }\\n ${id}->set_color_map(i, colors[i]);\\n ${id}->set_line_alpha(i, alphas[i]);\\n }\\n}\\n\\nthis->${id}->set_intensity_range(${int_min}, ${int_max});\\n\\n_${id}_win = this->${id}->qwidget();\\n\\n${gui_hint() % win}", "translations": {"True": "true", "False": "false"}}, "documentation": "The GUI hint can be used to position the widget within the application. The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. Both the tab specification and the grid position are optional.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/snippet.block.yml": {"cached-at": 1646515624, "data": {"id": "snippet", "label": "Python Snippet", "flags": ["python"], "parameters": [{"id": "section", "label": "Section of Flowgraph", "dtype": "string", "options": ["main_after_init", "main_after_start", "main_after_stop"], "option_labels": ["Main - After Init", "Main - After Start", "Main - After Stop"]}, {"id": "priority", "label": "Priority", "dtype": "int", "default": "0", "hide": "${\'part\' if priority <= 0 else \'none\'}"}, {"id": "code", "label": "Code Snippet", "dtype": "_multiline"}], "templates": {"var_make": "${code}"}, "documentation": "CAUTION: This is an ADVANCED feature and can lead to unintended consequences in the rendering of a flowgraph. Use at your own risk.\\n\\nInsert a snippet of Python code directly into the flowgraph at the end of the specified section. \\\\\\nFor each snippet a function is generated with the block name of the snippet (use GRC Show Block IDs option to modify). These functions are\\\\\\nthen grouped into their respective sections in the rendered flowgraph.\\n\\nThe purpose of the python snippets is to be able to exercise features from within GRC that are not entirely supported by the block callbacks, \\\\ \\nmethods and mechanisms to generate the code. One example of this would be calling UHD timed commands before starting the flowgraph\\n\\nIndents will be handled upon insertion into the python flowgraph\\n\\nExample 1:\\nepy_mod_0.some_function(self.some_block.some_property)\\n\\nWill place the function call in the generated .py file using the name of the appropriate embedded python block in the proper scope\\nThe scope is relative to the blocks in the flowgraph, e.g. to reference a block, it should be identified as self.block\\n\\nExample 2:\\nprint(\'The flowgraph has been stopped\')\\n\\nWith section selected as \'Main - After Stop\', will place the print statement after the flowgraph has been stopped.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/stream.domain.yml": {"cached-at": 1646515624, "data": {"id": "stream", "label": "Stream", "color": "#000000", "multiple_connections_per_input": false, "multiple_connections_per_output": true, "templates": [{"type": ["stream", "stream"], "connect": "self.connect(${ make_port_sig(source) }, ${ make_port_sig(sink) })", "cpp_connect": "hier_block2::connect(${ make_port_sig(source) }, ${ make_port_sig(sink) })"}]}}, "/lib/share/gnuradio/grc/blocks/variable.block.yml": {"cached-at": 1646515624, "data": {"id": "variable", "label": "Variable", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "value", "label": "Value", "dtype": "raw", "default": "0"}], "value": "${ value }", "templates": {"var_make": "self.${id} = ${id} = ${value}", "callbacks": ["self.set_${id}(${value})"]}, "cpp_templates": {"var_make": "${id} = ${value};", "callbacks": ["this->set_${id}(${value})"]}, "documentation": "This block maps a value to a unique variable. This variable block has no graphical representation.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_band_pass_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_band_pass_filter_taps", "label": "Band-pass Filter Taps", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "type", "label": "Tap Type", "dtype": "enum", "options": ["band_pass", "complex_band_pass"], "option_labels": ["Real", "Complex"]}, {"id": "gain", "label": "Gain", "dtype": "float", "default": "1.0"}, {"id": "samp_rate", "label": "Sample Rate (Hz)", "dtype": "float", "default": "samp_rate"}, {"id": "low_cutoff_freq", "label": "Low Cutoff Freq (Hz)", "dtype": "float"}, {"id": "high_cutoff_freq", "label": "High Cutoff Freq (Hz)", "dtype": "float"}, {"id": "width", "label": "Transition Width (Hz)", "dtype": "float"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "float", "default": "6.76"}], "value": "${ getattr(firdes, str(type))(gain, samp_rate, low_cutoff_freq, high_cutoff_freq, width, win, beta) }", "templates": {"imports": "from gnuradio.filter import firdes", "var_make": "self.${id} = ${id} = firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq}, \\\\\\n${high_cutoff_freq}, ${width}, ${win}, ${beta})", "callbacks": ["self.set_${id}(firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "var_make": "this->${id} = ${id} = firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq}, \\\\\\n${high_cutoff_freq}, ${width}, ${win}, ${beta});", "link": ["gnuradio::gnuradio-filter"]}, "documentation": "This is a convenience wrapper for calling firdes.band_pass() or firdes.complex_band_pass()\\n\\n The beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_band_reject_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_band_reject_filter_taps", "label": "Band-reject Filter Taps", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "type", "label": "Tap Type", "dtype": "enum", "options": ["band_reject", "complex_band_reject"], "option_labels": ["Real", "Complex"]}, {"id": "gain", "label": "Gain", "dtype": "float", "default": "1.0"}, {"id": "samp_rate", "label": "Sample Rate (Hz)", "dtype": "float", "default": "samp_rate"}, {"id": "low_cutoff_freq", "label": "Low Cutoff Freq (Hz)", "dtype": "float"}, {"id": "high_cutoff_freq", "label": "High Cutoff Freq (Hz)", "dtype": "float"}, {"id": "width", "label": "Transition Width (Hz)", "dtype": "float"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "float", "default": "6.76"}], "value": "${ getattr(firdes, str(type))(gain, samp_rate, low_cutoff_freq, high_cutoff_freq, width, win, beta) }", "templates": {"imports": "from gnuradio.filter import firdes", "var_make": "self.${id} = ${id} = firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq},\\\\\\n${high_cutoff_freq}, ${width}, ${win}, ${beta})", "callbacks": ["self.set_${id}(firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq}, ${high_cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "var_make": "this->${id} = ${id} = firdes.${type}(${gain}, ${samp_rate}, ${low_cutoff_freq},\\\\\\n${high_cutoff_freq}, ${width}, ${win}, ${beta});", "link": ["gnuradio::gnuradio-filter"]}, "documentation": "This is a convenience wrapper for calling firdes.band_reject() or firdes.complex_band_reject().\\n\\n The beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_config.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_config", "label": "Variable Config", "flags": ["show_id", "python"], "parameters": [{"id": "value", "label": "Default Value", "dtype": "${ type }", "default": "0"}, {"id": "type", "label": "Type", "dtype": "enum", "default": "real", "options": ["real", "int", "bool", "string"], "option_labels": ["Float", "Int", "Bool", "String"], "option_attributes": {"get": ["getfloat", "getint", "getboolean", "get"]}}, {"id": "config_file", "label": "Config File", "dtype": "file_open", "default": "default"}, {"id": "section", "label": "Section", "dtype": "string", "default": "main"}, {"id": "option", "label": "Option", "dtype": "string", "default": "key"}, {"id": "writeback", "label": "WriteBack", "dtype": "raw", "default": "None"}], "value": "${ value }", "templates": {"imports": "import configparser", "var_make": "self._${id}_config = configparser.ConfigParser()\\nself._${id}_config.read(${config_file})\\ntry: ${id} = self._${id}_config.${type.get}(${section}, ${option})\\nexcept: ${id} = ${value}\\nself.${id} = ${id}", "callbacks": ["self.set_${id}(${value})", "self._${id}_config = configparser.ConfigParser()\\nself._${id}_config.read(${config_file})\\nif not self._${id}_config.has_section(${section}):\\n\\tself._${id}_config.add_section(${section})\\nself._${id}_config.set(${section}, ${option}, str(${writeback}))\\nself._${id}_config.write(open(${config_file}, \'w\'))"]}, "documentation": "This block represents a variable that can be read from a config file.\\n\\nTo save the value back into the config file: enter the name of another variable into the writeback param. When the other variable is changed at runtime, the config file will be re-written.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_file_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_file_filter_taps", "label": "Filter Taps Loader", "flags": ["show_id", "python"], "parameters": [{"id": "file", "label": "File", "dtype": "file_open"}, {"id": "verbose", "label": "Verbose Output", "dtype": "bool", "default": false}], "value": "${filter.file_taps_loader(file, verbose).get_taps()}", "templates": {"imports": "from gnuradio import filter", "var_make": "self.${id} = ${id} = filter.file_taps_loader(${file}, ${verbose}).get_taps()"}, "documentation": "This block maps filter taps created with gr_filter_design to a variable.\\n\\nSimply insert the ID of this block into the taps field of the block you want to import the file taps to.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_function_probe.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_function_probe", "label": "Function Probe", "flags": ["show_id", "python"], "parameters": [{"id": "block_id", "label": "Block ID", "dtype": "name", "default": "my_block_0"}, {"id": "function_name", "label": "Function Name", "dtype": "name", "default": "get_number"}, {"id": "function_args", "label": "Function Args", "dtype": "raw", "hide": "${ (\'none\' if function_args else \'part\') }"}, {"id": "poll_rate", "label": "Poll Rate (Hz)", "dtype": "real", "default": "10"}, {"id": "value", "label": "Initial Value", "dtype": "raw", "default": "0", "hide": "part"}], "value": "${ value }", "templates": {"imports": "import time\\nimport threading", "var_make": "self.${id} = ${id} = ${value}", "make": "def _${id}_probe():\\n while True:\\n <% obj = \'self\' + (\'.\' + block_id if block_id else \'\') %>\\n val = ${obj}.${function_name}(${function_args})\\n try:\\n try:\\n self.doc.add_next_tick_callback(functools.partial(self.set_${id},val))\\n except AttributeError:\\n self.set_${id}(val)\\n except AttributeError:\\n pass\\n time.sleep(1.0 / (${poll_rate}))\\n_${id}_thread = threading.Thread(target=_${id}_probe)\\n_${id}_thread.daemon = True\\n_${id}_thread.start()\\n", "callbacks": ["self.set_${id}(${value})"]}, "documentation": "Periodically probe a function and set its value to this variable.\\n\\nSet the values for block ID, function name, and function args appropriately: Block ID should be the ID of another block in this flow graph. An empty Block ID references the flow graph itself. Function name should be the name of a class method on that block. Function args are the parameters passed into that function. For a function with no arguments, leave function args blank. When passing a string for the function arguments, quote the string literal: \'\\"arg\\"\'.\\n\\nThe values will used literally, and generated into the following form:\\n self.block_id.function_name(function_args)\\nor, if the Block ID is empty,\\n self.function_name(function_args)\\n\\nTo poll a stream for a level, use this with the probe signal block.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_header_format_default.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_header_format_default", "label": "Default Header Format Obj.", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "access_code", "label": "Access Code", "dtype": "string", "default": "0"}, {"id": "threshold", "label": "Threshold", "dtype": "int", "default": 0}, {"id": "bps", "label": "Payload Bits per Symbol", "dtype": "int", "default": 1}], "value": "${ digital.header_format_default(access_code, threshold, bps) }", "templates": {"imports": "from gnuradio import digital", "var_make": "% if int(eval(access_code))==0:\\nself.${id} = ${id} = digital.header_format_default(digital.packet_utils.default_access_code,\\\\\\n${threshold}, ${bps})\\n% else:\\nself.${id} = ${id} = digital.header_format_default(${access_code},\\\\\\n${threshold}, ${bps})\\n% endif"}, "cpp_templates": {"includes": ["#include <gnuradio/digital/header_format_default.h>"], "declarations": "digital::header_format_default::sptr ${id};", "var_make": "% if int(eval(access_code))==0:\\nthis->${id} = ${id} = digital::header_format_default(digital.packet_utils.default_access_code,\\\\\\n${threshold}, ${bps});\\n% else:\\nthis->${id} = ${id} = digital::header_format_default(${access_code},\\\\\\n${threshold}, ${bps});\\n% endif", "link": ["gnuradio::gnuradio-digital"]}, "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_high_pass_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_high_pass_filter_taps", "label": "High-pass Filter Taps", "flags": ["show_id", "python"], "parameters": [{"id": "gain", "label": "Gain", "dtype": "float", "default": "1.0"}, {"id": "samp_rate", "label": "Sample Rate (Hz)", "dtype": "float", "default": "samp_rate"}, {"id": "cutoff_freq", "label": "Cutoff Freq (Hz)", "dtype": "float"}, {"id": "width", "label": "Transition Width (Hz)", "dtype": "float"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "float", "default": "6.76"}], "value": "${ firdes.high_pass(gain, samp_rate, cutoff_freq, width, win, beta) }", "templates": {"imports": "from gnuradio.filter import firdes", "var_make": "self.${id} = ${id} = firdes.high_pass(${gain}, ${samp_rate}, ${cutoff_freq},\\\\\\n${width}, ${win}, ${beta})", "callbacks": ["self.set_${id}(firdes.high_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "var_make": "this->${id} = ${id} = firdes.high_pass(${gain}, ${samp_rate}, ${cutoff_freq},\\\\\\n${width}, ${win}, ${beta});", "link": ["gnuradio::gnuradio-filter"]}, "documentation": "This variable is a convenience wrapper around a call to firdes.high_pass(...).\\n\\n The beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_low_pass_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_low_pass_filter_taps", "label": "Low-pass Filter Taps", "flags": ["show_id", "python"], "parameters": [{"id": "gain", "label": "Gain", "dtype": "float", "default": "1.0"}, {"id": "samp_rate", "label": "Sample Rate (Hz)", "dtype": "float", "default": "samp_rate"}, {"id": "cutoff_freq", "label": "Cutoff Freq (Hz)", "dtype": "float"}, {"id": "width", "label": "Transition Width (Hz)", "dtype": "float"}, {"id": "win", "label": "Window", "dtype": "raw", "default": "window.WIN_HAMMING", "options": ["window.WIN_HAMMING", "window.WIN_HANN", "window.WIN_BLACKMAN", "window.WIN_RECTANGULAR", "window.WIN_KAISER"], "option_labels": ["Hamming", "Hann", "Blackman", "Rectangular", "Kaiser"]}, {"id": "beta", "label": "Beta", "dtype": "float", "default": "6.76"}], "value": "${ firdes.low_pass(gain, samp_rate, cutoff_freq, width, win, beta) }", "templates": {"imports": "from gnuradio.filter import firdes", "var_make": "self.${id} = ${id} = firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq},\\\\\\n${width}, ${win}, ${beta})", "callbacks": ["self.set_${id}(firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq}, ${width}, ${win}, ${beta}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "var_make": "this->${id} = ${id} = firdes.low_pass(${gain}, ${samp_rate}, ${cutoff_freq},\\\\\\n${width}, ${win}, ${beta});", "link": ["gnuradio::gnuradio-filter"]}, "documentation": "This variable is a convenience wrapper around a call to firdes.low_pass(...).\\n\\n The beta parameter only applies to the Kaiser window.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_rrc_filter_taps.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_rrc_filter_taps", "label": "RRC Filter Taps", "flags": ["show_id", "python", "cpp"], "parameters": [{"id": "gain", "label": "Gain", "dtype": "float", "default": "1.0"}, {"id": "samp_rate", "label": "Sample Rate (Hz)", "dtype": "float", "default": "samp_rate"}, {"id": "sym_rate", "label": "Symbol Rate (Hz)", "dtype": "float"}, {"id": "alpha", "label": "Excess BW", "dtype": "float", "default": "0.35"}, {"id": "ntaps", "label": "Num Taps", "dtype": "int", "default": "11*sps"}], "value": "${ firdes.root_raised_cosine(gain, samp_rate, sym_rate, alpha, ntaps) }", "templates": {"imports": "from gnuradio.filter import firdes", "var_make": "self.${id} = ${id} = firdes.root_raised_cosine(${gain}, ${samp_rate},\\\\\\n${sym_rate}, ${alpha}, ${ntaps})", "callbacks": ["self.set_${id}(firdes.root_raised_cosine(${gain}, ${samp_rate}, ${sym_rate}, ${alpha}, ${ntaps}))"]}, "cpp_templates": {"includes": ["#include <gnuradio/filter/firdes.h>"], "declarations": "filter::firdes::sptr ${id};", "var_make": "this->${id} = ${id} = firdes.root_raised_cosine(${gain}, ${samp_rate},\\\\\\n${sym_rate}, ${alpha}, ${ntaps});", "link": ["gnuradio::gnuradio-filter"]}, "documentation": "This is a convenience wrapper for calling firdes.root_raised_cosine(...).", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/variable_struct.block.yml": {"cached-at": 1646515624, "data": {"id": "variable_struct", "label": "Struct Variable", "flags": ["show_id"], "parameters": [{"id": "field0", "label": "Field 0", "category": "Fields", "dtype": "string", "default": "field0", "hide": "part"}, {"id": "field1", "label": "Field 1", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field2", "label": "Field 2", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field3", "label": "Field 3", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field4", "label": "Field 4", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field5", "label": "Field 5", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field6", "label": "Field 6", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field7", "label": "Field 7", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field8", "label": "Field 8", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field9", "label": "Field 9", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field10", "label": "Field 10", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field11", "label": "Field 11", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field12", "label": "Field 12", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field13", "label": "Field 13", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field14", "label": "Field 14", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field15", "label": "Field 15", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field16", "label": "Field 16", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field17", "label": "Field 17", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field18", "label": "Field 18", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "field19", "label": "Field 19", "category": "Fields", "dtype": "string", "hide": "part"}, {"id": "value0", "label": "${field0}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field0 else \'all\' }"}, {"id": "value1", "label": "${field1}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field1 else \'all\' }"}, {"id": "value2", "label": "${field2}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field2 else \'all\' }"}, {"id": "value3", "label": "${field3}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field3 else \'all\' }"}, {"id": "value4", "label": "${field4}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field4 else \'all\' }"}, {"id": "value5", "label": "${field5}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field5 else \'all\' }"}, {"id": "value6", "label": "${field6}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field6 else \'all\' }"}, {"id": "value7", "label": "${field7}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field7 else \'all\' }"}, {"id": "value8", "label": "${field8}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field8 else \'all\' }"}, {"id": "value9", "label": "${field9}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field9 else \'all\' }"}, {"id": "value10", "label": "${field10}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field10 else \'all\' }"}, {"id": "value11", "label": "${field11}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field11 else \'all\' }"}, {"id": "value12", "label": "${field12}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field12 else \'all\' }"}, {"id": "value13", "label": "${field13}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field13 else \'all\' }"}, {"id": "value14", "label": "${field14}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field14 else \'all\' }"}, {"id": "value15", "label": "${field15}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field15 else \'all\' }"}, {"id": "value16", "label": "${field16}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field16 else \'all\' }"}, {"id": "value17", "label": "${field17}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field17 else \'all\' }"}, {"id": "value18", "label": "${field18}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field18 else \'all\' }"}, {"id": "value19", "label": "${field19}", "dtype": "raw", "default": "0", "hide": "${ \'none\' if field19 else \'all\' }"}], "value": "${value}", "asserts": ["${ (str(field0) or \\"a\\")[0].isalpha() }", "${ (str(field0) or \\"a\\").isalnum() }", "${ (str(field1) or \\"a\\")[0].isalpha() }", "${ (str(field1) or \\"a\\").isalnum() }", "${ (str(field2) or \\"a\\")[0].isalpha() }", "${ (str(field2) or \\"a\\").isalnum() }", "${ (str(field3) or \\"a\\")[0].isalpha() }", "${ (str(field3) or \\"a\\").isalnum() }", "${ (str(field4) or \\"a\\")[0].isalpha() }", "${ (str(field4) or \\"a\\").isalnum() }", "${ (str(field5) or \\"a\\")[0].isalpha() }", "${ (str(field5) or \\"a\\").isalnum() }", "${ (str(field6) or \\"a\\")[0].isalpha() }", "${ (str(field6) or \\"a\\").isalnum() }", "${ (str(field7) or \\"a\\")[0].isalpha() }", "${ (str(field7) or \\"a\\").isalnum() }", "${ (str(field8) or \\"a\\")[0].isalpha() }", "${ (str(field8) or \\"a\\").isalnum() }", "${ (str(field9) or \\"a\\")[0].isalpha() }", "${ (str(field9) or \\"a\\").isalnum() }", "${ (str(field10) or \\"a\\")[0].isalpha() }", "${ (str(field10) or \\"a\\").isalnum() }", "${ (str(field11) or \\"a\\")[0].isalpha() }", "${ (str(field11) or \\"a\\").isalnum() }", "${ (str(field12) or \\"a\\")[0].isalpha() }", "${ (str(field12) or \\"a\\").isalnum() }", "${ (str(field13) or \\"a\\")[0].isalpha() }", "${ (str(field13) or \\"a\\").isalnum() }", "${ (str(field14) or \\"a\\")[0].isalpha() }", "${ (str(field14) or \\"a\\").isalnum() }", "${ (str(field15) or \\"a\\")[0].isalpha() }", "${ (str(field15) or \\"a\\").isalnum() }", "${ (str(field16) or \\"a\\")[0].isalpha() }", "${ (str(field16) or \\"a\\").isalnum() }", "${ (str(field17) or \\"a\\")[0].isalpha() }", "${ (str(field17) or \\"a\\").isalnum() }", "${ (str(field18) or \\"a\\")[0].isalpha() }", "${ (str(field18) or \\"a\\").isalnum() }", "${ (str(field19) or \\"a\\")[0].isalpha() }", "${ (str(field19) or \\"a\\").isalnum() }"], "templates": {"imports": "def struct(data): return type(\'Struct\', (object,), data)()", "var_make": "self.${id} = ${id} = struct({\\n % for i in range(20):\\n <%\\n field = context.get(\'field\' + str(i))\\n value = context.get(\'value\' + str(i))\\n %>\\n % if len(str(field)) > 2:\\n ${field}: ${value},\\n % endif\\n % endfor\\n})", "var_value": "struct({\\n % for i in range(20):\\n <%\\n field = context.get(\'field\' + str(i))\\n %>\\n % if len(str(field)) > 2:\\n ${field}: ${field},\\n % endif\\n % endfor\\n})"}, "documentation": "This is a simple struct/record like variable.\\n\\nAttribute/field names can be specified in the tab \'Fields\'.\\nFor each non-empty field a parameter with type raw is shown.\\nValue access via the dot operator, e.g. \\"variable_struct_0.field0\\"", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/xmlrpc_client.block.yml": {"cached-at": 1646515624, "data": {"id": "xmlrpc_client", "label": "XMLRPC Client", "flags": ["python"], "parameters": [{"id": "addr", "label": "Address", "dtype": "string", "default": "localhost"}, {"id": "port", "label": "Port", "dtype": "int", "default": "8080"}, {"id": "callback", "label": "Callback", "dtype": "string", "default": "set_"}, {"id": "variable", "label": "Variable", "dtype": "raw"}], "templates": {"imports": "from xmlrpc.client import ServerProxy", "make": "ServerProxy(\'http://\'+${addr}+\':${port}\')", "callbacks": ["${no_quotes(callback)}(${variable})"]}, "documentation": "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 the name of a function registered on the server. The variable should be an expression containing the name of a variable in the flowgraph.", "file_format": 1}}, "/lib/share/gnuradio/grc/blocks/xmlrpc_server.block.yml": {"cached-at": 1646515624, "data": {"id": "xmlrpc_server", "label": "XMLRPC Server", "flags": ["python"], "parameters": [{"id": "addr", "label": "Address", "dtype": "string", "default": "localhost"}, {"id": "port", "label": "Port", "dtype": "int", "default": "8080"}], "templates": {"imports": "from xmlrpc.server import SimpleXMLRPCServer\\nimport threading", "make": "SimpleXMLRPCServer((${addr}, ${port}), allow_none=True)\\nself.${id}.register_instance(self)\\nself.${id}_thread = threading.Thread(target=self.${id}.serve_forever)\\nself.${id}_thread.daemon = True\\nself.${id}_thread.start()"}, "documentation": "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).\\n\\nExample client in python:\\n\\nfrom xmlrpc.client import ServerProxy\\nServerProxy(\'http://localhost:8080\')\\ns.set_freq(5000)", "file_format": 1}}}}'