commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r7757 - in grc/branches/grc_reloaded: data src/grc src


From: jblum
Subject: [Commit-gnuradio] r7757 - in grc/branches/grc_reloaded: data src/grc src/grc/elements src/grc/gui src/grc/gui/elements src/grc/platforms/gnuradio_python src/grc/platforms/gnuradio_python/blocks src/grc/platforms/gnuradio_python/blocks/operators src/grc/platforms/gnuradio_python/data
Date: Wed, 20 Feb 2008 17:35:05 -0700 (MST)

Author: jblum
Date: 2008-02-20 17:35:05 -0700 (Wed, 20 Feb 2008)
New Revision: 7757

Added:
   grc/branches/grc_reloaded/data/block_tree.dtd
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/default_flow_graph.grc.xml
Removed:
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/default_flow_graph.grc.xml
Modified:
   grc/branches/grc_reloaded/src/grc/Preferences.py
   grc/branches/grc_reloaded/src/grc/Utils.py
   grc/branches/grc_reloaded/src/grc/elements/Block.py
   grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
   grc/branches/grc_reloaded/src/grc/elements/Platform.py
   grc/branches/grc_reloaded/src/grc/elements/Port.py
   grc/branches/grc_reloaded/src/grc/gui/SignalBlockSelectionWindow.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Block.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Colors.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Connection.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Element.py
   grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Param.py
   grc/branches/grc_reloaded/src/grc/gui/elements/Port.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Platform.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_const.xml
Log:
created block tree, removed some todos

