commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r10586 - in gnuradio/branches/developers/jblum/gui_gut


From: jblum
Subject: [Commit-gnuradio] r10586 - in gnuradio/branches/developers/jblum/gui_guts: gr-wxgui/src/python gr-wxgui/src/python/plotter grc/data/platforms/python/blocks
Date: Thu, 12 Mar 2009 01:25:07 -0600 (MDT)

Author: jblum
Date: 2009-03-12 01:25:06 -0600 (Thu, 12 Mar 2009)
New Revision: 10586

Modified:
   gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/common.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/const_window.py
   gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/fft_window.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/histo_window.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/number_window.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/plotter/common.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scope_window.py
   gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink2.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink_gl.py
   
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/waterfall_window.py
   
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml
   
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_fftsink2.xml
   
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_numbersink2.xml
   
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_scopesink2.xml
Log:
WIP Simplifying some gui code and GRC gui blocks.
Const block in GRC is now actual constellation sink.



Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/common.py
===================================================================
--- gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/common.py   
2009-03-12 06:53:54 UTC (rev 10585)
+++ gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/common.py   
2009-03-12 07:25:06 UTC (rev 10586)
@@ -19,11 +19,6 @@
 # Boston, MA 02110-1301, USA.
 #
 
-import threading
-import numpy
-import math
-import wx
-
 #A macro to apply an index to a key
 index_key = lambda key, i: "%s_%d"%(key, i+1)
 
@@ -47,17 +42,10 @@
        for key in controller.keys(): _register_access_method(destination, 
controller, key)
 
 ##################################################
-# Custom Data Event
+# Input Watcher Thread
 ##################################################
-EVT_DATA = wx.PyEventBinder(wx.NewEventType())
-class DataEvent(wx.PyEvent):
-       def __init__(self, data):
-               wx.PyEvent.__init__(self, wx.NewId(), EVT_DATA.typeId)
-               self.data = data
+import threading
 
-##################################################
-# Input Watcher Thread
-##################################################
 class input_watcher(threading.Thread):
        """
        Input watcher thread runs forever.
@@ -85,6 +73,15 @@
 ##################################################
 # WX Shared Classes
 ##################################################
+import math
+import wx
+
+EVT_DATA = wx.PyEventBinder(wx.NewEventType())
+class DataEvent(wx.PyEvent):
+       def __init__(self, data):
+               wx.PyEvent.__init__(self, wx.NewId(), EVT_DATA.typeId)
+               self.data = data
+
 class LabelText(wx.StaticText):
        """
        Label text to give the wx plots a uniform look.
@@ -99,7 +96,7 @@
 class LabelBox(wx.BoxSizer):
        def __init__(self, parent, label, widget):
                wx.BoxSizer.__init__(self, wx.HORIZONTAL)
-               self.Add(wx.StaticText(parent, label=label), 1, 
wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT)
+               self.Add(wx.StaticText(parent, label=' %s '%label), 1, 
wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT)
                self.Add(widget, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT)
 
 class IncrDecrButtons(wx.BoxSizer):
@@ -120,7 +117,7 @@
                self._decr_button.Bind(wx.EVT_BUTTON, on_decr)
                self.Add(self._decr_button, 0, wx.ALIGN_CENTER_VERTICAL)
 
-       def Disable(self, disable=True): self.Enable(not disable)
+       def Disable(self): self.Enable(False)
        def Enable(self, enable=True):
                if enable:
                        self._incr_button.Enable()
@@ -171,25 +168,35 @@
        Log slider controller with display label and slider.
        Gives logarithmic scaling to slider operation.
        """
-       def __init__(self, parent, label, min_exp, max_exp, slider_steps, 
controller, control_key, formatter=lambda x: ': %.6f'%x):
+       def __init__(self, parent, prefix, min_exp, max_exp, slider_steps, 
controller, control_key, formatter=lambda x: ': %.6f'%x):
+               self._prefix = prefix
+               self._min_exp = min_exp
+               self._max_exp = max_exp
+               self._controller = controller
+               self._control_key = control_key
+               self._formatter = formatter
                wx.BoxSizer.__init__(self, wx.VERTICAL)
-               self._label = wx.StaticText(parent, label=label + 
formatter(1/3.0))
+               self._label = wx.StaticText(parent, label=prefix + 
formatter(1/3.0))
                self.Add(self._label, 0, wx.EXPAND)
-               self._slider = wx.Slider(parent, maxValue=slider_steps, 
style=wx.SL_HORIZONTAL)
+               self._slider = wx.Slider(parent, minValue=0, 
maxValue=slider_steps, style=wx.SL_HORIZONTAL)
                self.Add(self._slider, 0, wx.EXPAND)
-               def _on_slider_event(event):
-                       controller[control_key] = \
-                       
10**(float(max_exp-min_exp)*self._slider.GetValue()/slider_steps + min_exp)
-               self._slider.Bind(wx.EVT_SLIDER, _on_slider_event)
-               def _on_controller_set(value):
-                       self._label.SetLabel(label + formatter(value))
-                       slider_value = 
slider_steps*(math.log10(value)-min_exp)/(max_exp-min_exp)
-                       slider_value = min(max(0, slider_value), slider_steps)
-                       if abs(slider_value - self._slider.GetValue()) > 1:
-                               self._slider.SetValue(slider_value)
-               controller.subscribe(control_key, _on_controller_set)
+               self._slider.Bind(wx.EVT_SLIDER, self._on_slider_event)
+               controller.subscribe(control_key, self._on_controller_set)
 
-       def Disable(self, disable=True): self.Enable(not disable)
+       def _get_slope(self):
+               return float(self._max_exp-self._min_exp)/self._slider.GetMax()
+
+       def _on_slider_event(self, e):
+               self._controller[self._control_key] = 
10**(self._get_slope()*self._slider.GetValue() + self._min_exp)
+
+       def _on_controller_set(self, value):
+               self._label.SetLabel(self._prefix + self._formatter(value))
+               slider_value = 
(math.log10(value)-self._min_exp)/self._get_slope()
+               slider_value = min(max(self._slider.GetMin(), slider_value), 
self._slider.GetMax())
+               if abs(slider_value - self._slider.GetValue()) > 1:
+                       self._slider.SetValue(slider_value)
+
+       def Disable(self): self.Enable(False)
        def Enable(self, enable=True):
                if enable:
                        self._slider.Enable()
@@ -198,45 +205,39 @@
                        self._slider.Disable()
                        self._label.Disable()
 
-class DropDownController(wx.BoxSizer):
+class DropDownController(wx.Choice):
        """
        Drop down controller with label and chooser.
        Srop down selection from a set of choices.
        """
-       def __init__(self, parent, label, choices, controller, control_key, 
size=(-1, -1)):
+       def __init__(self, parent, choices, controller, control_key, size=(-1, 
-1)):
                """
                @param parent the parent window
