Imported Upstream version 3.2.2
[debian/gnuradio] / gr-radio-astronomy / src / python / ra_stripchartsink.py
index 93cb54f465302016a4fae69e5136f0c4ebfbdefb..76988f8f007abd06c813f5d663b9b071df19d325 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright 2003,2004,2005 Free Software Foundation, Inc.
+# Copyright 2003,2004,2005,2007 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio
 # 
@@ -21,7 +21,7 @@
 # 
 
 from gnuradio import gr, gru
-from gnuradio.wxgui import stdgui
+from gnuradio.wxgui import stdgui2
 import wx
 import gnuradio.wxgui.plot as plot
 import Numeric
@@ -33,14 +33,11 @@ import time
 default_stripchartsink_size = (640,140)
 global_yvalues = []
 
-def default_cfunc(datum):
-    return(datum)
-
 class stripchart_sink_base(object):
     def __init__(self, input_is_real=False, y_per_div=10, ref_level=50,
                  sample_rate=1, stripsize=4,
                  title='',xlabel="X", ylabel="Y", divbase=0.025,
-                 cfunc=default_cfunc, parallel=False, scaling=1.0, autoscale=False):
+                 parallel=False, scaling=1.0, autoscale=False):
 
         # initialize common attributes
         self.y_divs = 8
@@ -54,7 +51,6 @@ class stripchart_sink_base(object):
         self.ylabel = ylabel
         self.divbase = divbase
         self.scaling = scaling
-        self.cfunc = cfunc
         self.input_is_real = input_is_real
         self.msgq = gr.msg_queue(2)         # queue that holds a maximum of 2 messages
         self.vector=Numeric.zeros(stripsize,Numeric.Float64)
@@ -71,21 +67,31 @@ class stripchart_sink_base(object):
     def set_autoscale(self, auto):
         self.autoscale = auto
 
-class stripchart_sink_f(gr.hier_block, stripchart_sink_base):
-    def __init__(self, fg, parent,
+class stripchart_sink_f(gr.hier_block2, stripchart_sink_base):
+    def __init__(self, parent,
                  y_per_div=10, ref_level=50, sample_rate=1,
                  title='', stripsize=4,
                  size=default_stripchartsink_size,xlabel="X", 
-                 ylabel="Y", divbase=0.025, cfunc=default_cfunc,
+                 ylabel="Y", divbase=0.025,
                  parallel=False, scaling=1.0, autoscale=False):
 
+       if parallel == False:
+               gr.hier_block2.__init__(self, "stripchart_sink_f",
+                               gr.io_signature(1, 1, gr.sizeof_float),
+                               gr.io_signature(0, 0, 0))
+       else:
+               gr.hier_block2.__init__(self, "stripchart_sink_f",
+                               gr.io_signature(1, 1, gr.sizeof_float*stripsize),
+                               gr.io_signature(0, 0, 0))
+               
+       
         stripchart_sink_base.__init__(self, input_is_real=True,
                                y_per_div=y_per_div, ref_level=ref_level,
                                sample_rate=sample_rate,
                                stripsize=stripsize,
                                xlabel=xlabel, ylabel=ylabel, 
                                divbase=divbase, title=title,
-                               cfunc=cfunc, parallel=parallel, 
+                               parallel=parallel, 
                                scaling=scaling, autoscale=autoscale)
                                
         if (parallel == True):
@@ -94,9 +100,7 @@ class stripchart_sink_f(gr.hier_block, stripchart_sink_base):
         else:
             one = gr.keep_one_in_n (gr.sizeof_float, 1)
             sink = gr.message_sink(gr.sizeof_float, self.msgq, True)
-        fg.connect (one, sink)
-
-        gr.hier_block.__init__(self, fg, one, sink)
+        self.connect (self, one, sink)
 
         self.win = stripchart_window(self, parent, size=size)
 
@@ -182,13 +186,10 @@ class stripchart_window(plot.PlotCanvas):
         calc_min = min(indata)
         calc_max = max(indata)
         d = calc_max - calc_min
-        d *= 0.1
+        d = d * 0.1
         if self.stripchartsink.autoscale == True and self.stripchartsink.parallel == True:
             self.y_range = self._axisInterval ('min', calc_min-d, calc_max+d)
 
-        if (self.stripchartsink.parallel != True):
-            indata = self.stripchartsink.cfunc(indata)
-
         N = self.stripchartsink.stripsize
         if self.stripchartsink.parallel != True:
            for i in range(1,N):