commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r5805 - in grc/branches/jblum_work/src: . Elements Gra


From: jblum
Subject: [Commit-gnuradio] r5805 - in grc/branches/jblum_work/src: . Elements Graphics SignalBlockDefs
Date: Wed, 20 Jun 2007 18:48:03 -0600 (MDT)

Author: jblum
Date: 2007-06-20 18:48:03 -0600 (Wed, 20 Jun 2007)
New Revision: 5805

Modified:
   grc/branches/jblum_work/src/DataTypes.py
   grc/branches/jblum_work/src/Elements/GraphicalParam.py
   grc/branches/jblum_work/src/Elements/Param.py
   grc/branches/jblum_work/src/Elements/SignalBlock.py
   grc/branches/jblum_work/src/Graphics/Dialogs.py
   grc/branches/jblum_work/src/MathExprParser.py
   grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py
   grc/branches/jblum_work/src/SignalBlockDefs/Filters.py
   grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
   grc/branches/jblum_work/src/SignalBlockDefs/Misc.py
   grc/branches/jblum_work/src/SignalBlockDefs/Operators.py
   grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
   grc/branches/jblum_work/src/SignalBlockDefs/Sources.py
   grc/branches/jblum_work/src/SignalBlockDefs/USRP.py
Log:
variable params are noted, help dialog improvements, various code cleanups

Modified: grc/branches/jblum_work/src/DataTypes.py
===================================================================
--- grc/branches/jblum_work/src/DataTypes.py    2007-06-20 18:47:19 UTC (rev 
5804)
+++ grc/branches/jblum_work/src/DataTypes.py    2007-06-21 00:48:03 UTC (rev 
5805)
@@ -43,6 +43,13 @@
                self.min = min  
                ##parser messages
                self.msg = ''   
+       def __str__(self):
+               """!
+               Get the string representation of this data type.
+               This will be the parsed value, or an error message if invalid.
+               @return the string representation.
+               """
+               return self.msg
        def set_data(self, data):
                """!
                Store the data as a string.
@@ -72,7 +79,7 @@
                """             
                try: 
                        value = self.parse() 
-                       self.msg = ''
+                       self.msg = str(value)
                        return True
                except Exception, e: 
                        self.msg = str(e)

Modified: grc/branches/jblum_work/src/Elements/GraphicalParam.py
===================================================================
--- grc/branches/jblum_work/src/Elements/GraphicalParam.py      2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/Elements/GraphicalParam.py      2007-06-21 
00:48:03 UTC (rev 5805)
@@ -147,12 +147,11 @@
                if old_data != new_data: data_type.set_data(new_data)
                #       Set the markup on the label, red for errors in 
corresponding data type. #
                cname = self.get_cname()