-               @param label the label for the drop down
                @param choices a list of tuples -> (label, value)
                @param controller the prop val controller
                @param control_key the prop key for this control
                """
-               wx.BoxSizer.__init__(self, wx.HORIZONTAL)
-               self._label = wx.StaticText(parent, label=' %s '%label)
-               self.Add(self._label, 1, wx.ALIGN_CENTER_VERTICAL)
-               self._chooser = wx.Choice(parent, choices=[c[0] for c in 
choices], size=size)
-               def _on_chooser_event(event):
-                       controller[control_key] = 
choices[self._chooser.GetSelection()][1]
-               self._chooser.Bind(wx.EVT_CHOICE, _on_chooser_event)
-               self.Add(self._chooser, 0, wx.ALIGN_CENTER_VERTICAL)
-               def _on_controller_set(value):
-                       #only set the chooser if the value is a possible choice
-                       for i, choice in enumerate(choices):
-                               if value == choice[1]: 
self._chooser.SetSelection(i)
-               controller.subscribe(control_key, _on_controller_set)
+               self._controller = controller
+               self._control_key = control_key
+               self._choices = choices
+               wx.Choice.__init__(self, parent, choices=[c[0] for c in 
choices], size=size)
+               self.Bind(wx.EVT_CHOICE, self._on_chooser_event)
+               controller.subscribe(control_key, self._on_controller_set)
 
-       def Disable(self, disable=True): self.Enable(not disable)
-       def Enable(self, enable=True):
-               if enable:
-                       self._chooser.Enable()
-                       self._label.Enable()
-               else:
-                       self._chooser.Disable()
-                       self._label.Disable()
+       def _on_chooser_event(self, e):
+               self._controller[self._control_key] = 
self._choices[self.GetSelection()][1]
 
+       def _on_controller_set(self, value):
+               #only set the chooser if the value is a possible choice
+               for i, choice in enumerate(self._choices):
+                       if value == choice[1]: self.SetSelection(i)
+
 ##################################################
 # Shared Functions
 ##################################################
+import numpy
+import math
+
 def get_exp(num):
        """
        Get the exponent of the number in base 10.
