Changeset 6831

Show
Ignore:
Timestamp:
11/07/07 23:43:07
Author:
jcorgan
Message:

Cleanup and instance variable renaming.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gnuradio/trunk/gr-wxgui/src/python/fftsink2.py

    r6830 r6831  
    232232         
    233233        self.build_popup_menu() 
    234          
     234        self.set_baseband_freq(0.0) 
     235                 
    235236        EVT_DATA_EVENT (self, self.set_data) 
    236237        wx.EVT_CLOSE (self, self.on_close_window) 
     
    240241        self.input_watcher = input_watcher(fftsink.msgq, fftsink.fft_size, self) 
    241242 
    242  
     243    def set_scale(self, freq): 
     244        x = max(abs(self.fftsink.sample_rate), abs(self.fftsink.baseband_freq))  
     245        if x >= 1e9: 
     246            self._scale_factor = 1e-9 
     247            self._units = "GHz" 
     248            self._format = "%3.6f" 
     249        elif x >= 1e6: 
     250            self._scale_factor = 1e-6 
     251            self._units = "MHz" 
     252            self._format = "%3.3f" 
     253        else: 
     254            self._scale_factor = 1e-3 
     255            self._units = "kHz" 
     256            self._format = "%3.3f" 
     257 
     258    def set_baseband_freq(self, baseband_freq): 
     259        self.set_scale(baseband_freq) 
     260        self.fftsink.set_baseband_freq(baseband_freq) 
     261         
    243262    def on_close_window (self, event): 
    244263        print "fft_window:on_close_window" 
     
    257276                dB = self.peak_vals 
    258277 
    259         x = max(abs(self.fftsink.sample_rate), abs(self.fftsink.baseband_freq)) 
    260         if x >= 1e9: 
    261             sf = 1e-9 
    262             self.units = "GHz" 
    263             self.format = "%3.6f" 
    264         elif x >= 1e6: 
    265             sf = 1e-6 
    266             self.units = "MHz" 
    267             self.format = "%3.3f" 
    268         else: 
    269             sf = 1e-3 
    270             self.units = "kHz" 
    271             self.format = "%3.3f" 
    272  
    273278        if self.fftsink.input_is_real:     # only plot 1/2 the points 
    274             x_vals = ((numpy.arange (L/2) 
    275                       * (self.fftsink.sample_rate * sf / L)) 
    276                       + self.fftsink.baseband_freq * sf
    277             self.points = numpy.zeros((len(x_vals), 2), numpy.float64) 
    278             self.points[:,0] = x_vals 
    279             self.points[:,1] = dB[0:L/2] 
     279            x_vals = ((numpy.arange (L/2) * (self.fftsink.sample_rate  
     280                      * self._scale_factor / L)) 
     281                      + self.fftsink.baseband_freq * self._scale_factor
     282            self._points = numpy.zeros((len(x_vals), 2), numpy.float64) 
     283            self._points[:,0] = x_vals 
     284            self._points[:,1] = dB[0:L/2] 
    280285        else: 
    281286            # the "negative freqs" are in the second half of the array 
    282287            x_vals = ((numpy.arange (-L/2, L/2) 
    283                       * (self.fftsink.sample_rate * sf / L)) 
    284                       + self.fftsink.baseband_freq * sf) 
    285             self.points = numpy.zeros((len(x_vals), 2), numpy.float64) 
    286             self.points[:,0] = x_vals 
    287             self.points[:,1] = numpy.concatenate ((dB[L/2:], dB[0:L/2])) 
    288  
    289  
    290         lines = plot.PolyLine (self.points, colour='BLUE') 
    291  
     288                       * (self.fftsink.sample_rate * self._scale_factor / L)) 
     289                      + self.fftsink.baseband_freq * self._scale_factor) 
     290            self._points = numpy.zeros((len(x_vals), 2), numpy.float64) 
     291            self._points[:,0] = x_vals 
     292            self._points[:,1] = numpy.concatenate ((dB[L/2:], dB[0:L/2])) 
     293 
     294        lines = plot.PolyLine (self._points, colour='BLUE') 
    292295        graphics = plot.PlotGraphics ([lines], 
    293296                                      title=self.fftsink.title, 
    294                                       xLabel = self.units, yLabel = "dB") 
     297                                      xLabel = self._units, yLabel = "dB") 
    295298 
    296299        self.Draw (graphics, xAxis=None, yAxis=self.y_range) 
    297300        self.update_y_range () 
     301 
    298302 
    299303    def set_peak_hold(self, enable): 
     
    346350            self.fftsink.set_y_per_div(20) 
    347351 
    348          
    349352    def on_right_click(self, event): 
    350353        menu = self.popup_menu 
     
    357360        # Clip to plotted values 
    358361        (ux, uy) = self.GetXY(event)      # Scaled position 
    359         x_vals = numpy.array(self.points[:,0]) 
     362        x_vals = numpy.array(self._points[:,0]) 
    360363        if ux < x_vals[0] or ux > x_vals[-1]: 
    361364            tip = self.GetToolTip() 
     
    365368 
    366369        # Get nearest X value (is there a better way)? 
    367         index = numpy.argmin(numpy.abs(x_vals-ux)) 
    368         x_val = x_vals[index
    369         db_val = self.points[index, 1] 
    370         text = (self.format+" %s dB=%3.3f") % (x_val, self.units, db_val) 
     370        ind = numpy.argmin(numpy.abs(x_vals-ux)) 
     371        x_val = x_vals[ind
     372        db_val = self._points[ind, 1] 
     373        text = (self._format+" %s dB=%3.3f") % (x_val, self._units, db_val) 
    371374 
    372375        # Display the tooltip