-               if not data_type.is_valid(): 
-                       self.input.set_markup('<span 
foreground="red"><b>'+cname+'</b></span>')
-                       if self.input.tp: 
self.input.tp.set_tip(self.input.entry, data_type.msg)
-               else: 
-                       self.input.set_markup(cname)    
-                       if self.input.tp: 
self.input.tp.set_tip(self.input.entry, str(data_type.parse()))
+               if self.variable: cname = '<span 
underline="low">%s</span>'%cname #alter format if the param is variable
+               if not data_type.is_valid(): self.input.set_markup('<span 
foreground="red"><b>%s</b></span>'%cname)
+               else: self.input.set_markup(cname)
+               # set the tooltip #                     
+               if self.input.tp: self.input.tp.set_tip(self.input.entry, 
str(data_type))       
                # execute the external callback #
                if self.callback: self.callback(self)
 

Modified: grc/branches/jblum_work/src/Elements/Param.py
===================================================================
--- grc/branches/jblum_work/src/Elements/Param.py       2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/Elements/Param.py       2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -22,16 +22,18 @@
 
 class Param:
        """A param holds a single signal block parameter: a data type and a 
canonical name."""
-       def __init__(self, cname, data_type):
+       def __init__(self, cname, data_type, variable=False):
                """!
                Param constructor. Set the data type and cname.
                @param cname the canonical name
                @param data_type the data type
+               @param variable true if the param can be changed at runtime
                """
                self.cname = cname
                self.data_type = data_type
                ##the graphical input object            
                self.input = None       
+               self.variable = variable
                
        def get_cname(self):
                """!

Modified: grc/branches/jblum_work/src/Elements/SignalBlock.py
===================================================================
--- grc/branches/jblum_work/src/Elements/SignalBlock.py 2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/Elements/SignalBlock.py 2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -159,15 +159,16 @@
                """
                self.output_sockets.append(self.output_socket_constructor(self, 
cname, self.get_num_output_sockets(), data_type, optional, vlen))
                
-       def add_param(self, cname, data_type, show_label=True, type=False, 
output_sockets_controller=False, input_sockets_controller=False):
+       def add_param(self, cname, data_type, show_label=True, type=False, 
output_sockets_controller=False, input_sockets_controller=False, 
variable=False):
                """!
                Add a parameter with its cname and data type.
                @param show_label true to display the parameter in the signal 
block's label
                @param type true if this param is an enum to be controlled via 
a keypress
                @param output_sockets_controller register this parameter to set 
the number of output sockets 
                @param input_sockets_controller register this parameter to set 
the number of input sockets
+               @param variable true if the param can be changed at runtime
                """
-               param = self.param_constructor(cname, data_type)
+               param = self.param_constructor(cname, data_type, variable)
                if show_label: self.displayed_params.append(param)
                if type: self.type_controller = data_type
                if output_sockets_controller: self.output_sockets_controller = 
data_type

Modified: grc/branches/jblum_work/src/Graphics/Dialogs.py
===================================================================
--- grc/branches/jblum_work/src/Graphics/Dialogs.py     2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/Graphics/Dialogs.py     2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -178,12 +178,13 @@
                        ('Short Vector', Colors.SHORT_VECTOR_COLOR_SPEC),       
                                                                        
                        ('Byte Vector', Colors.BYTE_VECTOR_COLOR_SPEC),
                ):
-                       if type(color_spec) == type(str()): markup = 
'%s\n\n<b>%s</b>'%(markup, color_spec)
+                       width = 20 #width in monospace characters
+                       if type(color_spec) == type(str()): markup = 
'%s\n\n<b>%s</b>'%(markup, color_spec.center(width, ' '))
                        else:   
-                               tag,spec = color_spec                           
-                               markup = '%s\n<span 
background="%s">%s</span>'%(markup, spec, tag)
+                               tag,spec = color_spec                           
        
+                               markup = '%s\n<span 
background="%s">%s</span>'%(markup, spec, tag.center(width, ' '))
                label = gtk.Label()
-               label.set_markup(markup[1:]+'\n')       #strip 1st newline, 
append newline
+               label.set_markup('<tt>%s</tt>\n'%markup[1:])    #strip 1st 
newline, append newline
                label.show()
                self.vbox.pack_start(label, False)
                self.run()
@@ -215,9 +216,9 @@
                        ('Flow Graph Run', 'F5'),
                        ('Flow Graph Stop', 'F7'),
                        ('Screen Shot', 'PrintScreen'),
-               ): markup = '%s\n<b>%s:</b> %s'%(markup, action, hotkey)
+               ): markup = '%s\n<b>%s:</b>%s'%(markup, action, 
hotkey.rjust(25-len(action),' '))
                label = gtk.Label()
-               label.set_markup(markup+'\n')   #append newline
+               label.set_markup('<tt>%s</tt>\n'%markup)        #append newline
                label.show()
                self.vbox.pack_start(label, False)
                self.run()
@@ -285,8 +286,5 @@
                
        def _handle_changed(self, param=None):
                """Handle changed in the param's entry box by updating the text 
box."""
-               if self.param.get_data_type().is_valid():
-                       text = str(self.param.get_data_type().parse())
-               else: text = self.param.get_data_type().msg
-               self.text_box.set_text(text)    
+               self.text_box.set_text(str(self.param.get_data_type())) 
                
\ No newline at end of file

Modified: grc/branches/jblum_work/src/MathExprParser.py
===================================================================
--- grc/branches/jblum_work/src/MathExprParser.py       2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/MathExprParser.py       2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -432,6 +432,11 @@
                elif _is_constant(element): nested_elements[i] = 
_CONSTANTS[element]
                # substitute in values for numbers #
                elif _is_number(element): nested_elements[i] = 
verify_number(element)                   
+       def comma_separate(ans):
+               if not _is_list(ans): ans = [ans]       #must be a list
+               ans_with_commas = list()
+               for an in ans: ans_with_commas.extend([an, ','])
+               return ans_with_commas[0:-1]    #remove last comma      
        # handle functions #
        for function in _FUNCTIONS.keys():
                while function in nested_elements:
@@ -442,10 +447,7 @@
                        try: ans = _FUNCTIONS[function](*args)
                        except Exception, e: 
                                raise SyntaxError, 'Function "%s" with 
arguments "%s" failed.\n\t%s'%(function, nested_elements[i+1], e)
-                       if not _is_list(ans): ans = [ans]       # ans must be a 
list
-                       ans_with_commas = list()
-                       for an in ans: ans_with_commas.extend([an, ','])
-                       nested_elements = nested_elements[0:i] + 
ans_with_commas[0:-1] + nested_elements[i+2:]          
+                       nested_elements = nested_elements[0:i] + 
comma_separate(ans) + nested_elements[i+2:]            
        # simplify operations #
        for operator in _ORDER_OF_OPS:
                while operator in nested_elements:
@@ -456,10 +458,7 @@
                        #raise error if arg1 or arg2 is None
                        if arg1 == None or arg2 == None: raise SyntaxError, 