@@ -253,8 +254,7 @@
        @return the closest number
        """
        if num == 0: return 0
-       if num > 0: sign = 1
-       else: sign = -1
+       sign = num > 0 and 1 or -1
        exp = get_exp(num)
        nums = numpy.array((1, 2, 5, 10))*(10**exp)
        return sign*nums[numpy.argmin(numpy.abs(nums - abs(num)))]

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/const_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/const_window.py 
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/const_window.py 
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -66,28 +66,27 @@
                control_box = wx.BoxSizer(wx.VERTICAL)
                self.marker_index = 2
                #begin control box
-               control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Options'), 0, 
wx.ALIGN_CENTER)
-               #marker
-               control_box.AddStretchSpacer()
-               self.marker_chooser = common.DropDownController(self, 'Marker', 
MARKER_TYPES, parent, MARKER_KEY)
-               control_box.Add(self.marker_chooser, 0, wx.EXPAND)
                #alpha
                control_box.AddStretchSpacer()
-               self.alpha_slider = common.LogSliderController(
+               alpha_slider = common.LogSliderController(
                        self, 'Alpha',
                        ALPHA_MIN_EXP, ALPHA_MAX_EXP, SLIDER_STEPS,
                        parent, ALPHA_KEY,
                )
-               control_box.Add(self.alpha_slider, 0, wx.EXPAND)
+               control_box.Add(alpha_slider, 0, wx.EXPAND)
                #gain_mu
                control_box.AddStretchSpacer()
-               self.gain_mu_slider = common.LogSliderController(
+               gain_mu_slider = common.LogSliderController(
                        self, 'Gain Mu',
                        GAIN_MU_MIN_EXP, GAIN_MU_MAX_EXP, SLIDER_STEPS,
                        parent, GAIN_MU_KEY,
                )
-               control_box.Add(self.gain_mu_slider, 0, wx.EXPAND)
+               control_box.Add(gain_mu_slider, 0, wx.EXPAND)
+               #marker
+               control_box.AddStretchSpacer()
+               marker_chooser = common.DropDownController(self, MARKER_TYPES, 
parent, MARKER_KEY)
+               control_box.Add(common.LabelBox(self, 'Marker', 
marker_chooser), 0, wx.EXPAND)
                #run/stop
                control_box.AddStretchSpacer()
                self.run_button = common.ToggleButtonController(self, parent, 
RUNNING_KEY, 'Stop', 'Run')
@@ -151,9 +150,8 @@
                self[MARKER_KEY] = DEFAULT_MARKER_TYPE
                #register events
                self.subscribe(MSG_KEY, self.handle_msg)
-               for key in (
-                       X_DIVS_KEY, Y_DIVS_KEY,
-               ): self.subscribe(key, self.update_grid)
+               self.subscribe(X_DIVS_KEY, self.update_grid)
+               self.subscribe(Y_DIVS_KEY, self.update_grid)
                #initial update
                self.update_grid()
 
@@ -178,15 +176,12 @@
                self.plotter.update()
 
        def update_grid(self):
-               #grid parameters
-               x_divs = self[X_DIVS_KEY]
-               y_divs = self[Y_DIVS_KEY]
                #update the x axis
                x_max = 2.0
-               self.plotter.set_x_grid(-x_max, x_max, 
common.get_clean_num(2.0*x_max/x_divs))
+               self.plotter.set_x_grid(-x_max, x_max, 
common.get_clean_num(2.0*x_max/self[X_DIVS_KEY]))
                #update the y axis
                y_max = 2.0
-               self.plotter.set_y_grid(-y_max, y_max, 
common.get_clean_num(2.0*y_max/y_divs))
+               self.plotter.set_y_grid(-y_max, y_max, 
common.get_clean_num(2.0*y_max/self[Y_DIVS_KEY]))
                #update plotter
                self.plotter.update()
 

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/fft_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/fft_window.py   
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/fft_window.py   
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -62,10 +62,10 @@
                #checkboxes for average and peak hold
                control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Options'), 0, 
wx.ALIGN_CENTER)
+               peak_hold_check_box = common.CheckBoxController(self, 'Peak 
Hold', parent, PEAK_HOLD_KEY)
+               control_box.Add(peak_hold_check_box, 0, wx.EXPAND)
                average_check_box = common.CheckBoxController(self, 'Average', 
parent, AVERAGE_KEY)
                control_box.Add(average_check_box, 0, wx.EXPAND)
-               peak_hold_check_box = common.CheckBoxController(self, 'Peak 
Hold', parent, PEAK_HOLD_KEY)
-               control_box.Add(peak_hold_check_box, 0, wx.EXPAND)
                control_box.AddSpacer(2)
                avg_alpha_slider = common.LogSliderController(
                        self, 'Avg Alpha',
@@ -166,6 +166,7 @@
                self.plotter = plotter.channel_plotter(self)
                self.plotter.SetSize(wx.Size(*size))
                self.plotter.set_title(title)
+               self.plotter.enable_legend(True)
                self.plotter.enable_point_label(True)
                self.plotter.enable_grid_lines(True)
                #setup the box with plot and controls
@@ -185,7 +186,6 @@
                self[BASEBAND_FREQ_KEY] = baseband_freq
                self[RUNNING_KEY] = True
                #register events
-               self.subscribe(PEAK_HOLD_KEY, self.plotter.enable_legend)
                self.subscribe(AVERAGE_KEY, lambda x: self._reset_peak_vals())
                self.subscribe(MSG_KEY, self.handle_msg)
                self.subscribe(SAMPLE_RATE_KEY, self.update_grid)
@@ -195,7 +195,6 @@
                        Y_DIVS_KEY, REF_LEVEL_KEY,
                ): self.subscribe(key, self.update_grid)
                #initial update
-               self.plotter.enable_legend(self[PEAK_HOLD_KEY])
                self.update_grid()
 
        def autoscale(self, *args):
@@ -239,19 +238,21 @@
                if self[PEAK_HOLD_KEY]:
                        if len(self.peak_vals) != len(samples): self.peak_vals 
= samples
                        self.peak_vals = numpy.maximum(samples, self.peak_vals)
-               else: self._reset_peak_vals()
+                       #plot the peak hold
+                       self.plotter.set_waveform(
+                               channel='Peak',
+                               samples=self.peak_vals,
+                               color_spec=PEAK_VALS_COLOR_SPEC,
+                       )
+               else:
+                       self._reset_peak_vals()
+                       self.plotter.clear_waveform(channel='Peak')
                #plot the fft
                self.plotter.set_waveform(
                        channel='FFT',
                        samples=samples,
                        color_spec=FFT_PLOT_COLOR_SPEC,
                )
-               #plot the peak hold
-               self.plotter.set_waveform(
-                       channel='Peak',
-                       samples=self.peak_vals,
-                       color_spec=PEAK_VALS_COLOR_SPEC,
-               )
                #update the plotter
                self.plotter.update()
 

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/histo_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/histo_window.py 
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/histo_window.py 
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -112,16 +112,15 @@
                main_box.Add(self.control_panel, 0, wx.EXPAND)
                self.SetSizerAndFit(main_box)
                #initialize values
-               self[MINIMUM_KEY] = -1
-               self[MAXIMUM_KEY] = 1
                self[NUM_BINS_KEY] = self[NUM_BINS_KEY]
                self[FRAME_SIZE_KEY] = self[FRAME_SIZE_KEY]
-               self[Y_OFF_KEY] = 0.25
                self[RUNNING_KEY] = True
+               self[X_DIVS_KEY] = 8
+               self[Y_DIVS_KEY] = 4
                #register events
                self.subscribe(MSG_KEY, self.handle_msg)
-               #initial update
-               #self.update_grid()
+               self.subscribe(X_DIVS_KEY, self.update_grid)
+               self.subscribe(Y_DIVS_KEY, self.update_grid)
 
        def handle_msg(self, msg):
                """
@@ -130,23 +129,26 @@
                """
                if not self[RUNNING_KEY]: return
                #convert to floating point numbers
-               self.samples = numpy.fromstring(msg, 
numpy.float32)[:self[NUM_BINS_KEY]] #only take first frame
+               self.samples = 100*numpy.fromstring(msg, 
numpy.float32)[:self[NUM_BINS_KEY]] #only take first frame
                self.plotter.set_bars(
-                       bars=self.samples*100,
+                       bars=self.samples,
                        bar_width=0.6,
                        color_spec=(0, 0, 1),
                )
+               self.update_grid()
+
+       def update_grid(self):
+               if not len(self.samples): return
                #calculate the maximum y value
-               y_off = math.ceil(numpy.max(self.samples)*100)
-               if y_off <= 0: y_off = 1
-               if y_off > 100: y_off = 100
+               y_off = math.ceil(numpy.max(self.samples))
+               y_off = min(max(y_off, 1.0), 100.0) #between 1% and 100%
                #update the x grid
                self.plotter.set_x_grid(
                        self[MINIMUM_KEY], self[MAXIMUM_KEY],
-                       (self[MAXIMUM_KEY] - self[MINIMUM_KEY])/8.,
+                       common.get_clean_num((self[MAXIMUM_KEY] - 
self[MINIMUM_KEY])/self[X_DIVS_KEY]),
                )
                self.plotter.set_x_label('Counts')
                #update the y grid
-               self.plotter.set_y_grid(0, y_off, y_off/4.)
+               self.plotter.set_y_grid(0, y_off, y_off/self[Y_DIVS_KEY])
                self.plotter.set_y_label('Frequency', '%')
                self.plotter.update()

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/number_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/number_window.py
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/number_window.py
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -58,10 +58,10 @@
                #checkboxes for average and peak hold
                control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Options'), 0, 
wx.ALIGN_CENTER)
+               self.peak_hold_check_box = common.CheckBoxController(self, 
'Peak Hold', parent, PEAK_HOLD_KEY)
+               control_box.Add(self.peak_hold_check_box, 0, wx.EXPAND)
                self.average_check_box = common.CheckBoxController(self, 
'Average', parent, AVERAGE_KEY)
                control_box.Add(self.average_check_box, 0, wx.EXPAND)
-               self.peak_hold_check_box = common.CheckBoxController(self, 
'Peak Hold', parent, PEAK_HOLD_KEY)
-               control_box.Add(self.peak_hold_check_box, 0, wx.EXPAND)
                control_box.AddSpacer(2)
                self.avg_alpha_slider = common.LogSliderController(
                        self, 'Avg Alpha',

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/plotter/common.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/plotter/common.py
   2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/plotter/common.py
   2009-03-12 07:25:06 UTC (rev 10586)
@@ -80,6 +80,7 @@
        @return a label string
        """
        coeff, exp, prefix = get_si_components(num)
