commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r7535 - in grc/branches/grc_reloaded/src/grc: . elemen


From: jblum
Subject: [Commit-gnuradio] r7535 - in grc/branches/grc_reloaded/src/grc: . elements platforms/gnuradio_python platforms/gnuradio_python/blocks platforms/gnuradio_python/blocks/operators
Date: Thu, 31 Jan 2008 20:23:22 -0700 (MST)

Author: jblum
Date: 2008-01-31 20:23:21 -0700 (Thu, 31 Jan 2008)
New Revision: 7535

Removed:
   grc/branches/grc_reloaded/src/grc/Colors.py
Modified:
   grc/branches/grc_reloaded/src/grc/elements/Block.py
   grc/branches/grc_reloaded/src/grc/elements/Connection.py
   grc/branches/grc_reloaded/src/grc/elements/Element.py
   grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
   grc/branches/grc_reloaded/src/grc/elements/Param.py
   grc/branches/grc_reloaded/src/grc/elements/Port.py
   grc/branches/grc_reloaded/src/grc/elements/Range.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Port.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/block.dtd
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add_const.xml
Log:
validation in element classes

Deleted: grc/branches/grc_reloaded/src/grc/Colors.py

Modified: grc/branches/grc_reloaded/src/grc/elements/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-01 02:39:30 UTC 
(rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-01 03:23:21 UTC 
(rev 7535)
@@ -59,7 +59,7 @@
                        try: assert(key not in self.get_source_keys())
                        except AssertionError: self._exit_with_error('Key "%s" 
already exists in sources'%key)
                        #store the port
-                       self._sources[key] = source     
+                       self._sources[key] = source
                #create the sink objects
                self._sinks = odict()
                for sink in map(self.Sink, sinks):
@@ -68,17 +68,9 @@
                        try: assert(key not in self.get_sink_keys())
                        except AssertionError: self._exit_with_error('Key "%s" 
already exists in sinks'%key)
                        #store the port
-                       self._sinks[key] = sink         
+                       self._sinks[key] = sink
                #begin the testing
                self.test()
-               #work the enums
-               for param in filter(lambda p: p.get_type() == 'enum', 
self.get_params()):
-                       orig_value = param.get_value()
-                       #set each option key and run the build
-                       for option_key in param.get_option_keys():
-                               param.set_value(option_key)
-                               self.test()
-                       param.set_value(orig_value)             
 
        def test(self):
                """!
@@ -86,6 +78,15 @@
                """
                map(lambda c: c.test(), self.get_params() + self.get_sinks() + 
self.get_sources())
        
+       def validate(self):
+               """
+               Validate the block.
+               All ports and params must be valid.
+               """
+               for c in self.get_params() + self.get_sinks() + 
self.get_sources():
+                       try: assert(c.is_valid())
+                       except AssertionError: self._add_error_message('Element 
"%s" is not valid.'%c)
+                               
        def __str__(self): return 'Block: %s(%s)'%(self.get_name(), 
self.get_key())
        
        def get_doc(self): return self._doc
@@ -117,7 +118,7 @@
        def get_source(self, key): return self._sources[key]
        def get_sources(self): return self._sources.values()
        
-       def resolve_dependency(self, dep):
+       def resolve_dependencies(self, string):
                """
                Resolve a paramater dependency.
                Dependencies are simple strings. 
@@ -125,24 +126,20 @@
                Without the $, dependencies are evaluated as is.
                Dependencies are specified as $param_key where param_key is an 
existing parameter.
                For enumerated parameters, dependencies are $param_key:opt_key 
where opt_key is an existing opt key.
-               @param dep the dependency string
+               @param string the string with dependencies
                @return the resolved value
                """
-               dep = str(dep).strip()
-               if dep.startswith('$'):
-                       dep = dep[1:]
-                       keys = dep.split(':')
-                       try: assert(keys[0] in self.get_param_keys())
-                       except AssertionError: self._exit_with_error('Cannot 
find param for dependency "%s".'%dep)
-                       param = self.get_param(keys[0])
-                       if len(keys) == 1:
-                               return param.get_value()
-                       elif len(keys) == 2:
-                               try: assert(keys[1] in param.get_opt_keys())
-                               except AssertionError: 
self._exit_with_error('Cannot find opt for dependency "%s".'%dep)
-                               return param.get_opt(keys[1])
-                       else: self._exit_with_error('Dependency "%s" cannot be 
resolved.'%dep)
-               else: return dep
+               #create a dictionary of all possible dependency strings
+               deps = dict()
+               for param in self.get_params():
+                       if param.is_enum():
+                               for key in param.get_opt_keys():
+                                       deps['$'+param.get_key()+':'+key] = 
param.get_opt(key)
+                       else: deps['$'+param.get_key()] = param.get_value()
+               #replace any dependencies with actual values
+               for key,value in deps.iteritems():
+                       string = string.replace(key, value)
+               return string           
        
        ##############################################
        ## Import/Export Methods

Modified: grc/branches/grc_reloaded/src/grc/elements/Connection.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Connection.py    2008-02-01 
02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Connection.py    2008-02-01 
03:23:21 UTC (rev 7535)
@@ -29,6 +29,16 @@
        
        def __str__(self): return 'Connection: %s -> %s'%(self.get_source(), 
self.get_sink())
        
+       def validate(self):
+               """
+               Validate the connections.
+               The ports must match in type.
+               """
+               source_type = self.get_source().get_type()
+               sink_type = self.get_sink().get_type()
+               try: assert(source_type == sink_type)
+               except AssertionError: self._add_error_message('Source type 
"%s" does not match sink type "%s".'%(source_type, sink_type))
+       
        #############################
        # Access Ports
        #############################

Modified: grc/branches/grc_reloaded/src/grc/elements/Element.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Element.py       2008-02-01 
02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Element.py       2008-02-01 
03:23:21 UTC (rev 7535)
@@ -24,6 +24,7 @@
        
        def __init__(self, parent=None):
                self._parent = parent
+               self._error_messages = []
                
        def test(self):
                """
@@ -32,6 +33,25 @@
                """
                pass
                
+       def validate(self):
+               """
+               Validate the data in this element.
+               Set the error message non blank for errors.
+               Overload this method in sub-classes.
+               """
+               pass
+               
+       def is_valid(self):
+               self._error_messages = []#reset err msgs
+               self.validate()
+               return not self.get_error_message()
+               
+       def _add_error_message(self, msg):
+               self._error_messages.append(msg)
+               
+       def get_error_messages(self): 
+               return self._error_messages
+       
        def get_parent(self):
                return self._parent
                

Modified: grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py     2008-02-01 
02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py     2008-02-01 
03:23:21 UTC (rev 7535)
@@ -52,6 +52,22 @@
        
        def __str__(self): return 'FlowGraph: %s'%self.get_platform_keys()
        
+       def evaluate(self, expr):
+               """
+               Evaluate the expression.
+               @param expr the string expression
+               @throw Exception bad expression
+               @return the evaluated data
+               """
+               return eval(expr, {}, {})               
+       
+       def validate(self):
+               """
+               Validate the flow graph.
+               All connections and blocks must be valid.
+               """
+               #TODO
+       
        ##############################################
        # Access Platforms
        ##############################################

Modified: grc/branches/grc_reloaded/src/grc/elements/Param.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Param.py 2008-02-01 02:39:30 UTC 
(rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Param.py 2008-02-01 03:23:21 UTC 
(rev 7535)
@@ -81,6 +81,9 @@
 
 class Param(Element):
        
+       ##possible param types
+       TYPES = ['enum']
+       
        def __init__(self, block, name, key, value, type, range, options):
                Element.__init__(self, block)
                self._name = name
@@ -97,11 +100,11 @@
                        #store the option
                        self._options[key] = option
                #test the enum options                  
-               if self._options or self._type == 'enum':
+               if self._options or self.is_enum():
                        #test against bad combos of type and enum
                        try: assert(self._options)
                        except AssertionError: self._exit_with_error('At least 
one option must exist when type "enum" is set.')
-                       try: assert(self._type == 'enum')
+                       try: assert(self.is_enum())
                        except AssertionError: self._exit_with_error('Type 
"enum" must be set when options are present.')
                        #test against options with identical keys
                        try: assert(len(set(self.get_option_keys())) == 
len(self._options))
@@ -122,9 +125,16 @@
                call test on all children
                """
                map(lambda c: c.test(), [self.get_range()] + self.get_options())
-               #test get type
-               self.get_type()         
-               #TODO: assert type in enum or allowed in datatype
+               
+       def validate(self):
+               """
+               Validate the param.
+               The value must be evaluated and type must a possible type.
+               """
+               try: self.evaluate()
+               except: self._add_error_message('Value "%s" cannot be 
evaluated.'%self.get_value())
+               try: assert(self.get_type() in self.TYPES)
+               except AssertionError: self._add_error_message('Type "%s" is 
not a possible type.'%type)                
        
        def __str__(self): return 'Param: %s(%s)'%(self.get_name(), 
self.get_key())
        
@@ -136,8 +146,10 @@
        
        def set_value(self, value): self._value = value
        
-       def get_type(self): return 
self.get_parent().resolve_dependency(self._type)
+       def get_type(self): return 
self.get_parent().resolve_dependencies(self._type)
        
+       def is_enum(self): return self._type == 'enum'
+       
        def get_range(self): return self._range
        
        ##############################################

Modified: grc/branches/grc_reloaded/src/grc/elements/Port.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Port.py  2008-02-01 02:39:30 UTC 
(rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Port.py  2008-02-01 03:23:21 UTC 
(rev 7535)
@@ -25,17 +25,29 @@
 
 class Port(Element):
        
+       ##possible port types
+       TYPES = []
+       
        def __init__(self, block, name, key, type):     
                Element.__init__(self, block)
                self._name = name
                self._key = key
                self._type = type
-
-       def test(self):
-               self.get_type()
+               
+       def validate(self):
+               """!
+               Validate the port.
+               The port must be non-empty and type must a possible type.
+               """
+               try: assert(not self.is_empty())
+               except AssertionError: self._add_error_message('Port "%s" is 
empty.'%self)
+               try: assert(self.get_type() in self.TYPES)
+               except AssertionError: self._add_error_message('Type "%s" is 
not a possible type.'%type)                
        
        def __str__(self): return 'Port: %s(%s)'%(self.get_name(), 
self.get_key())
        
+       def get_color(self): return '#FFFFFF'
+       
        def get_name(self): return self._name
        
        def get_key(self): return self._key
@@ -44,7 +56,7 @@
                
        def is_source(self): return self in self.get_parent().get_sources()
        
-       def get_type(self): return 
self.get_parent().resolve_dependency(self._type)
+       def get_type(self): return 
self.get_parent().resolve_dependencies(self._type)
        
        def get_connections(self):
                """!

Modified: grc/branches/grc_reloaded/src/grc/elements/Range.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Range.py 2008-02-01 02:39:30 UTC 
(rev 7534)
+++ grc/branches/grc_reloaded/src/grc/elements/Range.py 2008-02-01 03:23:21 UTC 
(rev 7535)
@@ -46,17 +46,28 @@
                except: self._exit_with_error('Range "%s" cannot be parsed to 
"min, max"'%range)
                        
        def __str__(self): return 'Range: %s'%self._range               
-                               
-       def test(self):
-               #test get min and get max
-               self.get_min()
-               self.get_max()
+       
+       def validate(self):
+               """
+               Validate this range.
+               Min and max must be eval.
+               """
+               #test min
+               try: self.get_min()
+               except ValueError: self._add_error_message('The min "%s" is not 
a number'%self.get_min())
+               #test max
+               try: self.get_max()
+               except ValueError: self._add_error_message('The max "%s" is not 
a number'%self.get_max())
+               #test min <= max
+               if self.is_valid():
+                       try: assert(self.get_min() <= self.get_max())
+                       except AssertionError: self._add_error_message('The max 
"%s" is less than the min: "%s".'%(self.get_max(), self.get_min()))
                
        def get_min(self):
-               return 
float(self.get_parent().get_parent().resolve_dependency(self._min))
+               return 
float(self.get_parent().get_parent().resolve_dependencies(self._min))
                
        def get_max(self):
-               return 
float(self.get_parent().get_parent().resolve_dependency(self._max))
+               return 
float(self.get_parent().get_parent().resolve_dependencies(self._max))
                
        def in_range(self, num):
                """

Modified: grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py        
2008-02-01 02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py        
2008-02-01 03:23:21 UTC (rev 7535)
@@ -22,15 +22,23 @@
 
 from grc.elements.Block import Block as _Block
 from Port import Port
+from Param import Param
 from grc import Utils
 
 class Block(_Block):
        
+       ##override static constructor for param
+       Param = Param.make_param_from_n
        ##override static constructor for source
        Source = Port.make_source_from_n
        ##override static constructor for sink
        Sink = Port.make_sink_from_n
        
+       ##for make source to keep track of indexes
+       _source_count = 0
+       ##for make sink to keep track of indexes
+       _sink_count = 0
+               
        def __init__(self, flow_graph, doc, name, key, cat, deps, fcn, 
callbacks, params, sources, sinks):
                _Block.__init__(
                        self,                   
@@ -89,4 +97,4 @@
                        sinks=sinks,
                )
        make_block_from_n = staticmethod(make_block_from_n)             
-       
\ No newline at end of file
+       

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py    
2008-02-01 02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py    
2008-02-01 03:23:21 UTC (rev 7535)
@@ -22,9 +22,36 @@
 
 from grc.elements.FlowGraph import FlowGraph as _FlowGraph
 from Block import Block
+from Connection import Connection
 
 class FlowGraph(_FlowGraph):
        
        ##override static constructor for block
        Block = Block.make_block_from_n
-       
\ No newline at end of file
+       ##override static constructor for connection
+       Connection = Connection.make_connection_from_n
+       
+       def evaluate(self, expr):
+               """
+               Evaluate the expression.
+               @param expr the string expression
+               @throw Exception bad expression
+               @return the evaluated data
+               """
+               #bring in gnuradio modules
+               from gnuradio import gr
+               from gnuradio.gr import firdes
+               import math
+               import cmath
+               my_eval = lambda exp: eval(exp, {
+                               '__builtins__': __builtins__,
+                               'gr': gr,
+                               'firdes': firdes,
+                               'math': math,
+                               'cmath': cmath,
+                               #TODO add varables here
+                       }
+               )               
+               return my_eval(expr)
+               
+               

Modified: grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Port.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Port.py 
2008-02-01 02:39:30 UTC (rev 7534)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Port.py 
2008-02-01 03:23:21 UTC (rev 7535)
@@ -25,7 +25,10 @@
 
 class Port(_Port):
 
-       def __init__(self, block, name, key, type, vec_len, num_ports, 
optional):       
+       ##possible port types
+       TYPES = ['complex', 'float', 'int', 'short', 'byte']
+
+       def __init__(self, block, name, key, type, vlen, nports, optional):     
                _Port.__init__(
                        self, 
                        block=block,
@@ -33,27 +36,76 @@
                        key=key,
                        type=type,
                )
-               self._num_ports = num_ports
-               self._vec_len = vec_len
+               self._nports = nports
+               self._vlen = vlen
                self._optional = bool(optional)
                
        def test(self):
                _Port.test(self)
-               if self.get_num_ports():
+               if self.get_nports():
                        try: assert(int(self.get_key()) == 0)
                        except (AssertionError,ValueError): 
self._exit_with_error('Port key must be "0" when num ports is specified.')
                        try:
                                if self.is_sink(): 
assert(len(self.get_parent().get_sinks()) == 1)
                                elif self.is_source(): 
assert(len(self.get_parent().get_sources()) == 1)
                        except AssertionError: self._exit_with_error('Other 
ports not allowed when num ports is specified.')
-               self.get_vec_len()
        
-       def get_vec_len(self): return 
self.get_parent().resolve_dependency(self._vec_len)
+       def get_vlen(self): 
+               """
+               Get the vector length.
+               If the evaluation of vlen cannot be cast to an integer, return 
1.
+               @return the vector length or 1
+               """
+               vlen = self.get_parent().resolve_dependencies(self._vlen)
+               try: return int(self.get_parent().get_parent().evaluate(vlen))
+               except: return 1                 
        
-       def get_num_ports(self): return 
self.get_parent().resolve_dependency(self._num_ports)
+       def get_nports(self): 
+               """
+               Get the number of ports.
+               If already blank, return a blank
+               If the evaluation of nports cannot be cast to an integer, 
return 1.
+               @return the number of ports or 1
+               """
+               nports = self.get_parent().resolve_dependencies(self._nports)
+               #return blank if nports is blank
+               if not nports: return ''
+               try: return int(self.get_parent().get_parent().evaluate(nports))
+               except: return 1        
        
-       def get_optional(self): return 
self.get_parent().resolve_dependency(self._optional)
+       def get_optional(self): return 
self.get_parent().resolve_dependencies(self._optional)
+       
+       def get_color(self): 
+               """
+               Get the color that represents this port's type.
+               Codes differ for ports where the vec length is 1 or greater 
than 1.
+               @return a hex color code.
+               """
+               if self.get_vlen() == 1:
+                       return {#vlen is 1
+                               'complex': '#3399FF',
+                               'float': '#FF8C69',
+                               'int': '#00FF99', 
+                               'short': '#FFFF66', 
+                               'byte': '#FF66FF',
+                       }[self.get_type()]      
+               return {#vlen is non 1
+                       'complex': '#3399AA',
+                       'float': '#CC8C69',
+                       'int': '#00CC99', 
+                       'short': '#CCCC33', 
+                       'byte': '#CC66CC',
+               }[self.get_type()]
                
+       def is_empty(self):
+               """!
+               Is this port empty?
+               An empty port has no connections.
+               Not empty of optional is set.
+               @return true if empty
+               """
+               return not self.get_optional() and not self.get_connections()
+               
        ##############################################
        ## Static Make Methods
        ##############################################
@@ -67,19 +119,20 @@
                #grab the data
                name = n['name']
                type = n['type']
-               vec_len = Utils.exists_or_else(n, 'vec_len', '')
-               num_ports = Utils.exists_or_else(n, 'num_ports', '')
+               vlen = Utils.exists_or_else(n, 'vlen', '')
+               nports = Utils.exists_or_else(n, 'nports', '')
                optional = Utils.exists_or_else(n, 'optional', '')              
                #key is port index
-               key = str(len(block.get_sources()))             
+               key = str(block._source_count)
+               block._source_count = block._source_count + 1
                #build the port
                return Port(
                        block=block,
                        name=name,
                        key=key,
                        type=type,
-                       vec_len=vec_len,
-                       num_ports=num_ports,
+                       vlen=vlen,
+                       nports=nports,
                        optional=optional,
                )
        make_source_from_n = staticmethod(make_source_from_n)
@@ -94,21 +147,22 @@
                #grab the data
                name = n['name']
                type = n['type']
-               vec_len = Utils.exists_or_else(n, 'vec_len', '')
-               num_ports = Utils.exists_or_else(n, 'num_ports', '')
+               vlen = Utils.exists_or_else(n, 'vlen', '1')
+               nports = Utils.exists_or_else(n, 'nports', '')
                optional = Utils.exists_or_else(n, 'optional', '')              
                #key is port index
-               key = str(len(block.get_sinks()))               
+               key = str(block._sink_count)
+               block._sink_count = block._sink_count + 1               
                #build the port
                return Port(
                        block=block,
                        name=name,
                        key=key,
                        type=type,
-                       vec_len=vec_len,
-                       num_ports=num_ports,
+                       vlen=vlen,
+                       nports=nports,
                        optional=optional,
                )
        make_sink_from_n = staticmethod(make_sink_from_n)
                
-               
\ No newline at end of file
+               

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/block.dtd
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/block.dtd    
    2008-02-01 02:39:30 UTC (rev 7534)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/block.dtd    
    2008-02-01 03:23:21 UTC (rev 7535)
@@ -32,8 +32,8 @@
  --> 
 <!ELEMENT param (name, key, value?, type, range?, option*)>
 <!ELEMENT option (name, key, opt*)>
-<!ELEMENT sink (name, type, vec_len?, num_ports?, optional?)>
-<!ELEMENT source (name, type, vec_len?, num_ports?, optional?)>
+<!ELEMENT sink (name, type, vlen?, nports?, optional?)>
+<!ELEMENT source (name, type, vlen?, nports?, optional?)>
 <!-- 
        Bottom level elements.
        Character data only. 
@@ -46,8 +46,8 @@
 <!ELEMENT range (#PCDATA)>
 <!ELEMENT opt (#PCDATA)>       
 <!ELEMENT type (#PCDATA)>
-<!ELEMENT vec_len (#PCDATA)>
-<!ELEMENT num_ports (#PCDATA)>
+<!ELEMENT vlen (#PCDATA)>
+<!ELEMENT nports (#PCDATA)>
 <!ELEMENT fcn (#PCDATA)>
 <!ELEMENT value (#PCDATA)>
 <!ELEMENT callback (#PCDATA)>

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add.xml
        2008-02-01 02:39:30 UTC (rev 7534)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add.xml
        2008-02-01 03:23:21 UTC (rev 7535)
@@ -58,12 +58,12 @@
        <sink>
                <name>in</name>
                <type>$type:type</type>
-               <vec_len>$vec_len</vec_len>
-               <num_ports>$num_inputs</num_ports>
+               <vlen>$vec_len</vlen>
+               <nports>$num_inputs</nports>
        </sink> 
        <source>
                <name>out</name>
                <type>$type:type</type>
-               <vec_len>$vec_len</vec_len>
+               <vlen>$vec_len</vlen>
        </source>               
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add_const.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add_const.xml
  2008-02-01 02:39:30 UTC (rev 7534)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add_const.xml
  2008-02-01 03:23:21 UTC (rev 7535)
@@ -63,11 +63,11 @@
        <sink>
                <name>in</name>
                <type>$type:type</type>
-               <vec_len>$vec_len</vec_len>
+               <vlen>$vec_len</vlen>
        </sink> 
        <source>
                <name>out</name>
                <type>$type:type</type>
-               <vec_len>$vec_len</vec_len>
+               <vlen>$vec_len</vlen>
        </source>               
 </block>





reply via email to

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