'Operator "%s" is missing argument.'%(operator)
                        ans = _handle_operation(operator, arg1, arg2)
-                       if not _is_list(ans): ans = [ans]       # ans must be a 
list
-                       ans_with_commas = list()
-                       for an in ans: ans_with_commas.extend([an, ','])
-                       nested_elements = nested_elements[0:i-1] + 
ans_with_commas[0:-1] + nested_elements[i+2:]                
+                       nested_elements = nested_elements[0:i-1] + 
comma_separate(ans) + nested_elements[i+2:]          
        # convert comma separated elements into a list #
        vector = list() 
        last_element = None
@@ -467,11 +466,13 @@
                if not _is_comma(element): 
                        if not _is_list(element) and not _is_number(element) 
and element not in _CONSTANTS.values(): 
                                raise NameError, 'Unknown symbol 
"%s".'%(element)
-                       if last_element and not _is_comma(last_element): 
+                       if last_element and not _is_comma(last_element): 
#elements not separated by commas
                                raise SyntaxError, 'Expected comma, but found 
"%s".'%(element)
-                       vector.append(element)
-               elif _is_comma(element) and _is_comma(last_element):
+                       vector.append(element)  #good syntax, record the element
+               elif _is_comma(element) and _is_comma(last_element):    #2 
commas in a row
                        raise SyntaxError, 'Commas must be separated by 
non-commas.'
+               elif _is_comma(element) and not last_element:   #a comma was 
the first element
+                       raise SyntaxError, 'A non-comma must precede a comma.'
                last_element = element
        if len(vector) == 1 and not _is_comma(last_element): return vector[0]   
#return single number
        return vector   #otherwise return vector
@@ -492,8 +493,8 @@
        return simplified
        
 if __name__ == '__main__':
-       """Evaluate expressions passed by argv1."""
+       """Evaluate expressions passed by arg1."""
        import sys
        if len(sys.argv) > 1: print eval_expr(sys.argv[1])
-       else: print "No expressions passed!"
+       else: print "The mathematical expression parser will evaluate a string 
(in quotes) passed via the command line."
        
\ No newline at end of file

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py  2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py  2007-06-21 
00:48:03 UTC (rev 5805)
@@ -144,12 +144,14 @@
        
 def ChunksToSymbols(sb):
                                        #name, fcn, input, output, symbol 
table, dimensions
-       type = Enum([('Byte->Complex', (gr.chunks_to_symbols_bc, Byte(), 
Complex(), ComplexVector())),
-                                       ('Byte->Float', 
(gr.chunks_to_symbols_bf, Byte(), Float(), FloatVector())),
-                                       ('Int->Complex', 
(gr.chunks_to_symbols_ic, Int(), Complex(), ComplexVector())),
-                                       ('Int->Float', 
(gr.chunks_to_symbols_if, Int(), Float(), FloatVector())),
-                                       ('Short->Complex', 
(gr.chunks_to_symbols_sc, Short(), Complex(), ComplexVector())),
-                                       ('Short->Float', 
(gr.chunks_to_symbols_sf, Short(), Float(), FloatVector())),])
+       type = Enum([
+               ('Byte->Complex', (gr.chunks_to_symbols_bc, Byte(), Complex(), 
ComplexVector())),
+               ('Byte->Float', (gr.chunks_to_symbols_bf, Byte(), Float(), 
FloatVector())),
+               ('Int->Complex', (gr.chunks_to_symbols_ic, Int(), Complex(), 
ComplexVector())),
+               ('Int->Float', (gr.chunks_to_symbols_if, Int(), Float(), 
FloatVector())),
+               ('Short->Complex', (gr.chunks_to_symbols_sc, Short(), 
Complex(), ComplexVector())),
+               ('Short->Float', (gr.chunks_to_symbols_sf, Short(), Float(), 
FloatVector())),
+       ])
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Variable(type, index=2))
        sb.add_param('Type', type, type=True)   
@@ -164,7 +166,7 @@
        sb.add_output_socket('out', Variable(type), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Inputs', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
input_sockets_controller=True)
+               show_label=False, input_sockets_controller=True)
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''1 <= Num Inputs <= %d'''%MAX_NUM_SOCKETS)        
        return sb, lambda fg, type, num_inputs, vlen: 
gr.interleave(type.parse().get_num_bytes()*vlen.parse())
@@ -176,7 +178,7 @@
        sb.add_output_socket('out', Variable(type), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Outputs', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
output_sockets_controller=True)       
+               show_label=False, output_sockets_controller=True)       
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''1 <= Num Outputs <= %d'''%MAX_NUM_SOCKETS)       
        return sb, lambda fg, type, num_outputs, vlen: 
gr.deinterleave(type.parse().get_num_bytes()*vlen.parse())
@@ -189,7 +191,7 @@
        sb.add_output_socket('out', Variable(type), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
input_sockets_controller=True)
+               show_label=False, input_sockets_controller=True)
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''\
 Interleave N streams into a single stream.     