+       if -3 <= exp < 3: return '%g'%num
        return '%g%s%s%s'%(coeff, units and ' ' or '', prefix, units)
 
 ##################################################

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scope_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scope_window.py 
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scope_window.py 
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -36,7 +36,6 @@
 ##################################################
 DEFAULT_FRAME_RATE = gr.prefs().get_long('wxgui', 'scope_rate', 30)
 DEFAULT_WIN_SIZE = (600, 300)
-DEFAULT_V_SCALE = 1000
 COUPLING_MODES = (
        ('DC', False),
        ('AC', True),
@@ -95,24 +94,24 @@
                        for j in range(parent.num_inputs):
                                if i == j: continue
                                choices.append(('Ch%d : Ch%d'%(i+1, j+1), (i, 
j)))
-               scope_mode_chooser = common.DropDownController(self, 'Mode', 
choices, parent, SCOPE_MODE_KEY, SIZE)
-               control_box.Add(scope_mode_chooser, 0, wx.EXPAND)
+               scope_mode_chooser = common.DropDownController(self, choices, 
parent, SCOPE_MODE_KEY, SIZE)
+               control_box.Add(common.LabelBox(self, 'Mode', 
scope_mode_chooser), 0, wx.EXPAND)
                ##################################################
                # Scope Mode Box
                ##################################################
                scope_mode_box = wx.BoxSizer(wx.VERTICAL)
                control_box.Add(scope_mode_box, 0, wx.EXPAND)
                #x axis divs
-               x_buttons = common.IncrDecrButtons(self, self._on_incr_t_divs, 
self._on_decr_t_divs)
-               scope_mode_box.Add(common.LabelBox(self, ' Secs/Div ', 
x_buttons), 0, wx.EXPAND)
+               x_buttons_scope = common.IncrDecrButtons(self, 
self._on_incr_t_divs, self._on_decr_t_divs)
+               scope_mode_box.Add(common.LabelBox(self, 'Secs/Div', 
x_buttons_scope), 0, wx.EXPAND)
                #y axis divs
-               y_buttons = common.IncrDecrButtons(self, self._on_incr_y_divs, 
self._on_decr_y_divs)
-               parent.subscribe(AUTORANGE_KEY, y_buttons.Disable)
-               scope_mode_box.Add(common.LabelBox(self, ' Counts/Div ', 
y_buttons), 0, wx.EXPAND)
+               y_buttons_scope = common.IncrDecrButtons(self, 
self._on_incr_y_divs, self._on_decr_y_divs)
+               parent.subscribe(AUTORANGE_KEY, lambda x: 
y_buttons_scope.Enable(not x))
+               scope_mode_box.Add(common.LabelBox(self, 'Counts/Div', 
y_buttons_scope), 0, wx.EXPAND)
                #y axis ref lvl
-               y_off_buttons = common.IncrDecrButtons(self, 
self._on_incr_y_off, self._on_decr_y_off)
-               parent.subscribe(AUTORANGE_KEY, y_off_buttons.Disable)
-               scope_mode_box.Add(common.LabelBox(self, ' Y Offset ', 
y_off_buttons), 0, wx.EXPAND)
+               y_off_buttons_scope = common.IncrDecrButtons(self, 
self._on_incr_y_off, self._on_decr_y_off)
+               parent.subscribe(AUTORANGE_KEY, lambda x: 
y_off_buttons_scope.Enable(not x))
+               scope_mode_box.Add(common.LabelBox(self, 'Y Offset', 
y_off_buttons_scope), 0, wx.EXPAND)
                #t axis ref lvl
                scope_mode_box.AddSpacer(5)
                t_off_slider = wx.Slider(self, size=SIZE, 
style=wx.SL_HORIZONTAL)
@@ -120,7 +119,7 @@
                def t_off_slider_changed(evt): parent[T_FRAC_OFF_KEY] = 
float(t_off_slider.GetValue())/t_off_slider.GetMax()
                t_off_slider.Bind(wx.EVT_SLIDER, t_off_slider_changed)
                parent.subscribe(T_FRAC_OFF_KEY, lambda x: 
t_off_slider.SetValue(int(round(x*t_off_slider.GetMax()))))
-               scope_mode_box.Add(common.LabelBox(self, ' T Offset ', 
t_off_slider), 0, wx.EXPAND)
+               scope_mode_box.Add(common.LabelBox(self, 'T Offset', 
t_off_slider), 0, wx.EXPAND)
                scope_mode_box.AddSpacer(5)
                ##################################################
                # XY Mode Box
@@ -129,20 +128,20 @@
                control_box.Add(xy_mode_box, 0, wx.EXPAND)
                #x div controls
                x_buttons = common.IncrDecrButtons(self, self._on_incr_x_divs, 
self._on_decr_x_divs)
-               parent.subscribe(AUTORANGE_KEY, x_buttons.Disable)
-               xy_mode_box.Add(common.LabelBox(self, ' X/Div ', x_buttons), 0, 
wx.EXPAND)
+               parent.subscribe(AUTORANGE_KEY, lambda x: x_buttons.Enable(not 
x))
+               xy_mode_box.Add(common.LabelBox(self, 'X/Div', x_buttons), 0, 
wx.EXPAND)
                #y div controls
                y_buttons = common.IncrDecrButtons(self, self._on_incr_y_divs, 
self._on_decr_y_divs)
-               parent.subscribe(AUTORANGE_KEY, y_buttons.Disable)
-               xy_mode_box.Add(common.LabelBox(self, ' Y/Div ', y_buttons), 0, 
wx.EXPAND)
+               parent.subscribe(AUTORANGE_KEY, lambda x: y_buttons.Enable(not 
x))
+               xy_mode_box.Add(common.LabelBox(self, 'Y/Div', y_buttons), 0, 
wx.EXPAND)
                #x offset controls
                x_off_buttons = common.IncrDecrButtons(self, 
self._on_incr_x_off, self._on_decr_x_off)
-               parent.subscribe(AUTORANGE_KEY, x_off_buttons.Disable)
-               xy_mode_box.Add(common.LabelBox(self, ' X Off ', 
x_off_buttons), 0, wx.EXPAND)
+               parent.subscribe(AUTORANGE_KEY, lambda x: 
x_off_buttons.Enable(not x))
+               xy_mode_box.Add(common.LabelBox(self, 'X Off', x_off_buttons), 
0, wx.EXPAND)
                #y offset controls
                y_off_buttons = common.IncrDecrButtons(self, 
self._on_incr_y_off, self._on_decr_y_off)
-               parent.subscribe(AUTORANGE_KEY, y_off_buttons.Disable)
-               xy_mode_box.Add(common.LabelBox(self, ' Y Off ', 
y_off_buttons), 0, wx.EXPAND)
+               parent.subscribe(AUTORANGE_KEY, lambda x: 
y_off_buttons.Enable(not x))
+               xy_mode_box.Add(common.LabelBox(self, 'Y Off', y_off_buttons), 
0, wx.EXPAND)
                xy_mode_box.ShowItems(False)
                def scope_mode_changed(mode):
                        scope_mode_box.ShowItems(mode is None)
@@ -161,7 +160,9 @@
                options_notebook = wx.Notebook(self)
                control_box.Add(options_notebook, 0, wx.EXPAND)
                control_box.AddStretchSpacer()
-               def options_notebook_changed(evt): 
parent[SCOPE_TRIGGER_SHOW_KEY] = options_notebook.GetSelection() == 
parent.num_inputs
+               def options_notebook_changed(evt):
+                       try: parent[SCOPE_TRIGGER_SHOW_KEY] = 
options_notebook.GetSelection() == parent.num_inputs
+                       except wx.PyDeadObjectError: pass
                options_notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, 
options_notebook_changed)
                ##################################################
                # Channel Menu Boxes