Added: grc/branches/grc_reloaded/data/block_tree.dtd
===================================================================
--- grc/branches/grc_reloaded/data/block_tree.dtd                               
(rev 0)
+++ grc/branches/grc_reloaded/data/block_tree.dtd       2008-02-21 00:35:05 UTC 
(rev 7757)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!-- 
+Copyright 2008 Free Software Foundation, Inc.
+This file is part of GNU Radio
+
+GNU Radio Companion is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+GNU Radio Companion is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
+-->
+<!--
+       block_tree.dtd 
+       Josh Blum
+       The document type definition for a block tree category listing.
+ -->
+<!ELEMENT block_tree (cat*)>
+<!ELEMENT cat (name, block*)>
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT block (#PCDATA)>

Modified: grc/branches/grc_reloaded/src/grc/Preferences.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/Preferences.py    2008-02-20 21:48:32 UTC 
(rev 7756)
+++ grc/branches/grc_reloaded/src/grc/Preferences.py    2008-02-21 00:35:05 UTC 
(rev 7757)
@@ -72,7 +72,7 @@
        """
        try: 
                n = 
ParseXML.from_xml(ParseXML.from_file(PREFERENCES_FILE_PATH))                
-               block.import_data(n['block'])
+               block.import_data(n['preferences'])
                #set window size
                try:
                        size = window_size_param.evaluate()
@@ -88,7 +88,7 @@
        if window:
                size = str(window.get_size())
                window_size_param.set_value(size)
-       try: ParseXML.to_file(ParseXML.to_xml({'block': block.export_data()}), 
PREFERENCES_FILE_PATH)           
+       try: ParseXML.to_file(ParseXML.to_xml({'preferences': 
block.export_data()}), PREFERENCES_FILE_PATH)             
        except IOError: Messages.send_fail_save_preferences()
                
 ###########################################################################

Modified: grc/branches/grc_reloaded/src/grc/Utils.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/Utils.py  2008-02-20 21:48:32 UTC (rev 
7756)
+++ grc/branches/grc_reloaded/src/grc/Utils.py  2008-02-21 00:35:05 UTC (rev 
7757)
@@ -58,6 +58,3 @@
        if type(obj) == type(list()): return obj
        return [obj]
        
-def is_key(key):
-       return len(key) and all(map(lambda k: k.isalnum() or k in ['_'], key))
-

Modified: grc/branches/grc_reloaded/src/grc/elements/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-20 21:48:32 UTC 
(rev 7756)
+++ grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-21 00:35:05 UTC 
(rev 7757)
@@ -191,11 +191,13 @@
                Any param keys that do not exist will be ignored.
                @param n the nested data odict
                """
-               #TODO error msg if key, value not exist
                params_n = Utils.listify(n, 'param')
                for param_n in params_n:
-                       key = param_n['key']
-                       value = param_n['value']
-                       if key in self.get_param_keys():
-                               self.get_param(key).set_value(value)
+                       #key and value must exist in the n data
+                       if 'key' in param_n.keys() and 'value' in 
param_n.keys():
+                               key = param_n['key']
+                               value = param_n['value']
+                               #the key must exist in this block's params
+                               if key in self.get_param_keys():
+                                       self.get_param(key).set_value(value)
                self.validate()

Modified: grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py     2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py     2008-02-21 
00:35:05 UTC (rev 7757)
@@ -26,6 +26,8 @@
 from grc.elements.Block import Block
 from grc.elements.Connection import Connection
 
+from grc import Messages
+
 class FlowGraph(Element):
        
        def __init__(self, platform):
@@ -162,8 +164,11 @@
                """
                #remove previous elements
                self._elements = list()
-               #TODO error checking
-               fg_n = n['flow_graph']
+               #the flow graph tag must exists, or use blank data
+               if 'flow_graph' in n.keys(): fg_n = n['flow_graph']
+               else: 
+                       Messages.send_error_load('Flow graph data not found, 
loading blank flow graph.')
+                       fg_n = {}
                blocks_n = Utils.listify(fg_n, 'block')
                connections_n = Utils.listify(fg_n, 'connection')
                #create option block
@@ -174,31 +179,41 @@
                        key = block_n['key']
                        if key == 'options': block = self._options_block
                        else: block = self.get_new_block(key)
-                       block.import_data(block_n)
+                       #only load the block when the block key was valid
+                       if block: block.import_data(block_n)
+                       else: Messages.send_error_load('Block key "%s" not 
found in %s'%(key, self.get_parent()))                               
                #build the connections
                for connection_n in connections_n:
+                       #test that the data tags exist
                        try:
+                               assert('source_block_id' in connection_n.keys())
+                               assert('sink_block_id' in connection_n.keys())
+                               assert('source_key' in connection_n.keys())
+                               assert('sink_key' in connection_n.keys())
+                       except AssertionError: continue
+                       #try to make the connection
+                       try:                            
                                #get the block ids
                                source_block_id = 
connection_n['source_block_id']
                                sink_block_id = connection_n['sink_block_id']
+                               #get the port keys
+                               source_key = connection_n['source_key']
+                               sink_key = connection_n['sink_key']
                                #verify the blocks
                                block_ids = map(lambda b: b.get_id(), 
self.get_blocks())
                                assert(source_block_id in block_ids)
                                assert(sink_block_id in block_ids)
                                #get the blocks
                                source_block = self.get_block(source_block_id)
-                               sink_block = self.get_block(sink_block_id)
-                               #get the port keys
-                               source_key = connection_n['source_key']
-                               sink_key = connection_n['sink_key']
+                               sink_block = self.get_block(sink_block_id)      
                
                                #verify the ports
                                assert(source_key in 
source_block.get_source_keys())
                                assert(sink_key in sink_block.get_sink_keys())
                                #get the ports
                                source = source_block.get_source(source_key)
-                               sink = sink_block.get_sink(sink_key)
+                               sink = sink_block.get_sink(sink_key)            
                
                                #build the connection
                                self.connect(source, sink)
-                       except AssertionError: pass #TODO messages print problem
+                       except AssertionError: 
Messages.send_error_load('Connection between %s(%s) and %s(%s) could not be 
made.'%(source_block_id, source_key, sink_block_id, sink_key))
                self.validate()
                

Modified: grc/branches/grc_reloaded/src/grc/elements/Platform.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Platform.py      2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/elements/Platform.py      2008-02-21 
00:35:05 UTC (rev 7757)
@@ -74,7 +74,13 @@
        
        def get_new_flow_graph(self): return self.FlowGraph(self)
                
-       def get_block_tree(self): return self._block_tree
+       def get_block_tree(self):
+               f = self._block_tree
+               try: ParseXML.validate_dtd(f)
+               except ParseXML.ValidationError, e: 
self._exit_with_error('Block tree "%s" failed: \n\t%s'%(f, e))
+               x = ParseXML.from_file(f)
+               n = ParseXML.from_xml(x)['block_tree']
+               return n
        
        def get_default_flow_graph(self): return self._default_flow_graph
        

Modified: grc/branches/grc_reloaded/src/grc/elements/Port.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Port.py  2008-02-20 21:48:32 UTC 
(rev 7756)
+++ grc/branches/grc_reloaded/src/grc/elements/Port.py  2008-02-21 00:35:05 UTC 
(rev 7757)
@@ -95,7 +95,6 @@
                """!
                Is this port full of connections?
                Generally a sink can handle one connection and a source can 
handle many.
-               Some sinks can be optionally connected. TODO: optional 
connections
                @return true if the port is full
                """
                if self.is_source(): return False

Modified: grc/branches/grc_reloaded/src/grc/gui/SignalBlockSelectionWindow.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/SignalBlockSelectionWindow.py 
2008-02-20 21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/SignalBlockSelectionWindow.py 
2008-02-21 00:35:05 UTC (rev 7757)
@@ -20,8 +20,7 @@
 #The signal block selection window gives the user a tree selection to choose a 
signal block.
 address@hidden Josh Blum
 
-#TODO protect against empty categories, make recursive, protect against name 
that DNE
-
+from grc import Utils
 from grc.Constants import *
 import pygtk
 pygtk.require('2.0')
@@ -70,11 +69,19 @@
                #map names to keys
                self.names = dict()
                #add blocks and categories              
-               for category, keys in platform.get_block_tree():
+               for category_n in Utils.listify(platform.get_block_tree(), 
'cat'):
                        iter = self.treestore.insert_before(None, None)
-                       self.treestore.set_value(iter, 0, category)
-                       for key in keys:                                
+                       self.treestore.set_value(iter, 0, category_n['name'])
+                       for key in Utils.listify(category_n, 'block'):          
                
+                               if key not in platform.get_block_keys():
+                                       print 'Block with key "%s" cannot be 
found in %s -> ignoring...'%(key, platform)
+                                       continue
                                name = platform.get_block(key).get_name()
+                               if name in self.names.keys(): 
+                                       print '%s has more than one block with 
name "%s".'%(platform, name)
+                                       print 'Although block names do not have 
to be unique, this gui requires that that are.'
+                                       print 'Please rename the block to avoid 
problems.'
+                                       continue
                                self.names[name] = key
                                new_iter = self.treestore.insert_before(iter, 
None)             
                                self.treestore.set_value(new_iter, 0, name)

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Block.py     2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Block.py     2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Elements.GraphicalSignalBlock
address@hidden grc.gui.elements.Block
 #The graphical signal block.
 address@hidden Josh Blum
 
@@ -162,41 +162,6 @@
                        window.draw_image(gc, self.vertical_label, 0, 0, 
X+(self.H-self.label_height)/2, Y+LABEL_PADDING_WIDTH, -1, -1)
                map(lambda p: p.draw(window), self.get_sources() + 
self.get_sinks())
                
-       def modify_type_controller(self, direction):
-               """!
-               If a type controller was set, increment/decrement its index by 
1, use a % to stay in bounds.    
-               @param direction +1 or -1
-               """
-               #TODO find this automatic style
-               if self.type_controller != None and 
self.type_controller.get_type() == Enum().get_type():
-                       num_choices = 
len(self.type_controller.get_cnames_list())
-                       index = int(self.type_controller.get_data())
-                       
self.type_controller.set_data((index+direction+num_choices)%num_choices)
-                       self.get_parent().update()
-                       return True
-               return False
-               
-       def modify_port_controller(self, direction):
-               """!
-               If a port controller was set, increment/decrement its data type 
by 1, DO NOT go out of bounds.
-               If there is a controller on input and outputs, show preference 
to the output controller. 
-               @param direction +1 or -1
-               @return true if operation was done, false if operation could 
not be completed.
-               """
-               #TODO find this automatic style
-               # Get the port controller, if there is an input and output 
controller, use output       #
-               port_controller = None          
-               if self.input_ports_controller != None: port_controller = 
self.input_ports_controller
-               elif self.output_ports_controller != None: port_controller = 
self.output_ports_controller
-               if port_controller != None and port_controller.is_valid() and 
port_controller.get_type() == Int().get_type():
-                       old_data = port_controller.get_data()
-                       port_controller.set_data(port_controller.parse() + 
direction)
-                       if port_controller.is_valid(): #modification was 
successful
-                               self.get_parent().update()
-                               return True
-                       else: port_controller.set_data(old_data)        
#restore previous value
-               return False
-               
        def what_is_selected(self, coor):       
                """!
                Get the element that is selected.

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Colors.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Colors.py    2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Colors.py    2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Colors
address@hidden grc.gui.elements.Colors
 #Global Colors for the gui
 address@hidden Josh Blum
 

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Connection.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Connection.py        
2008-02-20 21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Connection.py        
2008-02-21 00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Elements.GraphicalConnection
address@hidden grc.gui.elements.Connection
 #The graphical connection for input/output ports.
 address@hidden Josh Blum
 

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Element.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Element.py   2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Element.py   2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Elements.GraphicalElement
address@hidden grc.gui.elements.Element
 #Base class for graphical elements such as:
 #signal blocks, input sockets, output sockets and connections.
 address@hidden Josh Blum

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py 2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py 2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Graphics.FlowGraph
address@hidden grc.gui.elements.FlowGraph
 #A flow graph structure for storing signal blocks and their connections.
 address@hidden Josh Blum
 

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Param.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Param.py     2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Param.py     2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Elements.GraphicalParam
address@hidden grc.gui.elements.Param
 #GTK objects for handling input and the signal block parameter class.
 address@hidden Josh Blum
 
@@ -147,9 +147,11 @@
                if self.is_enum(): value = self.get_option_keys()[int(value)]
                self.set_value(value)
                #set the markup on the label, red for errors in corresponding 
data type.
-               name = self.get_name()
-               #TODO needs a markup is there is a callback
-               #if self.variable: name = '<span 
underline="low">%s</span>'%name #alter format if the param is variable
+               name = Utils.xml_encode(self.get_name())
+               #special markups if param is involved in a callback
+               if hasattr(self.get_parent(), 'get_callbacks') and \
+                       filter(lambda c: self.get_key() in c, 
self.get_parent().get_callbacks()):
+                       name = '<span underline="low">%s</span>'%name           
                if not self.is_valid(): 
                        self.input.set_markup('<span 
foreground="red"><b>%s</b></span>'%name)
                        tip = '- ' + '\n- '.join(self.get_error_messages())

Modified: grc/branches/grc_reloaded/src/grc/gui/elements/Port.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/Port.py      2008-02-20 
21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/Port.py      2008-02-21 
00:35:05 UTC (rev 7757)
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
address@hidden Elements.GraphicalSocket
address@hidden grc.gui.elements.Port
 #The graphical input/output sockets of the signal block.
 address@hidden Josh Blum
 

Modified: grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py        
2008-02-20 21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py        
2008-02-21 00:35:05 UTC (rev 7757)
@@ -20,8 +20,6 @@
 #Flow graph block parameters.
 address@hidden Josh Blum
 
-#TODO call eval on set value to handle listify and stringify flags
-
 from grc.elements.Param import Param as _Param
 import os
 

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Platform.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Platform.py     
2008-02-20 21:48:32 UTC (rev 7756)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Platform.py     
2008-02-21 00:35:05 UTC (rev 7757)
@@ -30,34 +30,9 @@
 
 PATH = os.path.dirname(__file__)
 
-BLOCK_TREE = [
-       ('Sources', [
-                       'null_source',
-               ]
-       ),
-       ('Sinks', [
-                       'null_sink',
-               ]
-       ),
-       ('Operators',[
-                       'add',
-                       'add_const',
-                       'not',
-                       'and',
-                       'or',
-                       'xor',
-               ]
-       ),
-       ('Variables',[
-                       'variable',
-                       'variable_drop_down',
-                       'variable_button',
-                       'variable_slider',
-               ]
-       ),
-]
+BLOCK_TREE = PATH + '/data/block_tree.xml'
 
-DEFAULT_FLOW_GRAPH = PATH + '/default_flow_graph.grc.xml'
+DEFAULT_FLOW_GRAPH = PATH + '/data/default_flow_graph.grc.xml'
 
 class Platform(_Platform):
        

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-20 21:48:32 UTC (rev 7756)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/block.dtd    
    2008-02-21 00:35:05 UTC (rev 7757)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!-- 
-Copyright 2007 Free Software Foundation, Inc.
+Copyright 2008 Free Software Foundation, Inc.
 This file is part of GNU Radio
 
 GNU Radio Companion is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
 <!--
        gnuradio_python.blocks.dtd 
        Josh Blum
-       The document type definitions for block definitions.
+       The document type definition for blocks.
  -->
 <!-- 
        Top level element.

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-20 21:48:32 UTC (rev 7756)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/operators/add_const.xml
  2008-02-21 00:35:05 UTC (rev 7757)
@@ -13,7 +13,7 @@
        <fcn>$type:fcn($const)</fcn>
        <callback>set_k($const)</callback>
        <param>
-               <name>Constant*</name>
+               <name>Constant</name>
                <key>const</key>
                <value>0</value>
                <type>$type:const_type</type>

Added: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml 
                            (rev 0)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml 
    2008-02-21 00:35:05 UTC (rev 7757)
@@ -0,0 +1,202 @@
+<?xml version="1.0"?>
+<!DOCTYPE block_tree SYSTEM "../../../../../data/block_tree.dtd">
+<!-- 
+###################################################
+##Block Tree for platform gnuradio python.
+###################################################
+ -->
+<block_tree>
+       <cat>
+               <name>Sources</name>
+               <block>signal_source</block>    
+               <block>noise_source</block>     
+               <block>vector_source</block>    
+               <block>random_source</block>    
+               <block>null_source</block>      
+               <block>file_source</block>      
+               <block>udp_source</block>
+               <block>audio_source</block>     
+               <block>wave_source</block>      
+               <block>usrp_source</block>
+               <block>usrp_dual_source</block>
+       </cat>
+       <cat>
+               <name>Sinks</name>
+               <block>null_sink</block>
+               <block>file_sink</block>
+               <block>udp_sink</block>
+               <block>audio_sink</block>
+               <block>wave_sink</block>
+               <block>usrp_sink</block>
+               <block>usrp_dual_sink</block>
+       </cat>
+       <cat>
+               <name>Graphical Sinks</name>
+               <block>number_sink</block>
+               <block>scope_sink</block>       
+               <block>fft_sink</block>
+               <block>constellation_sink</block>
+               <block>waterfall_sink</block>
+       </cat>
+       <cat>
+               <name>Operators</name>
+               <block>add</block>
+               <block>subtract</block>
+               <block>multiply</block>
+               <block>divide</block>
+               <block>nlog10</block>
+               
+               <block>add_const</block>
+               <block>multiply_const</block>
+               
+               <block>not</block>
+               <block>and</block>
+               <block>or</block>
+               <block>xor</block>
+       </cat>
+       <cat>
+               <name>Type Conversions</name>
+               <block>complex_components</block>
+               <block>complex_conjugate</block>
+               
+               <block>complex_to_float</block>
+               <block>float_to_complex</block>
+               
+               <block>float_to_short</block>
+               <block>short_to_float</block>
+               
+               <block>float_to_char</block>
+               <block>char_to_float</block>
+               
+               <block>float_to_uchar</block>
+               <block>uchar_to_float</block>
+               
+               <block>complex_to_ishort</block>
+               <block>ishort_to_complex</block>
+       </cat>
+       <cat>
+               <name>Stream Conversions</name>
+               <block>interleave</block>
+               <block>deinterleave</block>
+               
+               <block>streams_to_stream</block>
+               <block>stream_to_streams</block>
+               
+               <block>streams_to_vector</block>
+               <block>vector_to_streams</block>
+               
+               <block>stream_to_vector</block>
+               <block>vector_to_stream</block>
+       </cat>
+       <cat>
+               <name>Misc Conversions</name>
+               <block>unpacked_to_packed</block>
+               <block>packed_to_unpacked</block>
+               <block>unpack_kbits</block>             
+               <block>binary_slicer</block>            
+               <block>chunks_to_symbols</block>                
+               <block>map</block>      
+       </cat>
+       <cat>
+               <name>Generic Filters</name>
+               <block>fir_filter</block>
+               <block>fft_filter</block>
+               <block>freq_xlating_fir_filter</block>
+               <block>rational_resampler</block>
+               <block>iir_filter</block>
+               <block>filter_delay</block>
+               <block>channel_model</block>
+       </cat>
+       <cat>
+               <name>Filters</name>
+               <block>low_pass_filter</block>
+               <block>high_pass_filter</block>
+               <block>band_pass_filter</block>
+               <block>band_reject_filter</block>
+               <block>window</block>
+               <block>root_raised_cosine</block>
+               <block>single_pole_iir_filter</block>
+               <block>hilbert</block>
+               <block>goertzel</block>
+               <block>power_squelch</block>
+               <block>downsample</block>
+               <block>upsample</block>         
+               <block>fractional_resampler</block>
+               <block>fractional_interpolator</block>
+               <block>agc</block>
+               <block>agc2</block>
+               <block>rms</block>
+               <block>feed_forward_agc</block>
+               <block>cma_filter</block>
+               <block>clock_recovery</block>
+               <block>fft</block>
+               <block>ifft</block>
+       </cat>
+       <cat>
+               <name>Modulators</name>
+               <block>frequency_modulator</block>
+               <block>phase_modulator</block>
+               <block>quadrature_demodulator</block>
+               <block>costas_loop</block>
+               <block>vco</block>
+               <block>pll</block>
+               
+               <block>wfm_receive</block>
+               <block>wft_transmit</block>
+               
+               <block>nbfm_receive</block>
+               <block>nbfm_transmit</block>
+               
+               <block>am_demodulator</block>
+               <block>fm_demodulator</block>
+               
+               <block>psk_modulator</block>
+               <block>psk demodulator</block>
+               
+               <block>gmsk_modulator</block>
+               <block>gmsk_demodulator</block>
+               
+               <block>qam_modulator</block>
+               <block>qam_demodulator</block>
+               
+               <block>packet_modulator</block>
+               <block>packet_demodulator</block>
+       </cat>
+       <cat>
+               <name>Coders</name>
+               <block>constellation_decoder</block>
+               <block>differential_encoder</block>
+               <block>differential_decoder</block>
+               <block>differential_phasor</block>
+               <block>correlate_access_code</block>
+       </cat>
+       <cat>
+               <name>Trellis</name>
+               <block>trellis_encoder</block>
+               <block>metrics</block>
+               <block>viterbi_decoder</block>
+               <block>viterbi_decoder_metric</block>
+               <block>bcjr</block>
+               <block>bcjr_metric</block>
+               <block>interleaver</block>
+               <block>deinterleaver</block>
+       </cat>
+       <cat>
+               <name>Variables</name>
+               <block>variable</block>
+               <block>variable_drop_down</block>
+               <block>variable_button</block>
+               <block>variable_slider</block>
+       </cat>
+       <cat>
+               <name>Misc</name>
+               <block>throttle</block>
+               <block>valve</block>
+               <block>selector</block>
+               <block>head</block>
+               <block>skip_head</block>
+               <block>input_terminator</block>
+               <block>copy</block>
+               <block>tun_tap</block>
+       </cat>
+</block_tree>

Copied: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/default_flow_graph.grc.xml
 (from rev 7754, 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/default_flow_graph.grc.xml)
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/default_flow_graph.grc.xml
                         (rev 0)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/default_flow_graph.grc.xml
 2008-02-21 00:35:05 UTC (rev 7757)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!-- 
+###################################################
+##Default Flow Graph:
+##     include an options block and a variable for sample rate
+###################################################
+ -->
+<flow_graph>
+       <block>
+               <key>options</key>
+               <param>
+                       <key>id</key>           
+                       <value>options</value>
+               </param>        
+               <param>
+                       <key>position</key>             
+                       <value>{'x': 20, 'y': 20, 'rot': 0}</value>
+               </param>
+       </block>
+       <block>
+               <key>variable</key>
+               <param>
+                       <key>id</key>           
+                       <value>samp_rate</value>
+               </param>        
+               <param>
+                       <key>value</key>                
+                       <value>32e3</value>
+               </param>        
+               <param>
+                       <key>position</key>             
+                       <value>{'x': 20, 'y': 150, 'rot': 0}</value>
+               </param>
+       </block>
+</flow_graph>

Deleted: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/default_flow_graph.grc.xml





reply via email to

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