#
-# Copyright 2008 Free Software Foundation, Inc.
+# Copyright 2008,2010 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# Constants
##################################################
DEFAULT_FRAME_RATE = gr.prefs().get_long('wxgui', 'scope_rate', 30)
-ANALOG_ALPHA_MIN_EXP, ANALOG_ALPHA_MAX_EXP = -2, 0
+PERSIST_ALPHA_MIN_EXP, PERSIST_ALPHA_MAX_EXP = -2, 0
SLIDER_STEPS = 100
+DEFAULT_TRIG_MODE = gr.prefs().get_long('wxgui', 'trig_mode', gr.gr_TRIG_MODE_AUTO)
DEFAULT_WIN_SIZE = (600, 300)
COUPLING_MODES = (
('DC', False),
('Freerun', gr.gr_TRIG_MODE_FREE),
('Auto', gr.gr_TRIG_MODE_AUTO),
('Normal', gr.gr_TRIG_MODE_NORM),
+ ('Stripchart', gr.gr_TRIG_MODE_STRIPCHART),
)
TRIGGER_SLOPES = (
('Pos +', gr.gr_TRIG_SLOPE_POS),
control_box = wx.BoxSizer(wx.VERTICAL)
##################################################
- # Emulate Analog
+ # Persistence
##################################################
forms.check_box(
- sizer=control_box, parent=self, label='Emulate Analog',
- ps=parent, key=EMULATE_ANALOG_KEY,
+ sizer=control_box, parent=self, label='Persistence',
+ ps=parent, key=USE_PERSISTENCE_KEY,
)
#static text and slider for analog alpha
- analog_alpha_text = forms.static_text(
+ persist_alpha_text = forms.static_text(
sizer=control_box, parent=self, label='Analog Alpha',
converter=forms.float_converter(lambda x: '%.4f'%x),
- ps=parent, key=ANALOG_ALPHA_KEY, width=50,
+ ps=parent, key=PERSIST_ALPHA_KEY, width=50,
)
- analog_alpha_slider = forms.log_slider(
+ persist_alpha_slider = forms.log_slider(
sizer=control_box, parent=self,
- min_exp=ANALOG_ALPHA_MIN_EXP,
- max_exp=ANALOG_ALPHA_MAX_EXP,
+ min_exp=PERSIST_ALPHA_MIN_EXP,
+ max_exp=PERSIST_ALPHA_MAX_EXP,
num_steps=SLIDER_STEPS,
- ps=parent, key=ANALOG_ALPHA_KEY,
+ ps=parent, key=PERSIST_ALPHA_KEY,
)
- for widget in (analog_alpha_text, analog_alpha_slider):
- parent.subscribe(EMULATE_ANALOG_KEY, widget.Enable)
- widget.Enable(parent[EMULATE_ANALOG_KEY])
- parent.subscribe(EMULATE_ANALOG_KEY, widget.ShowItems)
+ for widget in (persist_alpha_text, persist_alpha_slider):
+ parent.subscribe(USE_PERSISTENCE_KEY, widget.Enable)
+ widget.Enable(parent[USE_PERSISTENCE_KEY])
+ parent.subscribe(USE_PERSISTENCE_KEY, widget.ShowItems)
#allways show initially, so room is reserved for them
- widget.ShowItems(True) # (parent[EMULATE_ANALOG_KEY])
+ widget.ShowItems(True) # (parent[USE_PERSISTENCE_KEY])
- parent.subscribe(EMULATE_ANALOG_KEY, self._update_layout)
+ parent.subscribe(USE_PERSISTENCE_KEY, self._update_layout)
##################################################
# Axes Options
trigger_channel_key,
decimation_key,
msg_key,
- emulate_analog,
- analog_alpha,
+ use_persistence,
+ persist_alpha,
+ trig_mode,
+ y_axis_label,
):
pubsub.pubsub.__init__(self)
#check num inputs
self[T_DIVS_KEY] = 8
self[X_DIVS_KEY] = 8
self[Y_DIVS_KEY] = 8
+ self[Y_AXIS_LABEL] = y_axis_label
self[FRAME_RATE_KEY] = frame_rate
self[TRIGGER_LEVEL_KEY] = 0
self[TRIGGER_CHANNEL_KEY] = 0
- self[TRIGGER_MODE_KEY] = gr.gr_TRIG_MODE_AUTO
+ self[TRIGGER_MODE_KEY] = trig_mode
+
self[TRIGGER_SLOPE_KEY] = gr.gr_TRIG_SLOPE_POS
self[T_FRAC_OFF_KEY] = 0.5
- self[EMULATE_ANALOG_KEY] = emulate_analog
- self[ANALOG_ALPHA_KEY] = analog_alpha
+ self[USE_PERSISTENCE_KEY] = use_persistence
+ self[PERSIST_ALPHA_KEY] = persist_alpha
+
+ if self[TRIGGER_MODE_KEY] == gr.gr_TRIG_MODE_STRIPCHART:
+ self[T_FRAC_OFF_KEY] = 0.0
+
for i in range(num_inputs):
self.proxy(common.index_key(AC_COUPLE_KEY, i), controller, common.index_key(ac_couple_key, i))
#init panel and plot
self.plotter.enable_legend(True)
self.plotter.enable_point_label(True)
self.plotter.enable_grid_lines(True)
- self.plotter.set_emulate_analog(emulate_analog)
- self.plotter.set_analog_alpha(analog_alpha)
+ self.plotter.set_use_persistence(use_persistence)
+ self.plotter.set_persist_alpha(persist_alpha)
#setup the box with plot and controls
self.control_panel = control_panel(self)
main_box = wx.BoxSizer(wx.HORIZONTAL)
TRIGGER_SHOW_KEY, XY_MARKER_KEY, X_CHANNEL_KEY, Y_CHANNEL_KEY,
]: self.subscribe(key, self.update_grid)
#register events for plotter settings
- self.subscribe(EMULATE_ANALOG_KEY, self.plotter.set_emulate_analog)
- self.subscribe(ANALOG_ALPHA_KEY, self.plotter.set_analog_alpha)
+ self.subscribe(USE_PERSISTENCE_KEY, self.plotter.set_use_persistence)
+ self.subscribe(PERSIST_ALPHA_KEY, self.plotter.set_persist_alpha)
#initial update
self.update_grid()
self.plotter.set_x_label('Time', 's')
self.plotter.set_x_grid(self.get_t_min(), self.get_t_max(), self[T_PER_DIV_KEY], True)
#update the y axis
- self.plotter.set_y_label('Counts')
+ self.plotter.set_y_label(self[Y_AXIS_LABEL])
self.plotter.set_y_grid(self.get_y_min(), self.get_y_max(), self[Y_PER_DIV_KEY])
#redraw current sample
self.handle_samples()