@@ -173,12 +174,12 @@
                        channel_menu_panel.SetSizer(channel_menu_box)
                        #ac couple check box
                        channel_menu_box.AddStretchSpacer()
-                       coupling_chooser = 
common.DropDownController(channel_menu_panel, 'Coupling', COUPLING_MODES, 
parent, common.index_key(AC_COUPLE_KEY, i), SIZE)
-                       channel_menu_box.Add(coupling_chooser, 0, wx.EXPAND)
+                       coupling_chooser = 
common.DropDownController(channel_menu_panel, COUPLING_MODES, parent, 
common.index_key(AC_COUPLE_KEY, i), SIZE)
+                       
channel_menu_box.Add(common.LabelBox(channel_menu_panel, 'Coupling', 
coupling_chooser), 0, wx.EXPAND)
                        #marker
                        channel_menu_box.AddStretchSpacer()
-                       marker_chooser = 
common.DropDownController(channel_menu_panel, 'Marker', MARKER_TYPES, parent, 
common.index_key(MARKER_KEY, i), SIZE)
-                       channel_menu_box.Add(marker_chooser, 0, wx.EXPAND)
+                       marker_chooser = 
common.DropDownController(channel_menu_panel, MARKER_TYPES, parent, 
common.index_key(MARKER_KEY, i), SIZE)
+                       
channel_menu_box.Add(common.LabelBox(channel_menu_panel, 'Marker', 
marker_chooser), 0, wx.EXPAND)
                        channel_menu_box.AddStretchSpacer()
                ##################################################
                # Trigger Menu Box
@@ -188,31 +189,28 @@
                trigger_menu_box = wx.BoxSizer(wx.VERTICAL)
                trigger_menu_panel.SetSizer(trigger_menu_box)
                #trigger mode
-               trigger_mode_chooser = 
common.DropDownController(trigger_menu_panel, 'Mode', TRIGGER_MODES, parent, 
SCOPE_TRIGGER_MODE_KEY, SIZE)
-               trigger_menu_box.Add(trigger_mode_chooser, 0, wx.EXPAND)
+               trigger_mode_chooser = 
common.DropDownController(trigger_menu_panel, TRIGGER_MODES, parent, 
SCOPE_TRIGGER_MODE_KEY, SIZE)
+               trigger_menu_box.Add(common.LabelBox(trigger_menu_panel, 
'Mode', trigger_mode_chooser), 0, wx.EXPAND)
                #trigger slope
-               trigger_slope_chooser = 
common.DropDownController(trigger_menu_panel, 'Slope', TRIGGER_SLOPES, parent, 
SCOPE_TRIGGER_SLOPE_KEY, SIZE)
-               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_slope_chooser.Disable(x==gr.gr_TRIG_MODE_FREE))
-               trigger_menu_box.Add(trigger_slope_chooser, 0, wx.EXPAND)
+               trigger_slope_chooser = 
common.DropDownController(trigger_menu_panel, TRIGGER_SLOPES, parent, 
SCOPE_TRIGGER_SLOPE_KEY, SIZE)
+               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_slope_chooser.Enable(x!=gr.gr_TRIG_MODE_FREE))
+               trigger_menu_box.Add(common.LabelBox(trigger_menu_panel, 
'Slope', trigger_slope_chooser), 0, wx.EXPAND)
                #trigger channel
                choices = [('Channel %d'%(i+1), i) for i in 
range(parent.num_inputs)]
-               trigger_channel_chooser = 
common.DropDownController(trigger_menu_panel, 'Channel', choices, parent, 
SCOPE_TRIGGER_CHANNEL_KEY, SIZE)
-               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_channel_chooser.Disable(x==gr.gr_TRIG_MODE_FREE))
-               trigger_menu_box.Add(trigger_channel_chooser, 0, wx.EXPAND)
+               trigger_channel_chooser = 
common.DropDownController(trigger_menu_panel, choices, parent, 
SCOPE_TRIGGER_CHANNEL_KEY, SIZE)
+               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_channel_chooser.Enable(x!=gr.gr_TRIG_MODE_FREE))
+               trigger_menu_box.Add(common.LabelBox(trigger_menu_panel, 
'Channel', trigger_channel_chooser), 0, wx.EXPAND)
                #trigger level
                hbox = wx.BoxSizer(wx.HORIZONTAL)
                trigger_menu_box.Add(hbox, 0, wx.EXPAND)
                hbox.Add(wx.StaticText(trigger_menu_panel, label=' Level '), 1, 
wx.ALIGN_CENTER_VERTICAL)
                trigger_level_button = wx.Button(trigger_menu_panel, 
label='50%', style=wx.BU_EXACTFIT)
-               def trigger_level_button_disable(x):
-                       if x==gr.gr_TRIG_MODE_FREE: 
trigger_level_button.Disable()
-                       else: trigger_level_button.Enable()
-               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, 
trigger_level_button_disable)
+               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_level_button.Enable(x!=gr.gr_TRIG_MODE_FREE))
                trigger_level_button.Bind(wx.EVT_BUTTON, 
self.parent.set_auto_trigger_level)
                hbox.Add(trigger_level_button, 0, wx.ALIGN_CENTER_VERTICAL)
                hbox.AddSpacer(10)
                trigger_level_buttons = 
