commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r3772 - gnuradio/trunk/gr-radio-astronomy/src/python


From: mleech
Subject: [Commit-gnuradio] r3772 - gnuradio/trunk/gr-radio-astronomy/src/python
Date: Tue, 10 Oct 2006 20:36:24 -0600 (MDT)

Author: mleech
Date: 2006-10-10 20:36:24 -0600 (Tue, 10 Oct 2006)
New Revision: 3772

Modified:
   gnuradio/trunk/gr-radio-astronomy/src/python/ra_waterfallsink.py
   gnuradio/trunk/gr-radio-astronomy/src/python/usrp_ra_receiver.py
Log:
Added "Spectral Cursor" functionality into the waterfall display.



Modified: gnuradio/trunk/gr-radio-astronomy/src/python/ra_waterfallsink.py
===================================================================
--- gnuradio/trunk/gr-radio-astronomy/src/python/ra_waterfallsink.py    
2006-10-11 00:16:02 UTC (rev 3771)
+++ gnuradio/trunk/gr-radio-astronomy/src/python/ra_waterfallsink.py    
2006-10-11 02:36:24 UTC (rev 3772)
@@ -193,7 +193,7 @@
         wx.Panel.__init__(self, parent, id, pos, size, style, name)
 
         self.fftsink = fftsink
-        self.bm = wx.EmptyBitmap(1024, 300, -1)
+        self.bm = wx.EmptyBitmap(1024, 512, -1)
 
         self.scale_factor = self.fftsink.scaling
         
@@ -211,6 +211,7 @@
         
         wx.EVT_CLOSE (self, self.on_close_window)
         self.Bind(wx.EVT_RIGHT_UP, self.on_right_click)
+        self.Bind(wx.EVT_MOTION, self.on_motion)
 
         self.input_watcher = input_watcher(fftsink.msgq, fftsink.fft_size, 
self)
 
@@ -295,7 +296,7 @@
 
         dc1 = wx.MemoryDC()
         dc1.SelectObject(self.bm)
-        dc1.Blit(0,1,1024,300,dc1,0,0,wx.COPY,False,-1,-1)
+        dc1.Blit(0,1,1024,512,dc1,0,0,wx.COPY,False,-1,-1)
 
         x = max(abs(self.fftsink.sample_rate), abs(self.fftsink.baseband_freq))
         if x >= 1e9:
@@ -330,8 +331,6 @@
                idx = min(WATERFALL_WIDTH-1,idx)
                x_positions[idx] = idx
                y_values[idx] = y_values[idx] + value
-               #dc1.SetPen(self.pens[value])
-               #dc1.DrawRectangle(x_pos*p_width, 0, p_width, 1) 
         else:                               # complex fft
            for x_pos in range(0, d_max):    # positive freqs
                value = int(dB[x_pos] * scale_factor)
@@ -340,8 +339,6 @@
                idx = min(WATERFALL_WIDTH-1,idx)
                x_positions[idx] = idx
                y_values[idx] = y_values[idx] + value
-               #dc1.SetPen(self.pens[value])
-               #dc1.DrawRectangle(x_pos*p_width + d_max, 0, p_width, 1) 
            for x_pos in range(0 , d_max):   # negative freqs
                value = int(dB[x_pos+d_max] * scale_factor)
                value = min(255, max(0, value))
@@ -349,8 +346,6 @@
                idx = min(WATERFALL_WIDTH-1,idx)
                x_positions[idx] = idx
                y_values[idx] = y_values[idx] + value
-               #dc1.SetPen(self.pens[value])
-               #dc1.DrawRectangle(x_pos*p_width, 0, p_width, 1) 
 
         for i in range(0,WATERFALL_WIDTH):
             yv = y_values[i]/x_scale
@@ -371,6 +366,11 @@
             item.Check(pred())
         self.PopupMenu(menu, event.GetPosition())
 
+    def on_motion(self, event):
+        if not self.fftsink.xydfunc == None:
+            pos = event.GetPosition()
+            self.fftsink.xydfunc(pos)
+
     def on_scaling(self, evt):
         Id = evt.GetId()
         if Id == self.id_scaling_100:

Modified: gnuradio/trunk/gr-radio-astronomy/src/python/usrp_ra_receiver.py
===================================================================
--- gnuradio/trunk/gr-radio-astronomy/src/python/usrp_ra_receiver.py    
2006-10-11 00:16:02 UTC (rev 3771)
+++ gnuradio/trunk/gr-radio-astronomy/src/python/usrp_ra_receiver.py    
2006-10-11 02:36:24 UTC (rev 3772)
@@ -226,11 +226,11 @@
            self.scope = ra_fftsink.ra_fft_sink_c (self, panel, 
                fft_size=int(self.fft_size), sample_rate=self.fft_input_rate,
                fft_rate=int(self.fft_rate), title="Spectral",  
-               ofunc=self.fft_outfunc, xydfunc=None)
+               ofunc=self.fft_outfunc, xydfunc=self.xydfunc)
         else:
             self.scope = ra_waterfallsink.ra_waterfallsink_c (self, panel,
                 fft_size=int(self.fft_size), sample_rate=self.fft_input_rate,
-                fft_rate=int(self.fft_rate), title="Spectral", 
ofunc=self.fft_outfunc, xydfunc=self.xydfunc)
+                fft_rate=int(self.fft_rate), title="Spectral", 
ofunc=self.fft_outfunc, xydfunc=self.xydfunc_waterfall)
 
         # Set up ephemeris data
         self.locality = ephem.Observer()
@@ -467,10 +467,9 @@
             parent=self.panel, sizer=vbox1, label="Current LMST", weight=1)
         vbox1.Add((4,0), 0, 0)
 
-        if self.waterfall == False:
-            myform['spec_data'] = form.static_text_field(
-                parent=self.panel, sizer=vbox1, label="Spectral Cursor", 
weight=1)
-            vbox1.Add((4,0), 0, 0)
+        myform['spec_data'] = form.static_text_field(
+            parent=self.panel, sizer=vbox1, label="Spectral Cursor", weight=1)
+        vbox1.Add((4,0), 0, 0)
 
         vbox2 = wx.BoxSizer(wx.VERTICAL)
         g = self.subdev.gain_range()
@@ -870,6 +869,13 @@
         s2 = "\n%.3fkm/s" % vs
         self.myform['spec_data'].set_value(s+s2)
 
+    def xydfunc_waterfall(self,pos):
+        lower = self.observing - (self.seti_fft_bandwidth / 2)
+        upper = self.observing + (self.seti_fft_bandwidth / 2)
+        binwidth = self.seti_fft_bandwidth / 1024
+        s = "%.6fMHz" % ((lower + (pos.x*binwidth)) / 1.0e6)
+        self.myform['spec_data'].set_value(s)
+
     def toggle_cal(self):
         if (self.calstate == True):
           self.calstate = False





reply via email to

[Prev in Thread] Current Thread [Next in Thread]