diff options
Diffstat (limited to 'grc/blocks')
24 files changed, 686 insertions, 44 deletions
diff --git a/grc/blocks/Makefile.am b/grc/blocks/Makefile.am index 61c003803..4e3839d27 100644 --- a/grc/blocks/Makefile.am +++ b/grc/blocks/Makefile.am @@ -19,7 +19,7 @@ # Boston, MA 02110-1301, USA. # -include $(top_srcdir)/grc/Makefile.inc +include $(top_srcdir)/Makefile.common ourdatadir = $(grc_blocksdir) dist_ourdata_DATA = \ @@ -34,6 +34,8 @@ dist_ourdata_DATA = \ blks2_cvsd_decode.xml \ blks2_dxpsk_demod.xml \ blks2_dxpsk_mod.xml \ + blks2_dxpsk2_demod.xml \ + blks2_dxpsk2_mod.xml \ blks2_error_rate.xml \ blks2_fm_deemph.xml \ blks2_fm_demod_cf.xml \ @@ -65,6 +67,7 @@ dist_ourdata_DATA = \ const_source_x.xml \ gr_add_const_vxx.xml \ gr_add_xx.xml \ + gr_additive_scrambler_bb.xml \ gr_agc2_xx.xml \ gr_agc_xx.xml \ gr_and_xx.xml \ @@ -106,6 +109,7 @@ dist_ourdata_DATA = \ gr_file_source.xml \ gr_filter_delay_fc.xml \ gr_fir_filter_xxx.xml \ + gr_fll_band_edge_cc.xml \ gr_float_to_char.xml \ gr_float_to_complex.xml \ gr_float_to_short.xml \ @@ -230,6 +234,7 @@ dist_ourdata_DATA = \ wxgui_histosink2.xml \ wxgui_numbersink2.xml \ wxgui_scopesink2.xml \ + wxgui_termsink.xml \ wxgui_waterfallsink2.xml \ xmlrpc_client.xml \ xmlrpc_server.xml diff --git a/grc/blocks/blks2_dxpsk2_demod.xml b/grc/blocks/blks2_dxpsk2_demod.xml new file mode 100644 index 000000000..ce8305c50 --- /dev/null +++ b/grc/blocks/blks2_dxpsk2_demod.xml @@ -0,0 +1,145 @@ +<?xml version="1.0"?> +<!-- +################################################### +##DPSK2 Demod - 2, 4 +################################################### + --> +<block> + <name>DPSK2 Demod</name> + <key>blks2_dxpsk2_demod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)2_demod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + costas_alpha=$costas_alpha, + timing_alpha=$timing_alpha, + timing_max_dev=$timing_max_dev, + gray_code=$gray_code, + verbose=$verbose, + log=$log, + sync_out=$sync_out, +)</make> + <callback>clock_recov.set_alpha($costas_alpha)</callback> + <callback>clock_recov.set_beta(0.25*$costas_alpha**2)</callback> + <callback>time_recov.set_alpha($timing_alpha)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>DBPSK</name> + <key>dbpsk</key> + </option> + <option> + <name>DQPSK</name> + <key>dqpsk</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Costas Alpha</name> + <key>costas_alpha</key> + <value>0.175</value> + <type>real</type> + </param> + <param> + <name>Timing Alpha</name> + <key>timing_alpha</key> + <value>0.100</value> + <type>real</type> + </param> + <param> + <name>Timing Max Dev</name> + <key>timing_max_dev</key> + <value>1.5</value> + <type>real</type> + </param> + <param> + <name>Omega Relative Limit</name> + <key>omega_relative_limit</key> + <value>0.005</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>bool</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Verbose</name> + <key>verbose</key> + <value>False</value> + <type>bool</type> + <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <param> + <name>Logging</name> + <key>log</key> + <value>False</value> + <type>bool</type> + <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <param> + <name>Sync Out</name> + <key>sync_out</key> + <value>False</value> + <type>bool</type> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> + <source> + <name>sync</name> + <type>complex</type> + <optional>1</optional> + </source> +</block> diff --git a/grc/blocks/blks2_dxpsk2_mod.xml b/grc/blocks/blks2_dxpsk2_mod.xml new file mode 100644 index 000000000..bf292be17 --- /dev/null +++ b/grc/blocks/blks2_dxpsk2_mod.xml @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<!-- +################################################### +##DPSK2 Mod - 2, 4 +################################################### + --> +<block> + <name>DPSK2 Mod</name> + <key>blks2_dxpsk2_mod</key> + <import>from gnuradio import blks2</import> + <make>blks2.$(type)2_mod( + samples_per_symbol=$samples_per_symbol, + excess_bw=$excess_bw, + gray_code=$gray_code, + verbose=$verbose, + log=$log, +)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>DBPSK</name> + <key>dbpsk</key> + </option> + <option> + <name>DQPSK</name> + <key>dqpsk</key> + </option> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Excess BW</name> + <key>excess_bw</key> + <value>0.35</value> + <type>real</type> + </param> + <param> + <name>Gray Code</name> + <key>gray_code</key> + <value>True</value> + <type>bool</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Verbose</name> + <key>verbose</key> + <value>False</value> + <type>bool</type> + <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <param> + <name>Logging</name> + <key>log</key> + <value>False</value> + <type>bool</type> + <hide>#if str($log) == 'False' then 'part' else 'none'#</hide> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/grc/blocks/blks2_dxpsk_demod.xml b/grc/blocks/blks2_dxpsk_demod.xml index 4c13b3415..1c96b6cec 100644 --- a/grc/blocks/blks2_dxpsk_demod.xml +++ b/grc/blocks/blks2_dxpsk_demod.xml @@ -76,7 +76,7 @@ <name>Gray Code</name> <key>gray_code</key> <value>True</value> - <type>enum</type> + <type>bool</type> <option> <name>Yes</name> <key>True</key> diff --git a/grc/blocks/blks2_dxpsk_mod.xml b/grc/blocks/blks2_dxpsk_mod.xml index 28fd742fa..77505d8ad 100644 --- a/grc/blocks/blks2_dxpsk_mod.xml +++ b/grc/blocks/blks2_dxpsk_mod.xml @@ -48,7 +48,7 @@ <name>Gray Code</name> <key>gray_code</key> <value>True</value> - <type>enum</type> + <type>bool</type> <option> <name>Yes</name> <key>True</key> diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml index 187ca196a..04568e19a 100644 --- a/grc/blocks/block_tree.xml +++ b/grc/blocks/block_tree.xml @@ -46,6 +46,7 @@ <block>wxgui_constellationsink2</block> <block>wxgui_waterfallsink2</block> <block>wxgui_histosink2</block> + <block>wxgui_termsink</block> </cat> <cat> <name>Operators</name> @@ -126,7 +127,7 @@ <cat> <name>Synchronizers</name> <block>gr_clock_recovery_mm_xx</block> - <block>gr_pfb_clock_sync_ccf</block> + <block>gr_pfb_clock_sync_xxx</block> <block>gr_costas_loop_cc</block> <block>gr_dd_mpsk_sync_cc</block> @@ -137,6 +138,8 @@ <block>gr_pll_freqdet_cf</block> <block>gr_pll_refout_cc</block> + <block>gr_fll_band_edge_cc</block> + <block>gr_correlate_access_code_bb</block> <block>gr_pn_correlator_cc</block> <block>gr_simple_correlator</block> @@ -224,6 +227,9 @@ <block>blks2_dxpsk_mod</block> <block>blks2_dxpsk_demod</block> + <block>blks2_dxpsk2_mod</block> + <block>blks2_dxpsk2_demod</block> + <block>blks2_gmsk_mod</block> <block>blks2_gmsk_demod</block> @@ -253,6 +259,7 @@ <name>Line Coding</name> <block>gr_scrambler_bb</block> <block>gr_descrambler_bb</block> + <block>gr_additive_scrambler_bb</block> </cat> <cat> <name>Vocoders</name> diff --git a/grc/blocks/gr_additive_scrambler_bb.xml b/grc/blocks/gr_additive_scrambler_bb.xml new file mode 100644 index 000000000..a15d6eefb --- /dev/null +++ b/grc/blocks/gr_additive_scrambler_bb.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<!-- +################################################### +## Additive Scrambler +################################################### + --> +<block> + <name>Additive Scrambler</name> + <key>gr_additive_scrambler_bb</key> + <import>from gnuradio import gr</import> + <make>gr.additive_scrambler_bb($mask, $seed, $len, $count)</make> + <param> + <name>Mask</name> + <key>mask</key> + <value>0x8A</value> + <type>hex</type> + </param> + <param> + <name>Seed</name> + <key>seed</key> + <value>0x7F</value> + <type>hex</type> + </param> + <param> + <name>Length</name> + <key>len</key> + <value>7</value> + <type>int</type> + </param> + <param> + <name>Count</name> + <key>count</key> + <value>0</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>byte</type> + </source> +</block> diff --git a/grc/blocks/gr_fll_band_edge_cc.xml b/grc/blocks/gr_fll_band_edge_cc.xml new file mode 100644 index 000000000..5a13ac49b --- /dev/null +++ b/grc/blocks/gr_fll_band_edge_cc.xml @@ -0,0 +1,76 @@ +<?xml version="1.0"?> +<!-- +################################################### +## FLL using Band-Edge Filters +################################################### + --> +<block> + <name>FLL Band-Edge</name> + <key>gr_fll_band_edge_cc</key> + <import>from gnuradio import gr</import> + <make>gr.fll_band_edge_cc($samps_per_sym, $rolloff, $filter_size, $alpha, $beta)</make> + <callback>set_alpha($alpha)</callback> + <callback>set_beta($beta)</callback> + + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex</name> + <key>cc</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + </option> + </param> + + <param> + <name>Samples Per Symbol</name> + <key>samps_per_sym</key> + <type>real</type> + </param> + <param> + <name>Filter Rolloff Factor</name> + <key>rolloff</key> + <type>real</type> + </param> + <param> + <name>Prototype Filter Size</name> + <key>filter_size</key> + <type>int</type> + </param> + + <param> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>$type.input</type> + </sink> + <source> + <name>out</name> + <type>$type.output</type> + </source> + <source> + <name>freq</name> + <type>float</type> + <optional>1</optional> + </source> + <source> + <name>phase</name> + <type>float</type> + <optional>1</optional> + </source> + <source> + <name>error</name> + <type>float</type> + <optional>1</optional> + </source> +</block> diff --git a/grc/blocks/gr_message_sink.xml b/grc/blocks/gr_message_sink.xml index 76537f283..18e92adb9 100644 --- a/grc/blocks/gr_message_sink.xml +++ b/grc/blocks/gr_message_sink.xml @@ -8,7 +8,7 @@ <name>Message Sink</name> <key>gr_message_sink</key> <import>from gnuradio import gr</import> - <make>gr.message_sink($type.size*$vlen, $(id)_msgq, $dont_block)</make> + <make>gr.message_sink($type.size*$vlen, $(id)_msgq_out, $dont_block)</make> <param> <name>Input Type</name> <key>type</key> diff --git a/grc/blocks/gr_message_source.xml b/grc/blocks/gr_message_source.xml index 44378ae83..72367b21b 100644 --- a/grc/blocks/gr_message_source.xml +++ b/grc/blocks/gr_message_source.xml @@ -8,7 +8,7 @@ <name>Message Source</name> <key>gr_message_source</key> <import>from gnuradio import gr</import> - <make>gr.message_source($type.size*$vlen, $(id)_msgq)</make> + <make>gr.message_source($type.size*$vlen, $(id)_msgq_in)</make> <param> <name>Output Type</name> <key>type</key> diff --git a/grc/blocks/gr_pfb_clock_sync.xml b/grc/blocks/gr_pfb_clock_sync.xml index 9cb909acd..26cacfb3e 100644 --- a/grc/blocks/gr_pfb_clock_sync.xml +++ b/grc/blocks/gr_pfb_clock_sync.xml @@ -6,15 +6,35 @@ --> <block> <name>Polyphase Clock Sync</name> - <key>gr_pfb_clock_sync_ccf</key> + <key>gr_pfb_clock_sync_xxx</key> <import>from gnuradio import gr</import> - <make>gr.pfb_clock_sync_ccf($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev) + <make>gr.pfb_clock_sync_$(type)($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev) self.$(id).set_beta($beta)</make> <callback>set_taps($taps)</callback> <callback>set_alpha($alpha)</callback> <callback>set_beta($beta)</callback> <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex->Complex (Real Taps)</name> + <key>ccf</key> + <opt>input:complex</opt> + <opt>output:complex</opt> + <opt>taps:real_vector</opt> + </option> + <option> + <name>Float->Float (Real Taps)</name> + <key>fff</key> + <opt>input:float</opt> + <opt>output:float</opt> + <opt>taps:real_vector</opt> + </option> + </param> + + <param> <name>Samples/Symbol</name> <key>sps</key> <type>real</type> @@ -51,11 +71,11 @@ self.$(id).set_beta($beta)</make> </param> <sink> <name>in</name> - <type>complex</type> + <type>$type.input</type> </sink> <source> <name>out</name> - <type>complex</type> + <type>$type.output</type> </source> <source> <name>err</name> diff --git a/grc/blocks/gr_sample_and_hold_xx.xml b/grc/blocks/gr_sample_and_hold_xx.xml index bfe66bb00..2a036c3fd 100644 --- a/grc/blocks/gr_sample_and_hold_xx.xml +++ b/grc/blocks/gr_sample_and_hold_xx.xml @@ -40,7 +40,7 @@ </sink> <sink> <name>ctrl</name> - <type>$type</type> + <type>byte</type> </sink> <source> <name>out</name> diff --git a/grc/blocks/pad_sink.xml b/grc/blocks/pad_sink.xml index 734526793..2e9495260 100644 --- a/grc/blocks/pad_sink.xml +++ b/grc/blocks/pad_sink.xml @@ -9,10 +9,10 @@ <key>pad_sink</key> <make></make> <param> - <name>Num Inputs</name> - <key>nports</key> - <value>1</value> - <type>int</type> + <name>Label</name> + <key>label</key> + <value>out</value> + <type>string</type> </param> <param> <name>Input Type</name> @@ -51,15 +51,14 @@ <type>int</type> </param> <check>$vlen > 0</check> - <check>0 < $nports</check> <sink> <name>in</name> <type>$type</type> <vlen>$vlen</vlen> - <nports>$nports</nports> </sink> <doc> -The inputs of this block will become the outputs to this flow graph when it is instantiated as a hierarchical block. \ -Limit one sink pad block per flow graph. +The inputs of this block will become the outputs to this flow graph when it is instantiated as a hierarchical block. + +Pad sink will be ordered alphabetically by their ids. The first pad sink will have an index of 0. </doc> </block> diff --git a/grc/blocks/pad_source.xml b/grc/blocks/pad_source.xml index f44d96238..7b2210cbb 100644 --- a/grc/blocks/pad_source.xml +++ b/grc/blocks/pad_source.xml @@ -9,10 +9,10 @@ <key>pad_source</key> <make></make> <param> - <name>Num Outputs</name> - <key>nports</key> - <value>1</value> - <type>int</type> + <name>Label</name> + <key>label</key> + <value>in</value> + <type>string</type> </param> <param> <name>Output Type</name> @@ -51,16 +51,14 @@ <type>int</type> </param> <check>$vlen > 0</check> - <check>0 < $nports</check> <source> <name>out</name> <type>$type</type> <vlen>$vlen</vlen> - <nports>$nports</nports> </source> <doc> -The outputs of this block will become the inputs to this flow graph when it is instantiated as a hierarchical block. \ -Limit one source pad block per flow graph. \ -The "pad sink id" will be ignored in this mode. +The outputs of this block will become the inputs to this flow graph when it is instantiated as a hierarchical block. + +Pad sources will be ordered alphabetically by their ids. The first pad source will have an index of 0. </doc> </block> diff --git a/grc/blocks/usrp2_sink_xxxx.xml b/grc/blocks/usrp2_sink_xxxx.xml index f2ee4d151..14586cc36 100644 --- a/grc/blocks/usrp2_sink_xxxx.xml +++ b/grc/blocks/usrp2_sink_xxxx.xml @@ -36,11 +36,13 @@ self.$(id).set_center_freq($frequency)</callback> <name>Complex</name> <key>complex</key> <opt>fcn:32fc</opt> + <opt>vlen:1</opt> </option> <option> <name>Short</name> <key>short</key> <opt>fcn:16sc</opt> + <opt>vlen:2</opt> </option> </param> <param> @@ -85,6 +87,7 @@ self.$(id).set_center_freq($frequency)</callback> <sink> <name>in</name> <type>$type</type> + <vlen>$type.vlen</vlen> </sink> <doc> The USRP2 sink inputs 100 Megasamples per second / interpolation. diff --git a/grc/blocks/usrp2_source_xxxx.xml b/grc/blocks/usrp2_source_xxxx.xml index 02046e609..0f297dfd1 100644 --- a/grc/blocks/usrp2_source_xxxx.xml +++ b/grc/blocks/usrp2_source_xxxx.xml @@ -36,11 +36,13 @@ self.$(id).set_center_freq($frequency)</callback> <name>Complex</name> <key>complex</key> <opt>fcn:32fc</opt> + <opt>vlen:1</opt> </option> <option> <name>Short</name> <key>short</key> <opt>fcn:16sc</opt> + <opt>vlen:2</opt> </option> </param> <param> @@ -85,6 +87,7 @@ self.$(id).set_center_freq($frequency)</callback> <source> <name>out</name> <type>$type</type> + <vlen>$type.vlen</vlen> </source> <doc> The USRP2 source outputs 100 Megasamples per second / decimation. diff --git a/grc/blocks/usrp_dual_source_x.xml b/grc/blocks/usrp_dual_source_x.xml index ad9a860ac..07d3174bb 100644 --- a/grc/blocks/usrp_dual_source_x.xml +++ b/grc/blocks/usrp_dual_source_x.xml @@ -8,7 +8,11 @@ <name>USRP Dual Source</name> <key>usrp_dual_source_x</key> <import>from grc_gnuradio import usrp as grc_usrp</import> - <make>grc_usrp.dual_source_$(type.fcn)(which=$which, rx_ant_a=$rx_ant_a, rx_ant_b=$rx_ant_b) + <make>grc_usrp.dual_source_$(type.fcn)( + which=$which, + rx_ant_a=$rx_ant_a, rx_ant_b=$rx_ant_b, + rx_source_a=$rx_source_a, rx_source_b=$rx_source_b, +) #if $format() self.$(id).set_format(width=$format.width, shift=$format.shift) #end if @@ -189,6 +193,36 @@ self.$(id).set_gain_b($gain_b)</make> <key>RX2</key> </option> </param> + <param> + <name>RX Source A</name> + <key>rx_source_a</key> + <value>A</value> + <type>string</type> + <hide>#if $rx_source_a() == 'A' then 'part' else 'none'#</hide> + <option> + <name>Side A</name> + <key>A</key> + </option> + <option> + <name>Side B</name> + <key>B</key> + </option> + </param> + <param> + <name>RX Source B</name> + <key>rx_source_b</key> + <value>B</value> + <type>string</type> + <hide>#if $rx_source_b() == 'B' then 'part' else 'none'#</hide> + <option> + <name>Side A</name> + <key>A</key> + </option> + <option> + <name>Side B</name> + <key>B</key> + </option> + </param> <source> <name>Aout</name> <type>$type</type> diff --git a/grc/blocks/wxgui_constellationsink2.xml b/grc/blocks/wxgui_constellationsink2.xml index 5969d8405..598b55064 100644 --- a/grc/blocks/wxgui_constellationsink2.xml +++ b/grc/blocks/wxgui_constellationsink2.xml @@ -23,6 +23,9 @@ constsink_gl.const_sink_c( gain_mu=$gain_mu, symbol_rate=$symbol_rate, omega_limit=$omega_limit, +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -103,6 +106,13 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <type>real</type> </param> <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -114,11 +124,14 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <sink> <name>in</name> <type>complex</type> </sink> <doc> +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. diff --git a/grc/blocks/wxgui_fftsink2.xml b/grc/blocks/wxgui_fftsink2.xml index 6f19f1aa4..8df8f90d0 100644 --- a/grc/blocks/wxgui_fftsink2.xml +++ b/grc/blocks/wxgui_fftsink2.xml @@ -7,6 +7,7 @@ <block> <name>FFT Sink</name> <key>wxgui_fftsink2</key> + <import>from gnuradio import window</import> <import>from gnuradio.wxgui import fftsink2</import> <make>#set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' fftsink2.$(type.fcn)( @@ -23,6 +24,12 @@ fftsink2.$(type.fcn)( avg_alpha=#if $avg_alpha() then $avg_alpha else 'None'#, title=$title, peak_hold=$peak_hold, +#if $win() + win=$win, +#end if +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -141,7 +148,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <key>average</key> <value>False</value> <type>enum</type> - <hide>#if $average() == 'True' then 'none' else 'part'#</hide> + <hide>part</hide> <option> <name>On</name> <key>True</key> @@ -159,6 +166,44 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <hide>#if $average() == 'True' then 'none' else 'all'#</hide> </param> <param> + <name>Window</name> + <key>win</key> + <value>None</value> + <type>raw</type> + <hide>#if $win() is None then 'part' else 'none'#</hide> + <option> + <name>Automatic</name> + <key>None</key> + </option> + <option> + <name>Blackman-Harris</name> + <key>window.blackmanharris</key> + </option> + <option> + <name>Hamming</name> + <key>window.hamming</key> + </option> + <option> + <name>Hanning</name> + <key>window.hanning</key> + </option> + <option> + <name>Rectangular</name> + <key>window.rectangular</key> + </option> + <option> + <name>Flattop</name> + <key>window.flattop</key> + </option> + </param> + <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -170,6 +215,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <sink> <name>in</name> <type>$type</type> @@ -177,6 +223,8 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <doc> Set Average Alpha to 0 for automatic setting. +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. diff --git a/grc/blocks/wxgui_histosink2.xml b/grc/blocks/wxgui_histosink2.xml index 454a4932c..9edf9650d 100644 --- a/grc/blocks/wxgui_histosink2.xml +++ b/grc/blocks/wxgui_histosink2.xml @@ -14,6 +14,9 @@ histosink_gl.histo_sink_f( title=$title, num_bins=$num_bins, frame_size=$frame_size, +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -41,6 +44,13 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <type>int</type> </param> <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -52,11 +62,14 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <sink> <name>in</name> <type>float</type> </sink> <doc> +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. diff --git a/grc/blocks/wxgui_numbersink2.xml b/grc/blocks/wxgui_numbersink2.xml index cc66cdcb0..ad93dec08 100644 --- a/grc/blocks/wxgui_numbersink2.xml +++ b/grc/blocks/wxgui_numbersink2.xml @@ -24,6 +24,9 @@ numbersink2.$(type.fcn)( label=$title, peak_hold=$peak_hold, show_gauge=$show_gauge, +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -120,7 +123,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <key>average</key> <value>False</value> <type>enum</type> - <hide>#if $average() == 'True' then 'none' else 'part'#</hide> + <hide>part</hide> <option> <name>On</name> <key>True</key> @@ -152,6 +155,13 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) </option> </param> <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -163,6 +173,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <sink> <name>in</name> <type>$type</type> @@ -170,6 +181,8 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <doc> Set Average Alpha to 0 for automatic setting. +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. diff --git a/grc/blocks/wxgui_scopesink2.xml b/grc/blocks/wxgui_scopesink2.xml index 503d52972..eba45f489 100644 --- a/grc/blocks/wxgui_scopesink2.xml +++ b/grc/blocks/wxgui_scopesink2.xml @@ -15,10 +15,14 @@ scopesink2.$(type.fcn)( title=$title, sample_rate=$samp_rate, v_scale=$v_scale, + v_offset=$v_offset, t_scale=$t_scale, ac_couple=$ac_couple, xy_mode=$xy_mode, num_inputs=$num_inputs, +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -59,19 +63,28 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <key>v_scale</key> <value>0</value> <type>real</type> + <hide>#if $v_scale() then 'none' else 'part'#</hide> + </param> + <param> + <name>V Offset</name> + <key>v_offset</key> + <value>0</value> + <type>real</type> + <hide>#if $v_offset() then 'none' else 'part'#</hide> </param> <param> <name>T Scale</name> <key>t_scale</key> <value>0</value> <type>real</type> + <hide>#if $t_scale() then 'none' else 'part'#</hide> </param> <param> <name>AC Couple</name> <key>ac_couple</key> <value>False</value> - <type>enum</type> - <hide>#if $ac_couple() == 'True' then 'none' else 'part'#</hide> + <type>bool</type> + <hide>#if $ac_couple() then 'none' else 'part'#</hide> <option> <name>Off</name> <key>False</key> @@ -103,6 +116,13 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <type>int</type> </param> <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -114,6 +134,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <check>not $xy_mode or '$type' == 'complex' or $num_inputs != 1</check> <sink> <name>in</name> @@ -127,6 +148,8 @@ Set the T Scale to 0 for automatic setting. XY Mode allows the scope to initialize as an XY plotter. +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. diff --git a/grc/blocks/wxgui_termsink.xml b/grc/blocks/wxgui_termsink.xml new file mode 100644 index 000000000..985d89b58 --- /dev/null +++ b/grc/blocks/wxgui_termsink.xml @@ -0,0 +1,55 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Terminal window +################################################### + --> +<block> + <name>Terminal Sink</name> + <key>wxgui_termsink</key> + + <import>from gnuradio.wxgui import termsink</import> + + <make>#set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +termsink.termsink( + parent=$(parent).GetWin(), +#if $win_size() + size=$win_size, +#end if + msgq=$(id)_msgq_in, +) +#if not $grid_pos() +$(parent).Add(self.$(id)) +#else +$(parent).GridAdd(self.$(id), $(', '.join(map(str, $grid_pos())))) +#end if</make> + + <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> + <name>Grid Position</name> + <key>grid_pos</key> + <value></value> + <type>grid_pos</type> + </param> + + <param> + <name>Notebook</name> + <key>notebook</key> + <value></value> + <type>notebook</type> + </param> + + <check>not $win_size or len($win_size) == 2</check> + + <sink> + <name>in</name> + <type>msg</type> + </sink> + +</block> diff --git a/grc/blocks/wxgui_waterfallsink2.xml b/grc/blocks/wxgui_waterfallsink2.xml index 35790f820..3de67597f 100644 --- a/grc/blocks/wxgui_waterfallsink2.xml +++ b/grc/blocks/wxgui_waterfallsink2.xml @@ -7,6 +7,7 @@ <block> <name>Waterfall Sink</name> <key>wxgui_waterfallsink2</key> + <import>from gnuradio import window</import> <import>from gnuradio.wxgui import waterfallsink2</import> <make>#set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' waterfallsink2.$(type.fcn)( @@ -18,9 +19,15 @@ waterfallsink2.$(type.fcn)( sample_rate=$samp_rate, fft_size=$fft_size, fft_rate=$fft_rate, - average=$options.average, + average=$average, avg_alpha=#if $avg_alpha() then $avg_alpha else 'None'#, title=$title, +#if $win() + win=$win, +#end if +#if $win_size() + size=$win_size, +#end if ) #if not $grid_pos() $(parent).Add(self.$(id).win) @@ -94,28 +101,66 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <type>int</type> </param> <param> + <name>Average</name> + <key>average</key> + <value>False</value> + <type>enum</type> + <hide>part</hide> + <option> + <name>On</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <param> <name>Average Alpha</name> <key>avg_alpha</key> <value>0</value> <type>real</type> + <hide>#if $average() == 'True' then 'none' else 'all'#</hide> </param> <param> - <name>Options</name> - <key>options</key> - <value>none</value> - <type>enum</type> + <name>Window</name> + <key>win</key> + <value>None</value> + <type>raw</type> + <hide>#if $win() is None then 'part' else 'none'#</hide> + <option> + <name>Automatic</name> + <key>None</key> + </option> <option> - <name>None</name> - <key>none</key> - <opt>average:False</opt> + <name>Blackman-Harris</name> + <key>window.blackmanharris</key> </option> <option> - <name>Average</name> - <key>average</key> - <opt>average:True</opt> + <name>Hamming</name> + <key>window.hamming</key> + </option> + <option> + <name>Hanning</name> + <key>window.hanning</key> + </option> + <option> + <name>Rectangular</name> + <key>window.rectangular</key> + </option> + <option> + <name>Flattop</name> + <key>window.flattop</key> </option> </param> <param> + <name>Window Size</name> + <key>win_size</key> + <value></value> + <type>int_vector</type> + <hide>#if $win_size() then 'none' else 'part'#</hide> + </param> + <param> <name>Grid Position</name> <key>grid_pos</key> <value></value> @@ -127,6 +172,7 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <value></value> <type>notebook</type> </param> + <check>not $win_size or len($win_size) == 2</check> <sink> <name>in</name> <type>$type</type> @@ -134,6 +180,8 @@ $(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) <doc> Set Average Alpha to 0 for automatic setting. +Leave the window blank for the default size, otherwise enter a tuple of (width, height) pixels. + Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. |