common.IncrDecrButtons(trigger_menu_panel, self._on_incr_trigger_level, 
self._on_decr_trigger_level)
-               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_level_buttons.Disable(x==gr.gr_TRIG_MODE_FREE))
+               parent.subscribe(SCOPE_TRIGGER_MODE_KEY, lambda x: 
trigger_level_buttons.Enable(x!=gr.gr_TRIG_MODE_FREE))
                hbox.Add(trigger_level_buttons, 0, wx.ALIGN_CENTER_VERTICAL)
                ##################################################
                # Run/Stop Button
@@ -322,7 +320,7 @@
                self[RUNNING_KEY] = True
                for i in range(self.num_inputs):
                        self[common.index_key(AC_COUPLE_KEY, i)] = 
self[common.index_key(AC_COUPLE_KEY, i)]
-                       self[common.index_key(MARKER_KEY, i)] = 
DEFAULT_MARKER_TYPE
+                       self[common.index_key(MARKER_KEY, i)] = xy_mode and 2.0 
or DEFAULT_MARKER_TYPE
                self[SCOPE_MODE_KEY] = xy_mode
                self[AUTORANGE_KEY] = autorange
                self[T_PER_DIV_KEY] = t_scale

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink2.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink2.py   
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink2.py   
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -38,7 +38,7 @@
     except ImportError:
         raise RuntimeError("Unable to import OpenGL. Are Python wrappers for 
OpenGL installed?")
 
-    from scopesink_gl import scope_sink_f, scope_sink_c, constellation_sink
+    from scopesink_gl import scope_sink_f, scope_sink_c
 
 else:
-    from scopesink_nongl import scope_sink_f, scope_sink_c, constellation_sink
+    from scopesink_nongl import scope_sink_f, scope_sink_c

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink_gl.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink_gl.py 
    2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/scopesink_gl.py 
    2009-03-12 07:25:06 UTC (rev 10586)
@@ -70,8 +70,7 @@
                title='',
                sample_rate=1,
                size=scope_window.DEFAULT_WIN_SIZE,
-               frame_decim=None, #ignore (old wrapper)
-               v_scale=scope_window.DEFAULT_V_SCALE,
+               v_scale=None,
                t_scale=None,
                num_inputs=1,
                xy_mode=None,
@@ -154,12 +153,6 @@
        _item_size = gr.sizeof_gr_complex
        _real = False
 
-#backwards compadible wrapper (maybe only grc uses this)
-class constellation_sink(scope_sink_c):
-       def __init__(self, *args, **kwargs):
-               scope_sink_c.__init__(self, *args, **kwargs)
-               self.set_scope_xy_mode(True)
-
 # ----------------------------------------------------------------
 # Stand-alone test application
 # ----------------------------------------------------------------
@@ -198,7 +191,6 @@
         self.thr = gr.throttle(gr.sizeof_gr_complex, input_rate)
 
         scope = scope_sink_c (panel,"Secret Data",sample_rate=input_rate,
-                              frame_decim=frame_decim,
                               v_scale=v_scale, t_scale=t_scale)
         vbox.Add (scope.win, 1, wx.EXPAND)
 

Modified: 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/waterfall_window.py
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/waterfall_window.py
 2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/gr-wxgui/src/python/waterfall_window.py
 2009-03-12 07:25:06 UTC (rev 10586)
@@ -67,51 +67,51 @@
                control_box.Add(common.LabelText(self, 'Options'), 0, 
wx.ALIGN_CENTER)
                #color mode
                control_box.AddStretchSpacer()
-               self.color_mode_chooser = common.DropDownController(self, 
'Color', COLOR_MODES, parent, COLOR_MODE_KEY)
-               control_box.Add(self.color_mode_chooser, 0, wx.EXPAND)
+               color_mode_chooser = common.DropDownController(self, 
COLOR_MODES, parent, COLOR_MODE_KEY)
+               control_box.Add(common.LabelBox(self, 'Color', 
color_mode_chooser), 0, wx.EXPAND)
                #average
                control_box.AddStretchSpacer()
-               self.average_check_box = common.CheckBoxController(self, 
'Average', parent, AVERAGE_KEY)
-               control_box.Add(self.average_check_box, 0, wx.EXPAND)
+               average_check_box = common.CheckBoxController(self, 'Average', 
parent, AVERAGE_KEY)
+               control_box.Add(average_check_box, 0, wx.EXPAND)
                control_box.AddSpacer(2)
-               self.avg_alpha_slider = common.LogSliderController(
+               avg_alpha_slider = common.LogSliderController(
                        self, 'Avg Alpha',
                        AVG_ALPHA_MIN_EXP, AVG_ALPHA_MAX_EXP, SLIDER_STEPS,
                        parent, AVG_ALPHA_KEY,
                        formatter=lambda x: ': %.4f'%x,
                )
-               parent.subscribe(AVERAGE_KEY, self.avg_alpha_slider.Enable)
-               control_box.Add(self.avg_alpha_slider, 0, wx.EXPAND)
+               parent.subscribe(AVERAGE_KEY, avg_alpha_slider.Enable)
+               control_box.Add(avg_alpha_slider, 0, wx.EXPAND)
                #dyanmic range buttons
                control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Dynamic Range'), 0, 
wx.ALIGN_CENTER)
                control_box.AddSpacer(2)
-               self._dynamic_range_buttons = common.IncrDecrButtons(self, 
self._on_incr_dynamic_range, self._on_decr_dynamic_range)
-               control_box.Add(self._dynamic_range_buttons, 0, wx.ALIGN_CENTER)
+               dynamic_range_buttons = common.IncrDecrButtons(self, 
self._on_incr_dynamic_range, self._on_decr_dynamic_range)
+               control_box.Add(dynamic_range_buttons, 0, wx.ALIGN_CENTER)
                #ref lvl buttons
                control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Set Ref Level'), 0, 
wx.ALIGN_CENTER)
                control_box.AddSpacer(2)
