From d692a41f98e7b888c745efbb9fcbbb0400f39025 Mon Sep 17 00:00:00 2001 From: Eric Blossom Date: Wed, 24 Nov 2010 17:29:11 -0800 Subject: Major Makefile.am housecleaning. Passes distcheck. Move all occurrences of swig_built_sources out of Makefile.am's. Move all SWIG related use of BUILT_SOURCES out of Makefile.am's. Clean up 'if PYTHON' conditionalization in gr-* Still left to do: fix Makefile.swig CLEANFILES and no_dist_files such that they remove exactly the generated files. --- gr-wxgui/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gr-wxgui') diff --git a/gr-wxgui/Makefile.am b/gr-wxgui/Makefile.am index 335ebe43f..cee66e587 100644 --- a/gr-wxgui/Makefile.am +++ b/gr-wxgui/Makefile.am @@ -21,7 +21,7 @@ include $(top_srcdir)/Makefile.common -EXTRA_DIST = \ +EXTRA_DIST += \ gr-wxgui.pc.in \ README \ README.gl -- cgit From f0537a7da4571bd6aaab273a0588eaef04121648 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 21 Jan 2011 15:20:45 -0800 Subject: grc: moved wxgui blocks and python into gr-wxgui/grc Prefixed wxgui blocks with WX GUI in the block names. Added category to wxgui variables blocks (not in the main block tree.xml) --- gr-wxgui/Makefile.am | 2 +- gr-wxgui/grc/.gitignore | 2 + gr-wxgui/grc/Makefile.am | 44 ++++++ gr-wxgui/grc/__init__.py | 22 +++ gr-wxgui/grc/panel.py | 49 +++++++ gr-wxgui/grc/top_block_gui.py | 74 ++++++++++ gr-wxgui/grc/variable_check_box.xml | 85 +++++++++++ gr-wxgui/grc/variable_chooser.xml | 123 ++++++++++++++++ gr-wxgui/grc/variable_slider.xml | 139 ++++++++++++++++++ gr-wxgui/grc/variable_static_text.xml | 98 +++++++++++++ gr-wxgui/grc/variable_text_box.xml | 102 +++++++++++++ gr-wxgui/grc/wxgui_constellationsink2.xml | 139 ++++++++++++++++++ gr-wxgui/grc/wxgui_fftsink2.xml | 232 ++++++++++++++++++++++++++++++ gr-wxgui/grc/wxgui_histosink2.xml | 77 ++++++++++ gr-wxgui/grc/wxgui_numbersink2.xml | 192 +++++++++++++++++++++++++ gr-wxgui/grc/wxgui_scopesink2.xml | 186 ++++++++++++++++++++++++ gr-wxgui/grc/wxgui_termsink.xml | 55 +++++++ gr-wxgui/grc/wxgui_waterfallsink2.xml | 189 ++++++++++++++++++++++++ 18 files changed, 1809 insertions(+), 1 deletion(-) create mode 100644 gr-wxgui/grc/.gitignore create mode 100644 gr-wxgui/grc/Makefile.am create mode 100644 gr-wxgui/grc/__init__.py create mode 100644 gr-wxgui/grc/panel.py create mode 100644 gr-wxgui/grc/top_block_gui.py create mode 100644 gr-wxgui/grc/variable_check_box.xml create mode 100644 gr-wxgui/grc/variable_chooser.xml create mode 100644 gr-wxgui/grc/variable_slider.xml create mode 100644 gr-wxgui/grc/variable_static_text.xml create mode 100644 gr-wxgui/grc/variable_text_box.xml create mode 100644 gr-wxgui/grc/wxgui_constellationsink2.xml create mode 100644 gr-wxgui/grc/wxgui_fftsink2.xml create mode 100644 gr-wxgui/grc/wxgui_histosink2.xml create mode 100644 gr-wxgui/grc/wxgui_numbersink2.xml create mode 100644 gr-wxgui/grc/wxgui_scopesink2.xml create mode 100644 gr-wxgui/grc/wxgui_termsink.xml create mode 100644 gr-wxgui/grc/wxgui_waterfallsink2.xml (limited to 'gr-wxgui') diff --git a/gr-wxgui/Makefile.am b/gr-wxgui/Makefile.am index cee66e587..cfc7a429c 100644 --- a/gr-wxgui/Makefile.am +++ b/gr-wxgui/Makefile.am @@ -27,7 +27,7 @@ EXTRA_DIST += \ README.gl if PYTHON -SUBDIRS = src +SUBDIRS = src grc etcdir = $(gr_prefsdir) dist_etc_DATA = gr-wxgui.conf diff --git a/gr-wxgui/grc/.gitignore b/gr-wxgui/grc/.gitignore new file mode 100644 index 000000000..b336cc7ce --- /dev/null +++ b/gr-wxgui/grc/.gitignore @@ -0,0 +1,2 @@ +/Makefile +/Makefile.in diff --git a/gr-wxgui/grc/Makefile.am b/gr-wxgui/grc/Makefile.am new file mode 100644 index 000000000..26217077a --- /dev/null +++ b/gr-wxgui/grc/Makefile.am @@ -0,0 +1,44 @@ +# +# Copyright 2011 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +include $(top_srcdir)/Makefile.common + +grcblocksdir = $(grc_blocksdir) +dist_grcblocks_DATA = \ + variable_check_box.xml \ + variable_chooser.xml \ + variable_slider.xml \ + variable_static_text.xml \ + variable_text_box.xml \ + wxgui_constellationsink2.xml \ + wxgui_fftsink2.xml \ + wxgui_histosink2.xml \ + wxgui_numbersink2.xml \ + wxgui_scopesink2.xml \ + wxgui_termsink.xml \ + wxgui_waterfallsink2.xml + +#The wxgui module contains a top_block + wxgui frame. +wxgui_pythondir = $(pythondir)/grc_gnuradio/wxgui +wxgui_python_PYTHON = \ + __init__.py \ + panel.py \ + top_block_gui.py diff --git a/gr-wxgui/grc/__init__.py b/gr-wxgui/grc/__init__.py new file mode 100644 index 000000000..81427253b --- /dev/null +++ b/gr-wxgui/grc/__init__.py @@ -0,0 +1,22 @@ +# Copyright 2008, 2009 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from top_block_gui import top_block_gui +from panel import Panel diff --git a/gr-wxgui/grc/panel.py b/gr-wxgui/grc/panel.py new file mode 100644 index 000000000..e62133cac --- /dev/null +++ b/gr-wxgui/grc/panel.py @@ -0,0 +1,49 @@ +# Copyright 2009 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +import wx + +class Panel(wx.Panel): + def __init__(self, parent, orient=wx.VERTICAL): + wx.Panel.__init__(self, parent) + self._box = wx.BoxSizer(orient) + self._grid = wx.GridBagSizer(5, 5) + self.Add(self._grid) + self.SetSizer(self._box) + + def GetWin(self): return self + + def Add(self, win): + """ + Add a window to the wx vbox. + @param win the wx window + """ + self._box.Add(win, 0, wx.EXPAND) + + def GridAdd(self, win, row, col, row_span=1, col_span=1): + """ + Add a window to the wx grid at the given position. + @param win the wx window + @param row the row specification (integer >= 0) + @param col the column specification (integer >= 0) + @param row_span the row span specification (integer >= 1) + @param col_span the column span specification (integer >= 1) + """ + self._grid.Add(win, wx.GBPosition(row, col), wx.GBSpan(row_span, col_span), wx.EXPAND) diff --git a/gr-wxgui/grc/top_block_gui.py b/gr-wxgui/grc/top_block_gui.py new file mode 100644 index 000000000..333ccf1c1 --- /dev/null +++ b/gr-wxgui/grc/top_block_gui.py @@ -0,0 +1,74 @@ +# Copyright 2008, 2009 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +import wx +from gnuradio import gr +import panel + +default_gui_size = (200, 100) + +class top_block_gui(gr.top_block): + """gr top block with wx gui app and grid sizer.""" + + def __init__(self, title='', size=default_gui_size): + """ + Initialize the gr top block. + Create the wx gui elements. + @param title the main window title + @param size the main window size tuple in pixels + @param icon the file path to an icon or None + """ + #initialize + gr.top_block.__init__(self) + self._size = size + #create gui elements + self._app = wx.App() + self._frame = wx.Frame(None, title=title) + self._panel = panel.Panel(self._frame) + self.Add = self._panel.Add + self.GridAdd = self._panel.GridAdd + self.GetWin = self._panel.GetWin + + def SetIcon(self, *args, **kwargs): self._frame.SetIcon(*args, **kwargs) + + def Run(self, start=True): + """ + Setup the wx gui elements. + Start the gr top block. + Block with the wx main loop. + """ + #set minimal window size + self._frame.SetSizeHints(*self._size) + #create callback for quit + def _quit(event): + self.stop(); self.wait() + self._frame.Destroy() + #setup app + self._frame.Bind(wx.EVT_CLOSE, _quit) + self._sizer = wx.BoxSizer(wx.VERTICAL) + self._sizer.Add(self._panel, 0, wx.EXPAND) + self._frame.SetSizerAndFit(self._sizer) + self._frame.SetAutoLayout(True) + self._frame.Show(True) + self._app.SetTopWindow(self._frame) + #start flow graph + if start: self.start() + #blocking main loop + self._app.MainLoop() diff --git a/gr-wxgui/grc/variable_check_box.xml b/gr-wxgui/grc/variable_check_box.xml new file mode 100644 index 000000000..d1e4d990c --- /dev/null +++ b/gr-wxgui/grc/variable_check_box.xml @@ -0,0 +1,85 @@ + + + + WX GUI Check Box + variable_check_box + Variables + from gnuradio.wxgui import forms + self.$(id) = $(id) = $value + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +#set $win = 'self._%s_check_box'%$id +$win = forms.check_box( + parent=$(parent).GetWin(), + value=self.$id, + callback=self.set_$(id), + #if $label() + label=$label, + #else + label='$id', + #end if + true=$true, + false=$false, +) +#if not $grid_pos() +$(parent).Add($win) +#else +$(parent).GridAdd($win, $(', '.join(map(str, $grid_pos())))) +#end if + self.set_$(id)($value) + self._$(id)_check_box.set_value($id) + + Label + label + + string + #if $label() then 'none' else 'part'# + + + Default Value + value + True + raw + + + True + true + True + raw + + + False + false + False + raw + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + $value in ($true, $false) + +This block creates a variable with a check box form. \ +Leave the label blank to use the variable id as the label. + +A check box form can switch between two states; \ +the default being True and False. \ +Override True and False to use alternative states. + +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/gr-wxgui/grc/variable_chooser.xml b/gr-wxgui/grc/variable_chooser.xml new file mode 100644 index 000000000..99bf4389c --- /dev/null +++ b/gr-wxgui/grc/variable_chooser.xml @@ -0,0 +1,123 @@ + + + + WX GUI Chooser + variable_chooser + Variables + from gnuradio.wxgui import forms + self.$(id) = $(id) = $value + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +#set $win = 'self._%s_chooser'%$id +$win = forms.$(type)( + parent=$(parent).GetWin(), + value=self.$id, + callback=self.set_$(id), + #if $label() + label=$label, + #else + label='$id', + #end if + choices=$choices, + labels=$labels, +#if $type() == 'radio_buttons' + style=$style, +#end if +) +#if not $grid_pos() +$(parent).Add($win) +#else +$(parent).GridAdd($win, $(', '.join(map(str, $grid_pos())))) +#end if + self.set_$(id)($value) + self._$(id)_chooser.set_value($id) + + Label + label + + string + #if $label() then 'none' else 'part'# + + + Default Value + value + 1 + raw + + + Choices + choices + [1, 2, 3] + raw + + + Labels + labels + [] + raw + + + Type + type + drop_down + enum + + + + + + Style + style + wx.RA_HORIZONTAL + enum + #if $type() == 'radio_buttons' then 'part' else 'all'# + + + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + $value in $choices + not $labels or len($labels) == len($choices) + +This block creates a variable with a drop down, radio buttons, or a button. \ +Leave the label blank to use the variable id as the label. \ +The value index is the index of a particular choice, \ +which defines the default choice when the flow graph starts. \ +The choices must be a list of possible values. \ +Leave labels empty to use the choices as the labels. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + +Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. + + diff --git a/gr-wxgui/grc/variable_slider.xml b/gr-wxgui/grc/variable_slider.xml new file mode 100644 index 000000000..09aa4d3d7 --- /dev/null +++ b/gr-wxgui/grc/variable_slider.xml @@ -0,0 +1,139 @@ + + + + WX GUI Slider + variable_slider + Variables + from gnuradio.wxgui import forms + self.$(id) = $(id) = $value + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +#set $win = '_%s_sizer'%$id +$win = wx.BoxSizer(wx.VERTICAL) +self._$(id)_text_box = forms.text_box( + parent=$(parent).GetWin(), + sizer=$win, + value=self.$id, + callback=self.set_$(id), + #if $label() + label=$label, + #else + label='$id', + #end if + converter=forms.$(converver)(), + proportion=0, +) +self._$(id)_slider = forms.slider( + parent=$(parent).GetWin(), + sizer=$win, + value=self.$id, + callback=self.set_$(id), + minimum=$min, + maximum=$max, + num_steps=$num_steps, + style=$style, + cast=$(converver.slider_cast), + proportion=1, +) +#if not $grid_pos() +$(parent).Add($win) +#else +$(parent).GridAdd($win, $(', '.join(map(str, $grid_pos())))) +#end if + self.set_$(id)($value) + self._$(id)_slider.set_value($id) + self._$(id)_text_box.set_value($id) + + Label + label + + string + #if $label() then 'none' else 'part'# + + + Default Value + value + 50 + real + + + Minimum + min + 0 + real + + + Maximum + max + 100 + real + + + Num Steps + num_steps + 100 + int + part + + + Style + style + wx.SL_HORIZONTAL + enum + part + + + + + Converter + converver + float_converter + enum + + + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + $min <= $value <= $max + $min < $max + 0 < $num_steps <= 1000 + +This block creates a variable with a slider. \ +Leave the label blank to use the variable id as the label. \ +The value must be a real number. \ +The value must be between the minimum and the maximum. \ +The number of steps must be between 0 and 1000. + +Use the Grid Position (row, column, row span, column span) to position the graphical element in the window. + +Use the Notebook Param (notebook-id, page-index) to place the graphical element inside of a notebook page. + + diff --git a/gr-wxgui/grc/variable_static_text.xml b/gr-wxgui/grc/variable_static_text.xml new file mode 100644 index 000000000..d7bb30eea --- /dev/null +++ b/gr-wxgui/grc/variable_static_text.xml @@ -0,0 +1,98 @@ + + + + WX GUI Static Text + variable_static_text + Variables + from gnuradio.wxgui import forms + self.$(id) = $(id) = $value + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +#set $win = 'self._%s_static_text'%$id +$win = forms.static_text( + parent=$(parent).GetWin(), + value=self.$id, + callback=self.set_$(id), + #if $label() + label=$label, + #else + label='$id', + #end if + #if $formatter() + converter=forms.$(converver)(formatter=$formatter), + #else + converter=forms.$(converver)(), + #end if +) +#if not $grid_pos() +$(parent).Add($win) +#else +$(parent).GridAdd($win, $(', '.join(map(str, $grid_pos())))) +#end if + self.set_$(id)($value) + self._$(id)_static_text.set_value($id) + + Label + label + + string + #if $label() then 'none' else 'part'# + + + Default Value + value + 0 + raw + + + Converter + converver + float_converter + enum + + + + + + Formatter + formatter + None + raw + part + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + +This block creates a variable with a static text form. \ +Leave the label blank to use the variable id as the label. + +Format should be a function/lambda that converts a value into a string or None for the default formatter. + +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/gr-wxgui/grc/variable_text_box.xml b/gr-wxgui/grc/variable_text_box.xml new file mode 100644 index 000000000..c5416aee7 --- /dev/null +++ b/gr-wxgui/grc/variable_text_box.xml @@ -0,0 +1,102 @@ + + + + WX GUI Text Box + variable_text_box + Variables + from gnuradio.wxgui import forms + self.$(id) = $(id) = $value + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +#set $win = 'self._%s_text_box'%$id +$win = forms.text_box( + parent=$(parent).GetWin(), + value=self.$id, + callback=self.set_$(id), + #if $label() + label=$label, + #else + label='$id', + #end if + #if $formatter() + converter=forms.$(converver)(formatter=$formatter), + #else + converter=forms.$(converver)(), + #end if +) +#if not $grid_pos() +$(parent).Add($win) +#else +$(parent).GridAdd($win, $(', '.join(map(str, $grid_pos())))) +#end if + self.set_$(id)($value) + self._$(id)_text_box.set_value($id) + + Label + label + + string + #if $label() then 'none' else 'part'# + + + Default Value + value + 0 + raw + + + Converter + converver + float_converter + enum + + + + + + + Formatter + formatter + None + raw + part + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + +This block creates a variable with a text box. \ +Leave the label blank to use the variable id as the label. + +Format should be a function/lambda that converts a value into a string or None for the default formatter. + +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/gr-wxgui/grc/wxgui_constellationsink2.xml b/gr-wxgui/grc/wxgui_constellationsink2.xml new file mode 100644 index 000000000..881c6eba3 --- /dev/null +++ b/gr-wxgui/grc/wxgui_constellationsink2.xml @@ -0,0 +1,139 @@ + + + + WX GUI Constellation Sink + wxgui_constellationsink2 + from gnuradio.wxgui import constsink_gl + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +constsink_gl.const_sink_c( + $(parent).GetWin(), + title=$title, + sample_rate=$samp_rate, + frame_rate=$frame_rate, + const_size=$const_size, + M=$M, + theta=$theta, + alpha=$alpha, + fmax=$fmax, + mu=$mu, + 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) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + set_sample_rate($samp_rate) + + Title + title + Constellation Plot + string + + + Sample Rate + samp_rate + samp_rate + real + + + Frame Rate + frame_rate + 5 + real + + + Constellation Size + const_size + 2048 + real + + + M + M + 4 + int + + + Theta + theta + 0 + real + + + Alpha + alpha + 0.005 + real + + + Max Freq + fmax + 0.06 + real + + + Mu + mu + 0.5 + real + + + Gain Mu + gain_mu + 0.005 + real + + + Symbol Rate + symbol_rate + samp_rate/4. + real + + + Omega Limit + omega_limit + 0.005 + real + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + not $win_size or len($win_size) == 2 + + in + complex + + +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/gr-wxgui/grc/wxgui_fftsink2.xml b/gr-wxgui/grc/wxgui_fftsink2.xml new file mode 100644 index 000000000..b06220d1e --- /dev/null +++ b/gr-wxgui/grc/wxgui_fftsink2.xml @@ -0,0 +1,232 @@ + + + + WX GUI FFT Sink + wxgui_fftsink2 + from gnuradio import window + from gnuradio.wxgui import fftsink2 + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +fftsink2.$(type.fcn)( + $(parent).GetWin(), + baseband_freq=$baseband_freq, + y_per_div=$y_per_div, + y_divs=$y_divs, + ref_level=$ref_level, + ref_scale=$ref_scale, + sample_rate=$samp_rate, + fft_size=$fft_size, + fft_rate=$fft_rate, + average=$average, + 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) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + set_baseband_freq($baseband_freq) + set_sample_rate($samp_rate) + + Type + type + complex + enum + + + + + Title + title + FFT Plot + string + + + Sample Rate + samp_rate + samp_rate + real + + + Baseband Freq + baseband_freq + 0 + real + + + Y per Div + y_per_div + 10 + enum + + + + + + + + Y Divs + y_divs + 10 + int + + + Ref Level (dB) + ref_level + 50 + real + + + Ref Scale (p2p) + ref_scale + 2.0 + real + + + FFT Size + fft_size + 1024 + int + + + Refresh Rate + fft_rate + 30 + int + + + Peak Hold + peak_hold + False + enum + #if $peak_hold() == 'True' then 'none' else 'part'# + + + + + Average + average + False + enum + part + + + + + Average Alpha + avg_alpha + 0 + real + #if $average() == 'True' then 'none' else 'all'# + + + Window + win + None + raw + #if $win() is None then 'part' else 'none'# + + + + + + + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + not $win_size or len($win_size) == 2 + + in + $type + + +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/gr-wxgui/grc/wxgui_histosink2.xml b/gr-wxgui/grc/wxgui_histosink2.xml new file mode 100644 index 000000000..2f475fe2e --- /dev/null +++ b/gr-wxgui/grc/wxgui_histosink2.xml @@ -0,0 +1,77 @@ + + + + WX GUI Histo Sink + wxgui_histosink2 + from gnuradio.wxgui import histosink_gl + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +histosink_gl.histo_sink_f( + $(parent).GetWin(), + 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) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + set_num_bins($num_bins) + set_frame_size($frame_size) + + Title + title + Histogram Plot + string + + + Num Bins + num_bins + 27 + int + + + Frame Size + frame_size + 1000 + int + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + not $win_size or len($win_size) == 2 + + in + float + + +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/gr-wxgui/grc/wxgui_numbersink2.xml b/gr-wxgui/grc/wxgui_numbersink2.xml new file mode 100644 index 000000000..b3b4cb254 --- /dev/null +++ b/gr-wxgui/grc/wxgui_numbersink2.xml @@ -0,0 +1,192 @@ + + + + WX GUI Number Sink + wxgui_numbersink2 + from gnuradio.wxgui import numbersink2 + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +numbersink2.$(type.fcn)( + $(parent).GetWin(), + unit=$units, + minval=$min_value, + maxval=$max_value, + factor=$factor, + decimal_places=$decimal_places, + ref_level=$ref_level, + sample_rate=$samp_rate, + number_rate=$number_rate, + average=$average, + avg_alpha=#if $avg_alpha() then $avg_alpha else 'None'#, + 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) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + + Type + type + complex + enum + + + + + Title + title + Number Plot + string + + + Units + units + Units + string + + + Sample Rate + samp_rate + samp_rate + real + + + Min Value + min_value + -100 + real + + + Max Value + max_value + 100 + real + + + Factor + factor + 1.0 + real + + + Decimal Places + decimal_places + 10 + int + + + Reference Level + ref_level + 0 + real + + + Number Rate + number_rate + 15 + int + + + Peak Hold + peak_hold + False + enum + #if $peak_hold() == 'True' then 'none' else 'part'# + + + + + Average + average + False + enum + part + + + + + Average Alpha + avg_alpha + 0 + real + #if $average() == 'True' then 'none' else 'all'# + + + Show Gauge + show_gauge + True + enum + + + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + not $win_size or len($win_size) == 2 + + in + $type + + +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. + +Incoming numbers are multiplied by the factor, and then added-to by the reference level. + + diff --git a/gr-wxgui/grc/wxgui_scopesink2.xml b/gr-wxgui/grc/wxgui_scopesink2.xml new file mode 100644 index 000000000..43922f45e --- /dev/null +++ b/gr-wxgui/grc/wxgui_scopesink2.xml @@ -0,0 +1,186 @@ + + + + WX GUI Scope Sink + wxgui_scopesink2 + from gnuradio.wxgui import scopesink2 + from gnuradio import gr + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +scopesink2.$(type.fcn)( + $(parent).GetWin(), + 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, + trig_mode=$trig_mode, + y_axis_label=$y_axis_label, +#if $win_size() + size=$win_size, +#end if +) +#if not $grid_pos() +$(parent).Add(self.$(id).win) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + set_sample_rate($samp_rate) + + Type + type + complex + enum + + + + + Title + title + Scope Plot + string + + + Sample Rate + samp_rate + samp_rate + real + + + V Scale + v_scale + 0 + real + #if $v_scale() then 'none' else 'part'# + + + V Offset + v_offset + 0 + real + #if $v_offset() then 'none' else 'part'# + + + T Scale + t_scale + 0 + real + #if $t_scale() then 'none' else 'part'# + + + AC Couple + ac_couple + False + bool + #if $ac_couple() then 'none' else 'part'# + + + + + XY Mode + xy_mode + False + enum + #if $xy_mode() == 'True' then 'none' else 'part'# + + + + + Num Inputs + num_inputs + 1 + int + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + + Trigger Mode + trig_mode + enum + + + + + + + Y Axis Label + y_axis_label + Counts + string + + not $win_size or len($win_size) == 2 + not $xy_mode or '$type' == 'complex' or $num_inputs != 1 + + in + $type + $num_inputs + + +Set the V Scale to 0 for the scope to auto-scale. + +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/gr-wxgui/grc/wxgui_termsink.xml b/gr-wxgui/grc/wxgui_termsink.xml new file mode 100644 index 000000000..ae15b98a6 --- /dev/null +++ b/gr-wxgui/grc/wxgui_termsink.xml @@ -0,0 +1,55 @@ + + + + WX GUI Terminal Sink + wxgui_termsink + + from gnuradio.wxgui import termsink + + #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 + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + + Notebook + notebook + + notebook + + + not $win_size or len($win_size) == 2 + + + in + msg + + + diff --git a/gr-wxgui/grc/wxgui_waterfallsink2.xml b/gr-wxgui/grc/wxgui_waterfallsink2.xml new file mode 100644 index 000000000..9789994be --- /dev/null +++ b/gr-wxgui/grc/wxgui_waterfallsink2.xml @@ -0,0 +1,189 @@ + + + + WX GUI Waterfall Sink + wxgui_waterfallsink2 + from gnuradio import window + from gnuradio.wxgui import waterfallsink2 + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +waterfallsink2.$(type.fcn)( + $(parent).GetWin(), + baseband_freq=$baseband_freq, + dynamic_range=$dynamic_range, + ref_level=$ref_level, + ref_scale=$ref_scale, + sample_rate=$samp_rate, + fft_size=$fft_size, + fft_rate=$fft_rate, + 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) +#else +$(parent).GridAdd(self.$(id).win, $(', '.join(map(str, $grid_pos())))) +#end if + set_baseband_freq($baseband_freq) + set_sample_rate($samp_rate) + + Type + type + complex + enum + + + + + Title + title + Waterfall Plot + string + + + Sample Rate + samp_rate + samp_rate + real + + + Baseband Freq + baseband_freq + 0 + real + + + Dynamic Range + dynamic_range + 100 + real + + + Reference Level + ref_level + 50 + real + + + Ref Scale (p2p) + ref_scale + 2.0 + real + + + FFT Size + fft_size + 512 + int + + + FFT Rate + fft_rate + 15 + int + + + Average + average + False + enum + part + + + + + Average Alpha + avg_alpha + 0 + real + #if $average() == 'True' then 'none' else 'all'# + + + Window + win + None + raw + #if $win() is None then 'part' else 'none'# + + + + + + + + + Window Size + win_size + + int_vector + #if $win_size() then 'none' else 'part'# + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + not $win_size or len($win_size) == 2 + + in + $type + + +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. + + -- cgit From 47f621a14c9a6e3696155dd5a223da40bcb7721c Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sun, 27 Feb 2011 23:18:11 -0800 Subject: grc: work on generator for gui flowgraphs to simplify generation generator does not differentiate between notebooks and controls, they are all block, but block are now sorted by variables present in the make also adjusted categories listed in the wx and qt widget related blocks --- gr-wxgui/grc/Makefile.am | 1 + gr-wxgui/grc/notebook.xml | 70 +++++++++++++++++++++++++++++++ gr-wxgui/grc/variable_check_box.xml | 2 +- gr-wxgui/grc/variable_chooser.xml | 2 +- gr-wxgui/grc/variable_slider.xml | 2 +- gr-wxgui/grc/variable_static_text.xml | 2 +- gr-wxgui/grc/variable_text_box.xml | 2 +- gr-wxgui/grc/wxgui_constellationsink2.xml | 1 + gr-wxgui/grc/wxgui_fftsink2.xml | 1 + gr-wxgui/grc/wxgui_histosink2.xml | 1 + gr-wxgui/grc/wxgui_numbersink2.xml | 1 + gr-wxgui/grc/wxgui_scopesink2.xml | 1 + gr-wxgui/grc/wxgui_termsink.xml | 1 + gr-wxgui/grc/wxgui_waterfallsink2.xml | 1 + 14 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 gr-wxgui/grc/notebook.xml (limited to 'gr-wxgui') diff --git a/gr-wxgui/grc/Makefile.am b/gr-wxgui/grc/Makefile.am index 26217077a..d8c7b3471 100644 --- a/gr-wxgui/grc/Makefile.am +++ b/gr-wxgui/grc/Makefile.am @@ -23,6 +23,7 @@ include $(top_srcdir)/Makefile.common grcblocksdir = $(grc_blocksdir) dist_grcblocks_DATA = \ + notebook.xml \ variable_check_box.xml \ variable_chooser.xml \ variable_slider.xml \ diff --git a/gr-wxgui/grc/notebook.xml b/gr-wxgui/grc/notebook.xml new file mode 100644 index 000000000..bb3de51cb --- /dev/null +++ b/gr-wxgui/grc/notebook.xml @@ -0,0 +1,70 @@ + + + + WX GUI Notebook + notebook + WX GUI Widgets + from grc_gnuradio import wxgui as grc_wxgui + #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' +self.$(id) = wx.Notebook($(parent).GetWin(), style=$style) +#for $label in $labels() +self.$(id).AddPage(grc_wxgui.Panel(self.$(id)), "$label") +#end for +#if not $grid_pos() +$(parent).Add(self.$(id)) +#else +$(parent).GridAdd(self.$(id), $(', '.join(map(str, $grid_pos())))) +#end if + + Tab Orientation + style + wx.NB_TOP + enum + + + + + + + Labels + labels + ['tab1', 'tab2', 'tab3'] + raw + + + Grid Position + grid_pos + + grid_pos + + + Notebook + notebook + + notebook + + isinstance($labels, (list, tuple)) + all(map(lambda x: isinstance(x, str), $labels)) + len($labels) > 0 + +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/gr-wxgui/grc/variable_check_box.xml b/gr-wxgui/grc/variable_check_box.xml index d1e4d990c..0c7bd1081 100644 --- a/gr-wxgui/grc/variable_check_box.xml +++ b/gr-wxgui/grc/variable_check_box.xml @@ -8,7 +8,7 @@ WX GUI Check Box variable_check_box - Variables + WX GUI Widgets from gnuradio.wxgui import forms self.$(id) = $(id) = $value #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/variable_chooser.xml b/gr-wxgui/grc/variable_chooser.xml index 99bf4389c..e16e88c5d 100644 --- a/gr-wxgui/grc/variable_chooser.xml +++ b/gr-wxgui/grc/variable_chooser.xml @@ -9,7 +9,7 @@ WX GUI Chooser variable_chooser - Variables + WX GUI Widgets from gnuradio.wxgui import forms self.$(id) = $(id) = $value #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/variable_slider.xml b/gr-wxgui/grc/variable_slider.xml index 09aa4d3d7..5e3c175aa 100644 --- a/gr-wxgui/grc/variable_slider.xml +++ b/gr-wxgui/grc/variable_slider.xml @@ -8,7 +8,7 @@ WX GUI Slider variable_slider - Variables + WX GUI Widgets from gnuradio.wxgui import forms self.$(id) = $(id) = $value #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/variable_static_text.xml b/gr-wxgui/grc/variable_static_text.xml index d7bb30eea..cd122e76a 100644 --- a/gr-wxgui/grc/variable_static_text.xml +++ b/gr-wxgui/grc/variable_static_text.xml @@ -8,7 +8,7 @@ WX GUI Static Text variable_static_text - Variables + WX GUI Widgets from gnuradio.wxgui import forms self.$(id) = $(id) = $value #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/variable_text_box.xml b/gr-wxgui/grc/variable_text_box.xml index c5416aee7..afff839cf 100644 --- a/gr-wxgui/grc/variable_text_box.xml +++ b/gr-wxgui/grc/variable_text_box.xml @@ -8,7 +8,7 @@ WX GUI Text Box variable_text_box - Variables + WX GUI Widgets from gnuradio.wxgui import forms self.$(id) = $(id) = $value #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/wxgui_constellationsink2.xml b/gr-wxgui/grc/wxgui_constellationsink2.xml index 881c6eba3..c200790f9 100644 --- a/gr-wxgui/grc/wxgui_constellationsink2.xml +++ b/gr-wxgui/grc/wxgui_constellationsink2.xml @@ -7,6 +7,7 @@ WX GUI Constellation Sink wxgui_constellationsink2 + WX GUI Widgets from gnuradio.wxgui import constsink_gl #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' constsink_gl.const_sink_c( diff --git a/gr-wxgui/grc/wxgui_fftsink2.xml b/gr-wxgui/grc/wxgui_fftsink2.xml index b06220d1e..9b35ab848 100644 --- a/gr-wxgui/grc/wxgui_fftsink2.xml +++ b/gr-wxgui/grc/wxgui_fftsink2.xml @@ -7,6 +7,7 @@ WX GUI FFT Sink wxgui_fftsink2 + WX GUI Widgets from gnuradio import window from gnuradio.wxgui import fftsink2 #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/wxgui_histosink2.xml b/gr-wxgui/grc/wxgui_histosink2.xml index 2f475fe2e..f4f6a2959 100644 --- a/gr-wxgui/grc/wxgui_histosink2.xml +++ b/gr-wxgui/grc/wxgui_histosink2.xml @@ -7,6 +7,7 @@ WX GUI Histo Sink wxgui_histosink2 + WX GUI Widgets from gnuradio.wxgui import histosink_gl #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' histosink_gl.histo_sink_f( diff --git a/gr-wxgui/grc/wxgui_numbersink2.xml b/gr-wxgui/grc/wxgui_numbersink2.xml index b3b4cb254..255926610 100644 --- a/gr-wxgui/grc/wxgui_numbersink2.xml +++ b/gr-wxgui/grc/wxgui_numbersink2.xml @@ -7,6 +7,7 @@ WX GUI Number Sink wxgui_numbersink2 + WX GUI Widgets from gnuradio.wxgui import numbersink2 #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' numbersink2.$(type.fcn)( diff --git a/gr-wxgui/grc/wxgui_scopesink2.xml b/gr-wxgui/grc/wxgui_scopesink2.xml index 43922f45e..dbf983e11 100644 --- a/gr-wxgui/grc/wxgui_scopesink2.xml +++ b/gr-wxgui/grc/wxgui_scopesink2.xml @@ -7,6 +7,7 @@ WX GUI Scope Sink wxgui_scopesink2 + WX GUI Widgets from gnuradio.wxgui import scopesink2 from gnuradio import gr #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' diff --git a/gr-wxgui/grc/wxgui_termsink.xml b/gr-wxgui/grc/wxgui_termsink.xml index ae15b98a6..3e35c7578 100644 --- a/gr-wxgui/grc/wxgui_termsink.xml +++ b/gr-wxgui/grc/wxgui_termsink.xml @@ -7,6 +7,7 @@ WX GUI Terminal Sink wxgui_termsink + WX GUI Widgets from gnuradio.wxgui import termsink diff --git a/gr-wxgui/grc/wxgui_waterfallsink2.xml b/gr-wxgui/grc/wxgui_waterfallsink2.xml index 9789994be..7c646c3b2 100644 --- a/gr-wxgui/grc/wxgui_waterfallsink2.xml +++ b/gr-wxgui/grc/wxgui_waterfallsink2.xml @@ -7,6 +7,7 @@ WX GUI Waterfall Sink wxgui_waterfallsink2 + WX GUI Widgets from gnuradio import window from gnuradio.wxgui import waterfallsink2 #set $parent = $notebook() and 'self.%s.GetPage(%s)'%$notebook() or 'self' -- cgit