Fix for working with peak hold in usrp_fft.py
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 8 Nov 2007 20:50:47 +0000 (20:50 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 8 Nov 2007 20:50:47 +0000 (20:50 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@6839 221aa14e-8319-0410-a670-987f0aec2ac5

gr-utils/src/python/usrp_fft.py
gr-wxgui/src/python/fftsink2.py

index fae5ae4cd75fe3f2f2843831c5c49d47ebc3d63b..58da671472ae6a70c7524575557f8615fd1c1a8a 100755 (executable)
@@ -235,7 +235,7 @@ class app_top_block(stdgui2.std_top_block):
                 self.myform['baseband'].set_value(r.baseband_freq)
                 self.myform['ddc'].set_value(r.dxc_freq)
            if not self.options.waterfall and not self.options.oscilloscope:
-               self.scope.set_baseband_freq(target_freq)
+               self.scope.win.set_baseband_freq(target_freq)
            return True
 
         return False
@@ -264,9 +264,16 @@ class app_top_block(stdgui2.std_top_block):
        if event.CmdDown():
            # Re-center on maximum power
            points = self.scope.win._points
-            ind = numpy.argmax(points[:,1])
+           if self.scope.win.peak_hold:
+               if self.scope.win.peak_vals is not None:
+                   ind = numpy.argmax(self.scope.win.peak_vals)
+               else:
+                   ind = int(points.shape()[0]/2)
+           else:
+               ind = numpy.argmax(points[:,1])
             (freq, pwr) = points[ind]
            target_freq = freq/self.scope.win._scale_factor
+           print ind, freq, pwr
             self.set_freq(target_freq)            
        else:
            # Re-center on clicked frequency
index 52b898a5d03bd3b992da8bcc5b3a035d91b5858e..8e07dda410ec4ada2746b19c2ef0707dfbcb8023 100755 (executable)
@@ -256,6 +256,8 @@ class fft_window (plot.PlotCanvas):
            self._format = "%3.3f"
 
     def set_baseband_freq(self, baseband_freq):
+       if self.peak_hold:
+           self.peak_vals = None
        self.set_scale(baseband_freq)
        self.fftsink.set_baseband_freq(baseband_freq)