-               self._ref_lvl_buttons = common.IncrDecrButtons(self, 
self._on_incr_ref_level, self._on_decr_ref_level)
-               control_box.Add(self._ref_lvl_buttons, 0, wx.ALIGN_CENTER)
+               ref_lvl_buttons = common.IncrDecrButtons(self, 
self._on_incr_ref_level, self._on_decr_ref_level)
+               control_box.Add(ref_lvl_buttons, 0, wx.ALIGN_CENTER)
                #num lines buttons
                control_box.AddStretchSpacer()
                control_box.Add(common.LabelText(self, 'Set Time Scale'), 0, 
wx.ALIGN_CENTER)
                control_box.AddSpacer(2)
-               self._time_scale_buttons = common.IncrDecrButtons(self, 
self._on_incr_time_scale, self._on_decr_time_scale)
-               control_box.Add(self._time_scale_buttons, 0, wx.ALIGN_CENTER)
+               time_scale_buttons = common.IncrDecrButtons(self, 
self._on_incr_time_scale, self._on_decr_time_scale)
+               control_box.Add(time_scale_buttons, 0, wx.ALIGN_CENTER)
                #autoscale
                control_box.AddStretchSpacer()
-               self.autoscale_button = wx.Button(self, label='Autoscale', 
style=wx.BU_EXACTFIT)
-               self.autoscale_button.Bind(wx.EVT_BUTTON, self.parent.autoscale)
-               control_box.Add(self.autoscale_button, 0, wx.EXPAND)
+               autoscale_button = wx.Button(self, label='Autoscale', 
style=wx.BU_EXACTFIT)
+               autoscale_button.Bind(wx.EVT_BUTTON, self.parent.autoscale)
+               control_box.Add(autoscale_button, 0, wx.EXPAND)
                #clear
-               self.clear_button = wx.Button(self, label='Clear', 
style=wx.BU_EXACTFIT)
-               self.clear_button.Bind(wx.EVT_BUTTON, self._on_clear_button)
-               control_box.Add(self.clear_button, 0, wx.EXPAND)
+               clear_button = wx.Button(self, label='Clear', 
style=wx.BU_EXACTFIT)
+               clear_button.Bind(wx.EVT_BUTTON, self._on_clear_button)
+               control_box.Add(clear_button, 0, wx.EXPAND)
                #run/stop
-               self.run_button = common.ToggleButtonController(self, parent, 
RUNNING_KEY, 'Stop', 'Run')
-               control_box.Add(self.run_button, 0, wx.EXPAND)
+               run_button = common.ToggleButtonController(self, parent, 
RUNNING_KEY, 'Stop', 'Run')
+               control_box.Add(run_button, 0, wx.EXPAND)
                #set sizer
                self.SetSizerAndFit(control_box)
 

Modified: 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml
   2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_constellationsink2.xml
   2009-03-12 07:25:06 UTC (rev 10586)
@@ -7,14 +7,22 @@
 <block>
        <name>Constellation Sink</name>
        <key>wxgui_constellationsink2</key>