@@ -204,7 +206,7 @@
        sb.add_output_socket('out', Variable(type), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
output_sockets_controller=True)       
+               show_label=False, output_sockets_controller=True)       
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''\
 Deinterleave a stream into N streams.
@@ -219,7 +221,7 @@
        sb.add_output_socket('vout', Variable(type, index=0))
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
input_sockets_controller=True)        
+               show_label=False, input_sockets_controller=True)        
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''\
 Convert N streams into a vector-stream of length N.
@@ -234,7 +236,7 @@
        sb.add_output_socket('out', Variable(type, index=1), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS), 
-                                       show_label=False, 
output_sockets_controller=True)       
+               show_label=False, output_sockets_controller=True)       
        sb.add_param('Vector Length', vlen)     
        sb.set_docs('''\
 Convert a vector-stream of length N into N streams.

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Filters.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Filters.py      2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Filters.py      2007-06-21 
00:48:03 UTC (rev 5805)
@@ -41,7 +41,7 @@
        sb.add_param('Filter Type', filters, False, type=True)
        sb.add_param('Type', Enum([('Decimating', 0), ('Interpolating', 1)]))   
#this parses into an index for the filters Enum
        sb.add_param('Decimation', Int(1, min=1))       
-       sb.add_param('Taps', Variable(filters, index=4, min=1)) 
+       sb.add_param('Taps', Variable(filters, index=4, min=1), variable=True)  
        sb.set_docs('''\
 The decimation parameter becomes interpolation if the filter type is set to 
interpolation. ''')
        def make(fg, filter_type, type, decim, taps):
@@ -65,9 +65,9 @@
        sb.add_param('Input Type', filters, False, type=True)
        sb.add_param('Taps Type', taps) #this parses into an index for the 
filters Enum
        sb.add_param('Samp Rate', Float(default_samp_rate))
-       sb.add_param('Center Freq', Float())
+       sb.add_param('Center Freq', Float(), variable=True)
        sb.add_param('Decimation', Int(1, min=1))       
-       sb.add_param('Taps', Variable(taps, index=1, min=1))
+       sb.add_param('Taps', Variable(taps, index=1, min=1), variable=True)
        def make(fg, filter_type, taps_type, samp_rate, center_freq, decim, 
taps):
                block = 
filter_type.parse()[taps_type.parse()[0]](decim.parse(), taps.parse(), 
center_freq.parse(), samp_rate.parse())
                fg.add_callback(block.set_taps, taps)
@@ -84,7 +84,7 @@
        sb.add_output_socket('out', Variable(filters, index=1))
        sb.add_param('Type', filters, False, type=True)
        sb.add_param('Decimation', Int(1, min=1))       
-       sb.add_param('Taps', Variable(filters, index=2, min=1))
+       sb.add_param('Taps', Variable(filters, index=2, min=1), variable=True)
        sb.set_docs('''The type selection controls the data type of the input, 
output, and taps.''')
        def make(fg, type, decim, taps):
                block = type.parse()[0](decim.parse(), taps.parse())
@@ -106,7 +106,7 @@
        sb.add_param('Filter Type', filters, False, type=True)
        sb.add_param('Interpolation', Int(1, min=1))    
        sb.add_param('Decimation', Int(1, min=1))       
-       sb.add_param('Taps', Variable(filters, index=3, min=1))
+       sb.add_param('Taps', Variable(filters, index=3, min=1), variable=True)
        def make(fg, filter_type, interp, decim, taps):
                block = filter_type.parse()[0](interp.parse(), decim.parse(), 
taps.parse())
                fg.add_callback(block.set_taps, taps)
@@ -217,17 +217,17 @@
        sb.add_input_socket('in', Variable(filters, index=1))
        sb.add_output_socket('out', Variable(filters, index=2))
        sb.add_param('Filter Type', filters, type=True)
-       sb.add_param('Gain', Float(1))
-       sb.add_param('Sampling Rate', Float(default_samp_rate))
+       sb.add_param('Gain', Float(1), variable=True)
+       sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
        if taps_maker in (gr.firdes.low_pass, gr.firdes.high_pass): 
-               sb.add_param('Cutoff Freq', Float(1000))
+               sb.add_param('Cutoff Freq', Float(1000), variable=True)
        elif taps_maker in (gr.firdes.band_pass, gr.firdes.band_reject):
-               sb.add_param('Low Cutoff Freq', Float(500))
-               sb.add_param('High Cutoff Freq', Float(1500))
-       sb.add_param('Transition Width', Float(100))            
+               sb.add_param('Low Cutoff Freq', Float(500), variable=True)
+               sb.add_param('High Cutoff Freq', Float(1500), variable=True)
+       sb.add_param('Transition Width', Float(100), variable=True)             
        sb.add_param('Decimation', Int(1, min=1))
        sb.add_param('Window Type', windows)
-       sb.add_param('Beta', Float(6.76))
+       sb.add_param('Beta', Float(6.76), variable=True)
        sb.set_docs('''\
 The decimation parameter becomes interpolation if the filter type is set to 
interpolation.''')
 
@@ -240,8 +240,8 @@
        sb.add_param('Filter Type', filters, type=True)
        sb.add_param('Decimation', Int(1, min=1))
        sb.add_param('Window Type', windows)
-       sb.add_param('Num Taps', Int(20, min=0))
-       sb.add_param('Beta', Float(6.76))
+       sb.add_param('Num Taps', Int(20, min=0), variable=True)
+       sb.add_param('Beta', Float(6.76), variable=True)
        def make(fg, filter_type, decimation, window, ntaps, beta):
                taps_args = (window, ntaps, beta)
                return make_filter(fg, filter_type, decimation, taps_maker, 
taps_args)
@@ -254,11 +254,11 @@
        sb.add_output_socket('out', Variable(filters, index=2))
        sb.add_param('Filter Type', filters, type=True)         
        sb.add_param('Decimation', Int(1, min=1))
-       sb.add_param('Gain', Float(1))
-       sb.add_param('Sampling Rate', Float(default_samp_rate))
-       sb.add_param('Symbol Rate', Float(100))
-       sb.add_param('Alpha', Float(6.76))
-       sb.add_param('Num Taps', Int(20, min=0))                
+       sb.add_param('Gain', Float(1), variable=True)
+       sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
+       sb.add_param('Symbol Rate', Float(100), variable=True)
+       sb.add_param('Alpha', Float(6.76), variable=True)
+       sb.add_param('Num Taps', Int(20, min=0), variable=True)         
        def make(fg, filter_type, decimation, gain, samp_freq, symbol_rate, 
alpha, ntaps):              
                taps_args = (gain, samp_freq, symbol_rate, alpha, ntaps)
                return make_filter(fg, filter_type, decimation, taps_maker, 
taps_args)
@@ -287,8 +287,8 @@
        fcn = gr.simple_squelch_cc
        sb.add_input_socket('in', Complex())
        sb.add_output_socket('out', Complex())
-       sb.add_param('Threshold (dB)', Float(30))
-       sb.add_param('Alpha', Float(.5))
+       sb.add_param('Threshold (dB)', Float(30), variable=True)
+       sb.add_param('Alpha', Float(.5), variable=True)
        sb.set_docs('''Power levels below the threshold are not passed 
through.''')
        def make(fg, threshold, alpha):
                block = fcn(threshold.parse(), alpha.parse())
@@ -306,7 +306,7 @@
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Variable(type, index=1), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Alpha', Float(1))
+       sb.add_param('Alpha', Float(1), variable=True)
        sb.add_param('Vector Length', vlen)
        def make(fg, type, alpha, vlen):
                block = type.parse()[0](alpha.parse(), vlen.parse())
@@ -366,10 +366,10 @@
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Omega', Float())
-       sb.add_param('Gain Omega', Float())
-       sb.add_param('Mu', Float())
-       sb.add_param('Gain Mu', Float())
+       sb.add_param('Omega', Float(), variable=True)
+       sb.add_param('Gain Omega', Float(), variable=True)
+       sb.add_param('Mu', Float(), variable=True)
+       sb.add_param('Gain Mu', Float(), variable=True)
        sb.add_param('Omega Relative Limit', Float())
        sb.set_docs('''Mueller & Mueller clock recovery.''')
        def make(fg, type, omega, gain_omega, mu, gain_mu, omega_rel_limit): 
@@ -393,8 +393,8 @@
        sb.add_param('FFT Size', Int(512, min=1))
        sb.add_param('Window', Enum(window_choices, 1)) 
        sb.add_param('Beta', Float(6.76))
-       return sb, lambda fg, type, size, window, beta: 
type.parse()[0](size.parse(), True, 
-                                                                               
        taps_maker(window.parse(), size.parse(), beta.parse()))
+       return sb, lambda fg, type, size, window, beta: \
+               type.parse()[0](size.parse(), True, taps_maker(window.parse(), 
size.parse(), beta.parse()))
 
 def IFFT(sb):
        fcn = gr.fft_vcc
@@ -404,9 +404,8 @@
        sb.add_param('FFT Size', Int(512, min=1))
        sb.add_param('Window', Enum(window_choices, 1), type=True)      
        sb.add_param('Beta', Float(6.76))
-       return sb, lambda fg, size, window, beta: fcn(size.parse(), False, 
-                                                                               
                                        taps_maker(window.parse(), 
-                                                                               
                                        size.parse(), beta.parse()))
+       return sb, lambda fg, size, window, beta: \
+               fcn(size.parse(), False, taps_maker(window.parse(), 
size.parse(), beta.parse()))
                                                                                
                                        
 def Upsample(sb):
        taps_maker = gr.firdes.window
@@ -429,7 +428,7 @@
        sb.add_input_socket('in', Variable(type))
        sb.add_output_socket('out', Variable(type))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Decimation (M)', Int(1, min=1))
+       sb.add_param('Decimation (M)', Int(1, min=1), variable=True)
        sb.set_docs('''\
 Reduce the sample rate by keeping every Mth sample.
 >>> Implements the gr.keep_one_in_n block.''')

Modified: grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py       
2007-06-20 18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py       
2007-06-21 00:48:03 UTC (rev 5805)
@@ -38,8 +38,8 @@
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Title', String('FFT'))    
        sb.add_param('Sampling Rate', Int(default_samp_rate))
-       sb.add_param('Y per div', Int(20))
-       sb.add_param('Reference Level', Int(20))
+       sb.add_param('Y per div', Int(20), variable=True)
+       sb.add_param('Reference Level', Int(20), variable=True)
        sb.add_param('FFT Size', Int(512))      
        sb.add_param('FFT Rate', Int(15))       
        sb.add_param('Options', Enum([('Off', None), ('Average Values', 1), 
('Peak Hold', 2)]))
@@ -67,7 +67,7 @@
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Title', String('Waterfall'))
        sb.add_param('Sampling Rate', Int(default_samp_rate))
-       sb.add_param('Baseband Freq', Int(0))
+       sb.add_param('Baseband Freq', Int(0), variable=True)
        sb.add_param('Y per div', Int(20))
        sb.add_param('Reference Level', Int(20))
        sb.add_param('FFT Size', Int(512))      
@@ -142,12 +142,12 @@
        sb.add_param('Title', String('Number'))
        sb.add_param('Unit', String('Units'))
        sb.add_param('Sampling Rate', Int(default_samp_rate))
-       sb.add_param('Base Value', Float(0.0))
+       sb.add_param('Base Value', Float(0.0), variable=True)
        sb.add_param('Min Value', Float(-100))
        sb.add_param('Max Value', Float(100))
        sb.add_param('Factor', Float(1.0))
-       sb.add_param('Decimal Places', Int(6))
-       sb.add_param('Reference Level', Int(50))
+       sb.add_param('Decimal Places', Int(6), variable=True)
+       sb.add_param('Reference Level', Int(50), variable=True)
        sb.add_param('Number Rate', Int(15))    
        sb.add_param('Options', Enum([('Off', None), ('Average Values', 1), 
('Peak Hold', 2)]))
        sb.add_param('Gauge', Bool(true='Show', false='Hide', default=True))

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Misc.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Misc.py 2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Misc.py 2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -69,7 +69,7 @@
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Float())
        sb.add_param('Input Type', type, False, type=True)
-       sb.add_param('Alpha', Float(0.0001))
+       sb.add_param('Alpha', Float(0.0001), variable=True)
        def make(fg, type, alpha):
                block = type.parse()[0](alpha.parse())
                fg.add_callback(block.set_alpha, alpha)
@@ -143,7 +143,7 @@
        sb.add_output_socket('out', Variable(type), vlen=vlen)
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Sampling Rate', Float(default_samp_rate)) 
-       sb.add_param('Open', Int(1))    
+       sb.add_param('Open', Int(1), variable=True)     
        sb.add_param('Vector Length', vlen)
        sb.set_docs('''\
 When open is 1, the valve will forward data.

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Operators.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Operators.py    2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Operators.py    2007-06-21 
00:48:03 UTC (rev 5805)
@@ -61,7 +61,7 @@
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Constant', Variable(type, 1, index=1))
+       sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
        def make(fg, type, constant): 
                block = type.parse()[0](constant.parse())
                fg.add_callback(block.set_k, constant)  
@@ -76,7 +76,7 @@
        sb.add_input_socket('vin', Variable(type, index=1))
        sb.add_output_socket('vout', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Constant', Variable(type, 1, index=1))
+       sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
        def make(fg, type, constant): 
                block = type.parse()[0](constant.parse())
                fg.add_callback(block.set_k, constant)  
@@ -118,7 +118,7 @@
        sb.add_input_socket('in', Variable(type, index=1))
        sb.add_output_socket('out', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Constant', Variable(type, 1, index=1))
+       sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
        def make(fg, type, constant): 
                block = type.parse()[0](constant.parse())
                fg.add_callback(block.set_k, constant)  
@@ -133,7 +133,7 @@
        sb.add_input_socket('vin', Variable(type, index=1))
        sb.add_output_socket('vout', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Constant', Variable(type, 1, index=1))
+       sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
        def make(fg, type, constant): 
                block = type.parse()[0](constant.parse())
                fg.add_callback(block.set_k, constant)  

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py        2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py        2007-06-21 
00:48:03 UTC (rev 5805)
@@ -37,7 +37,6 @@
        return sb, lambda fg, type, vlen: 
gr.null_sink(type.parse().get_num_bytes()*vlen.parse())
 
 def FileSink(sb):
-       import Constants
        type = Enum(all_choices, 1)
        vlen = Int(1, min=1)
        sb.add_input_socket('in', Variable(type), vlen=vlen)
@@ -148,7 +147,7 @@
                item_size = type.parse().get_num_bytes()
                block = gr.message_sink(item_size, msgq, True)
                var_sink_thread = VariableSinkThread(fg, var_key.parse(), msgq)
-               return throttle(fg, item_size, samp_rate.parse(), block, True)
+               return ThrottleHelper(fg, item_size, samp_rate.parse(), block, 
True)
        return sb, make 
        
        
\ No newline at end of file

Modified: grc/branches/jblum_work/src/SignalBlockDefs/Sources.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Sources.py      2007-06-20 
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Sources.py      2007-06-21 
00:48:03 UTC (rev 5805)
@@ -24,6 +24,7 @@
 from gnuradio import gr
 from SignalBlockConstants import *
 from Constants import DEFAULT_FILE_PATH
+import random
 
 MAX_SEED = 1000000     #constraint for seed generation in noise and random 
source 
 
@@ -36,10 +37,12 @@
        return sb, lambda fg, type, vlen: 
gr.null_source(type.parse().get_num_bytes()*vlen.parse())
        
 def SignalSource(sb):
-       type = Enum([('Complex', (gr.sig_source_c, Complex())), 
-                                       ('Float', (gr.sig_source_f, Float())), 
-                                       ('Int', (gr.sig_source_i, Int())), 
-                                       ('Short', (gr.sig_source_s, 
Short())),], 1)
+       type = Enum([
+               ('Complex', (gr.sig_source_c, Complex())), 
+               ('Float', (gr.sig_source_f, Float())), 
+               ('Int', (gr.sig_source_i, Int())), 
+               ('Short', (gr.sig_source_s, Short())),
+       ], 1)
        wfm_types = [('Constant', gr.GR_CONST_WAVE), 
                                        ('Cosine', gr.GR_COS_WAVE), 
                                        ('Sine', gr.GR_SIN_WAVE),]
@@ -49,11 +52,11 @@
        except: print ">>> sig source missing sqr, tri, saw waveform types"
        sb.add_output_socket('out', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
-       sb.add_param('Sampling Rate', Float(default_samp_rate))
+       sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
        sb.add_param('Wave Form', Enum(wfm_types, 1))
-       sb.add_param('Frequency', Float(1000))
-       sb.add_param('Ampliude', Float(1))
-       sb.add_param('Offset', Variable(type, index=1))
+       sb.add_param('Frequency', Float(1000), variable=True)
+       sb.add_param('Ampliude', Float(1), variable=True)
+       sb.add_param('Offset', Variable(type, index=1), variable=True)
        def make(fg, type, samp_freq, waveform, freq, amplitude, offset):
                block = type.parse()[0](samp_freq.parse(), waveform.parse(), 
freq.parse(), amplitude.parse(), offset.parse())           
                fg.add_callback(block.set_sampling_freq, samp_freq)
@@ -64,18 +67,19 @@
        return sb, make
        
 def NoiseSource(sb):
-       import random
-       type = Enum([('Complex', (gr.noise_source_c, Complex())), 
-                                       ('Float', (gr.noise_source_f, 
Float())), 
-                                       ('Int', (gr.noise_source_i, Int())), 
-                                       ('Short', (gr.noise_source_s, 
Short())),], 1)
+       type = Enum([
+               ('Complex', (gr.noise_source_c, Complex())), 
+               ('Float', (gr.noise_source_f, Float())), 
+               ('Int', (gr.noise_source_i, Int())), 
+               ('Short', (gr.noise_source_s, Short())),
+       ], 1)
        sb.add_output_socket('out', Variable(type, index=1))
        sb.add_param('Type', type, False, type=True)
        sb.add_param('Noise Type', Enum([('Uniform', gr.GR_UNIFORM), 
                                                                                
                ('Gaussian', gr.GR_GAUSSIAN), 
                                                                                
                ('Laplacian', gr.GR_LAPLACIAN),
                                                                                
                ('Impulse', gr.GR_IMPULSE)],1))
-       sb.add_param('Ampliude', Float(.1))
+       sb.add_param('Ampliude', Float(.1), variable=True)
        sb.add_param('Seed', Int(random.randint(0, MAX_SEED), min=0, 
max=MAX_SEED))     
        def make(fg, type, noise_type, amplitude, seed):
                block = type.parse()[0](noise_type.parse(), amplitude.parse(), 
seed.parse())    
@@ -84,7 +88,6 @@
        return sb, make 
        
 def FileSource(sb):
-       import Constants
        type = Enum(all_choices, 1)     
        vlen = Int(1, min=1)
        sb.add_output_socket('out', Variable(type), vlen=vlen)
@@ -103,11 +106,13 @@
        return sb, lambda fg, samp_rate: audio.source(samp_rate.parse())
                
 def VectorSource(sb):
-       enum_all_vector_data_types = Enum([('Complex Vector', 
(gr.vector_source_c, ComplexVector(), Complex())),
-                                                                       ('Float 
Vector', (gr.vector_source_f, FloatVector(), Float())),
-                                                                       ('Int 
Vector', (gr.vector_source_i, IntVector(), Int())),
-                                                                       ('Short 
Vector', (gr.vector_source_s, ShortVector(), Short())),
-                                                                       ('Byte 
Vector', (gr.vector_source_b, ByteVector(), Byte()))], 1)#index of 1 makes the 
default float
+       enum_all_vector_data_types = Enum([
+               ('Complex Vector', (gr.vector_source_c, ComplexVector(), 
Complex())),
+               ('Float Vector', (gr.vector_source_f, FloatVector(), Float())),
+               ('Int Vector', (gr.vector_source_i, IntVector(), Int())),
+               ('Short Vector', (gr.vector_source_s, ShortVector(), Short())),
+               ('Byte Vector', (gr.vector_source_b, ByteVector(), Byte()))
+       ], 1)#index of 1 makes the default float
        sb.add_output_socket('out', Variable(enum_all_vector_data_types, 
index=2))
        sb.add_param('Type', enum_all_vector_data_types, False, type=True)
        sb.add_param('Vector', Variable(enum_all_vector_data_types, "0, 1", 
index=1))
@@ -118,11 +123,12 @@
        return sb, lambda fg, type, vector, repeat: 
type.parse()[0](vector.parse(), repeat.parse())     
        
 def RandomVector(sb):
-       import random
-       enum_all_vector_data_types = Enum([('Float', (gr.vector_source_f, 
Float())),
-                                                                       ('Int', 
(gr.vector_source_i, Int())),
-                                                                       
('Short', (gr.vector_source_s, Short())),
-                                                                       
('Byte', (gr.vector_source_b, Byte()))])
+       enum_all_vector_data_types = Enum([
+               ('Float', (gr.vector_source_f, Float())),
+               ('Int', (gr.vector_source_i, Int())),
+               ('Short', (gr.vector_source_s, Short())),
+               ('Byte', (gr.vector_source_b, Byte()))
+       ])
        sb.add_output_socket('out', Variable(enum_all_vector_data_types, 
index=1))
        sb.add_param('Type', enum_all_vector_data_types, False, type=True)
        sb.add_param('Vector Length', Int(1000, min=1))

Modified: grc/branches/jblum_work/src/SignalBlockDefs/USRP.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/USRP.py 2007-06-20 18:47:19 UTC 
(rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/USRP.py 2007-06-21 00:48:03 UTC 
(rev 5805)
@@ -54,9 +54,9 @@
                ('Side A:1', (0, 1)), 
                ('Side B:1', (1, 1)),
        ]))
-       sb.add_param('Frequency', Float())
+       sb.add_param('Frequency', Float(), variable=True)
        sb.add_param('Decimation', Int(200, min=1))
-       sb.add_param('Gain', Float(100))
+       sb.add_param('Gain', Float(100), variable=True)
        sb.add_param('Mux', Hex())
        sb.set_docs('''\
 The USRP source outputs 64 Megasamples per second / decimation.
@@ -91,9 +91,9 @@
                ('Side A', (0, 0)), 
                ('Side B', (1, 0)),
        ]))
-       sb.add_param('Frequency', Float())
+       sb.add_param('Frequency', Float(), variable=True)
        sb.add_param('Interpolation', Int(200, min=1))
-       sb.add_param('Gain', Float(0))  
+       sb.add_param('Gain', Float(0), variable=True)   
        sb.add_param('Mux', Hex())
        sb.set_docs('''\
 The USRP sink inputs 128 Megasamples per second / interpolation.
@@ -125,11 +125,11 @@
        sb.add_input_socket('Bin', Variable(type, index=1))
        sb.add_param('Input Type', type, False, type=True)
        sb.add_param('Unit Number', Int(0, min=0))
-       sb.add_param('FrequencyA', Float())
-       sb.add_param('FrequencyB', Float())
+       sb.add_param('FrequencyA', Float(), variable=True)
+       sb.add_param('FrequencyB', Float(), variable=True)
        sb.add_param('Interpolation', Int(200, min=1))
-       sb.add_param('GainA', Float(0)) 
-       sb.add_param('GainB', Float(0))
+       sb.add_param('GainA', Float(0), variable=True)  
+       sb.add_param('GainB', Float(0), variable=True)
        sb.add_param('Mux', Hex(default_mux))   
        sb.set_docs('''\
 The USRP sink inputs 128 Megasamples per second / interpolation. \





reply via email to

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