Adds 'ctrl-double-click to re-center on maximum power' to usrp_fft.py
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 8 Nov 2007 19:46:06 +0000 (19:46 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 8 Nov 2007 19:46:06 +0000 (19:46 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@6837 221aa14e-8319-0410-a670-987f0aec2ac5

gr-utils/src/python/usrp_fft.py

index 5aee24fe6e63ad6e1c35fb9e4b09f0b18babc7a4..fae5ae4cd75fe3f2f2843831c5c49d47ebc3d63b 100755 (executable)
@@ -28,7 +28,7 @@ from gnuradio.wxgui import stdgui2, fftsink2, waterfallsink2, scopesink2, form,
 from optparse import OptionParser
 import wx
 import sys
-
+import numpy
 
 def pick_subdevice(u):
     """
@@ -261,8 +261,18 @@ class app_top_block(stdgui2.std_top_block):
            
     def evt_left_dclick(self, event):
        (ux, uy) = self.scope.win.GetXY(event)
-       target_freq = ux/self.scope.win._scale_factor
-       self.set_freq(target_freq)
+       if event.CmdDown():
+           # Re-center on maximum power
+           points = self.scope.win._points
+            ind = numpy.argmax(points[:,1])
+            (freq, pwr) = points[ind]
+           target_freq = freq/self.scope.win._scale_factor
+            self.set_freq(target_freq)            
+       else:
+           # Re-center on clicked frequency
+           target_freq = ux/self.scope.win._scale_factor
+           self.set_freq(target_freq)
+           
        
 def main ():
     app = stdgui2.stdapp(app_top_block, "USRP FFT", nstatus=1)