-       <import>from gnuradio.wxgui import scopesink2</import>
-       <make>scopesink2.constellation_sink(
+       <import>from gnuradio.wxgui import constsink_gl</import>
+       <make>constsink_gl.const_sink_c(
        self.GetWin(),
        title=$title,
        sample_rate=$samp_rate,
-       frame_decim=$frame_decim,
+       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,
 )
-self.$(id).win.$(marker)()
 #set $grid_pos = $grid_pos.eval
 #if not grid_pos
 self.Add(self.$(id).win)
@@ -35,30 +43,66 @@
                <type>real</type>
        </param>
        <param>
-               <name>Frame Decimation</name>
-               <key>frame_decim</key>
-               <value>15</value>
+               <name>Frame Rate</name>
+               <key>frame_rate</key>
+               <value>5</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Constellation Size</name>
+               <key>const_size</key>
+               <value>2048</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>M</name>
+               <key>M</key>
+               <value>4</value>
                <type>int</type>
        </param>
        <param>
-               <name>Marker</name>
-               <key>marker</key>
-               <value>set_format_plus</value>
-               <type>enum</type>
-               <option>
-                       <name>Line</name>
-                       <key>set_format_line</key>
-               </option>
-               <option>
-                       <name>Dot</name>
-                       <key>set_format_dot</key>
-               </option>
-               <option>
-                       <name>Plus</name>
-                       <key>set_format_plus</key>
-               </option>
+               <name>Theta</name>
+               <key>theta</key>
+               <value>0</value>
+               <type>real</type>
        </param>
        <param>
+               <name>Alpha</name>
+               <key>alpha</key>
+               <value>0.005</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Max Freq</name>
+               <key>fmax</key>
+               <value>0.06</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Mu</name>
+               <key>mu</key>
+               <value>0.5</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Gain Mu</name>
+               <key>gain_mu</key>
+               <value>0.005</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Symbol Rate</name>
+               <key>symbol_rate</key>
+               <value>samp_rate/4.</value>
+               <type>real</type>
+       </param>
+       <param>
+               <name>Omega Limit</name>
+               <key>omega_limit</key>
+               <value>0.005</value>
+               <type>real</type>
+       </param>
+       <param>
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value></value>

Modified: 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_fftsink2.xml
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_fftsink2.xml
     2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_fftsink2.xml
     2009-03-12 07:25:06 UTC (rev 10586)
@@ -12,7 +12,6 @@
        self.GetWin(),
        baseband_freq=$baseband_freq,
        y_per_div=$y_per_div,
-       y_divs=$y_divs,
        ref_level=$ref_level,
        sample_rate=$samp_rate,
        fft_size=$fft_size,
@@ -68,16 +67,30 @@
                <name>Y per Div</name>
                <key>y_per_div</key>
                <value>10</value>
-               <type>real</type>
+               <type>enum</type>
+               <option>
+                       <name>1 dB</name>
+                       <key>1</key>
+               </option>
+               <option>
+                       <name>2 dB</name>
+                       <key>2</key>
+               </option>
+               <option>
+                       <name>5 dB</name>
+                       <key>5</key>
+               </option>
+               <option>
+                       <name>10 dB</name>
+                       <key>10</key>
+               </option>
+               <option>
+                       <name>20 dB</name>
+                       <key>20</key>
+               </option>
        </param>
        <param>
-               <name>Y Divs</name>
-               <key>y_divs</key>
-               <value>8</value>
-               <type>real</type>
-       </param>
-       <param>
-               <name>Reference Level</name>
+               <name>Ref Level (dB)</name>
                <key>ref_level</key>
                <value>50</value>
                <type>real</type>
@@ -95,40 +108,43 @@
                <type>int</type>
        </param>
        <param>
-               <name>Average Alpha</name>
-               <key>avg_alpha</key>
-               <value>0</value>
-               <type>real</type>
-       </param>
-       <param>
-               <name>Average</name>
-               <key>average</key>
+               <name>Peak Hold</name>
+               <key>peak_hold</key>
                <value>False</value>
                <type>enum</type>
+               <hide>#if $peak_hold.eval == 'True' then 'none' else 
'part'#</hide>
                <option>
-                       <name>Yes</name>
+                       <name>On</name>
                        <key>True</key>
                </option>
                <option>
-                       <name>No</name>
+                       <name>Off</name>
                        <key>False</key>
                </option>
        </param>
        <param>
-               <name>Peak Hold</name>
-               <key>peak_hold</key>
+               <name>Average</name>
+               <key>average</key>
                <value>False</value>
                <type>enum</type>
+               <hide>#if $average.eval == 'True' then 'none' else 
'part'#</hide>
                <option>
-                       <name>Yes</name>
+                       <name>On</name>
                        <key>True</key>
                </option>
                <option>
-                       <name>No</name>
+                       <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.eval == 'True' then 'none' else 'all'#</hide>
+       </param>
+       <param>
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value></value>

Modified: 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_numbersink2.xml
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_numbersink2.xml
  2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_numbersink2.xml
  2009-03-12 07:25:06 UTC (rev 10586)
@@ -19,10 +19,10 @@
        ref_level=$ref_level,
        sample_rate=$samp_rate,
        number_rate=$number_rate,
-       average=$options.average,
+       average=$average,
        avg_alpha=#if $avg_alpha.eval then $avg_alpha else 'None'#,
        label=$title,
-       peak_hold=$options.peak_hold,
+       peak_hold=$peak_hold,
        show_gauge=$show_gauge,
 )
 #set $grid_pos = $grid_pos.eval
@@ -108,36 +108,43 @@
                <type>int</type>
        </param>
        <param>
-               <name>Average Alpha</name>
-               <key>avg_alpha</key>
-               <value>0</value>
-               <type>real</type>
+               <name>Peak Hold</name>
+               <key>peak_hold</key>
+               <value>False</value>
+               <type>enum</type>
+               <hide>#if $peak_hold.eval == 'True' then 'none' else 
'part'#</hide>
+               <option>
+                       <name>On</name>
+                       <key>True</key>
+               </option>
+               <option>
+                       <name>Off</name>
+                       <key>False</key>
+               </option>
        </param>
        <param>
-               <name>Options</name>
-               <key>options</key>
-               <value>none</value>
+               <name>Average</name>
+               <key>average</key>
+               <value>False</value>
                <type>enum</type>
+               <hide>#if $average.eval == 'True' then 'none' else 
'part'#</hide>
                <option>
-                       <name>None</name>
-                       <key>none</key>
-                       <opt>peak_hold:False</opt>
-                       <opt>average:False</opt>
+                       <name>On</name>
+                       <key>True</key>
                </option>
                <option>
-                       <name>Average</name>
-                       <key>average</key>
-                       <opt>peak_hold:False</opt>
-                       <opt>average:True</opt>
+                       <name>Off</name>
+                       <key>False</key>
                </option>
-               <option>
-                       <name>Peak Hold</name>
-                       <key>peak_hold</key>
-                       <opt>peak_hold:True</opt>
-                       <opt>average:False</opt>
-               </option>
        </param>
        <param>
+               <name>Average Alpha</name>
+               <key>avg_alpha</key>
+               <value>0</value>
+               <type>real</type>
+               <hide>#if $average.eval == 'True' then 'none' else 'all'#</hide>
+       </param>
+       <param>
                <name>Show Gauge</name>
                <key>show_gauge</key>
                <value>True</value>

Modified: 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_scopesink2.xml
===================================================================
--- 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_scopesink2.xml
   2009-03-12 06:53:54 UTC (rev 10585)
+++ 
gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/wxgui_scopesink2.xml
   2009-03-12 07:25:06 UTC (rev 10586)
@@ -13,7 +13,6 @@
        self.GetWin(),
        title=$title,
        sample_rate=$samp_rate,
-       frame_decim=$frame_decim,
        v_scale=#if $v_scale.eval then $v_scale else 'None'#,
        t_scale=$t_scale,
        num_inputs=$num_inputs,
@@ -54,12 +53,6 @@
                <type>real</type>
        </param>
        <param>
-               <name>Frame Decimation</name>
-               <key>frame_decim</key>
-               <value>15</value>
-               <type>int</type>
-       </param>
-       <param>
                <name>V Scale</name>
                <key>v_scale</key>
                <value>0</value>
@@ -68,7 +61,7 @@
        <param>
                <name>T Scale</name>
                <key>t_scale</key>
-               <value>.001</value>
+               <value>10.0/samp_rate</value>
                <type>real</type>
        </param>
        <param>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]