Пример #1
0
 def __init__(
     self,
     parent,
     controller,
     size,
     title,
     real,
     fft_size,
     num_lines,
     decimation_key,
     baseband_freq,
     sample_rate_key,
     frame_rate_key,
     dynamic_range,
     ref_level,
     average_key,
     avg_alpha_key,
     msg_key,
 ):
     pubsub.pubsub.__init__(self)
     #setup
     self.samples = list()
     self.real = real
     self.fft_size = fft_size
     #proxy the keys
     self.proxy(MSG_KEY, controller, msg_key)
     self.proxy(DECIMATION_KEY, controller, decimation_key)
     self.proxy(FRAME_RATE_KEY, controller, frame_rate_key)
     self.proxy(AVERAGE_KEY, controller, average_key)
     self.proxy(AVG_ALPHA_KEY, controller, avg_alpha_key)
     self.proxy(SAMPLE_RATE_KEY, controller, sample_rate_key)
     #init panel and plot
     wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
     self.plotter = plotter.waterfall_plotter(self)
     self.plotter.SetSize(wx.Size(*size))
     self.plotter.SetSizeHints(*size)
     self.plotter.set_title(title)
     self.plotter.enable_point_label(True)
     self.plotter.enable_grid_lines(False)
     #plotter listeners
     self.subscribe(COLOR_MODE_KEY, self.plotter.set_color_mode)
     self.subscribe(NUM_LINES_KEY, self.plotter.set_num_lines)
     #initialize values
     self[DYNAMIC_RANGE_KEY] = dynamic_range
     self[NUM_LINES_KEY] = num_lines
     self[Y_DIVS_KEY] = 8
     self[X_DIVS_KEY] = 8  #approximate
     self[REF_LEVEL_KEY] = ref_level
     self[BASEBAND_FREQ_KEY] = baseband_freq
     self[COLOR_MODE_KEY] = COLOR_MODES[0][1]
     self[COLOR_MODE_KEY] = DEFAULT_COLOR_MODE
     self[RUNNING_KEY] = True
     #setup the box with plot and controls
     self.control_panel = control_panel(self)
     main_box = wx.BoxSizer(wx.HORIZONTAL)
     main_box.Add(self.plotter, 1, wx.EXPAND)
     main_box.Add(self.control_panel, 0, wx.EXPAND)
     self.SetSizerAndFit(main_box)
     #register events
     self.subscribe(MSG_KEY, self.handle_msg)
     for key in (
             DECIMATION_KEY,
             SAMPLE_RATE_KEY,
             FRAME_RATE_KEY,
             BASEBAND_FREQ_KEY,
             X_DIVS_KEY,
             Y_DIVS_KEY,
             NUM_LINES_KEY,
     ):
         self.subscribe(key, self.update_grid)
     #initial update
     self.update_grid()
Пример #2
0
	def __init__(
		self,
		parent,
		controller,
		size,
		title,
		real,
		fft_size,
		num_lines,
		decimation_key,
		baseband_freq,
		sample_rate_key,
		frame_rate_key,
		dynamic_range,
		ref_level,
		average_key,
		avg_alpha_key,
		msg_key,
	):
		pubsub.pubsub.__init__(self)
		#setup
		self.samples = list()
		self.real = real
		self.fft_size = fft_size
		#proxy the keys
		self.proxy(MSG_KEY, controller, msg_key)
		self.proxy(DECIMATION_KEY, controller, decimation_key)
		self.proxy(FRAME_RATE_KEY, controller, frame_rate_key)
		self.proxy(AVERAGE_KEY, controller, average_key)
		self.proxy(AVG_ALPHA_KEY, controller, avg_alpha_key)
		self.proxy(SAMPLE_RATE_KEY, controller, sample_rate_key)
		#init panel and plot
		wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
		self.plotter = plotter.waterfall_plotter(self)
		self.plotter.SetSize(wx.Size(*size))
		self.plotter.set_title(title)
		self.plotter.enable_point_label(True)
		self.plotter.enable_grid_lines(False)
		#plotter listeners
		self.subscribe(COLOR_MODE_KEY, self.plotter.set_color_mode)
		self.subscribe(NUM_LINES_KEY, self.plotter.set_num_lines)
		#initialize values
		self[DYNAMIC_RANGE_KEY] = dynamic_range
		self[NUM_LINES_KEY] = num_lines
		self[Y_DIVS_KEY] = 8
		self[X_DIVS_KEY] = 8 #approximate
		self[REF_LEVEL_KEY] = ref_level
		self[BASEBAND_FREQ_KEY] = baseband_freq
		self[COLOR_MODE_KEY] = COLOR_MODES[0][1]
		self[RUNNING_KEY] = True
		#setup the box with plot and controls
		self.control_panel = control_panel(self)
		main_box = wx.BoxSizer(wx.HORIZONTAL)
		main_box.Add(self.plotter, 1, wx.EXPAND)
		main_box.Add(self.control_panel, 0, wx.EXPAND)
		self.SetSizerAndFit(main_box)
		#register events
		self.subscribe(MSG_KEY, self.handle_msg)
		for key in (
			DECIMATION_KEY, SAMPLE_RATE_KEY, FRAME_RATE_KEY,
			BASEBAND_FREQ_KEY, X_DIVS_KEY, Y_DIVS_KEY, NUM_LINES_KEY,
		): self.subscribe(key, self.update_grid)
		#initial update
		self.update_grid()