commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r7831 - in grc/branches/grc_reloaded: notes src/grc/pl


From: jblum
Subject: [Commit-gnuradio] r7831 - in grc/branches/grc_reloaded: notes src/grc/platforms/gnuradio_python src/grc/platforms/gnuradio_python/blocks/graphical_sinks src/grc/platforms/gnuradio_python/blocks/variables src/grc/platforms/gnuradio_python/data
Date: Sun, 24 Feb 2008 19:39:25 -0700 (MST)

Author: jblum
Date: 2008-02-24 19:39:25 -0700 (Sun, 24 Feb 2008)
New Revision: 7831

Modified:
   grc/branches/grc_reloaded/notes/todo.txt
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_fftsink2.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_scopesink2.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_button.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_drop_down.xml
   
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_slider.xml
   grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl
Log:
grid_pos type added, wxgui bugs

Modified: grc/branches/grc_reloaded/notes/todo.txt
===================================================================
--- grc/branches/grc_reloaded/notes/todo.txt    2008-02-25 00:47:58 UTC (rev 
7830)
+++ grc/branches/grc_reloaded/notes/todo.txt    2008-02-25 02:39:25 UTC (rev 
7831)
@@ -1,7 +1,7 @@
 ############ GRC Reloaded: #############
 reload(usrp) in usrp diagnostics
-generate code
-setup.py for grc
+usrp diagnostics in scripts (separate from grc)
+generate button next to execute
 dtd for saved flow graphs
 
 ############   Blocks to Add:  ####################
@@ -12,7 +12,6 @@
 
 ############   Known Problems: ####################
 -packet threads block on close
--socket controllers should be intelligent on shrinkage
 -usrp transmit dies in lock/unlock
 -audio dies lock/unlock
 
@@ -20,7 +19,6 @@
 -startup tips
 -save working directory after close
 -create sub-flow graphs to be used in larger flow graphs
--include dtd in saved flow graphs
 -copy and paste blocks
 
 ############   wxPython Features:      ####################

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-25 00:47:58 UTC (rev 7830)
+++ grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Param.py        
2008-02-25 02:39:25 UTC (rev 7831)
@@ -33,6 +33,7 @@
                'file_open', 'file_save',
                'id',
                'source_pad_key', 'sink_pad_key',
+               'grid_pos',
        ]
        
        def evaluate(self):
@@ -139,7 +140,7 @@
                                assert(len(v) > 0)
                                assert(v[0].isalpha())
                                for c in v: assert(c.isalnum() or c in ('_',))
-                       except: 
+                       except AssertionError: 
                                self._add_error_message('ID "%s" must be 
alpha-numeric or underscored, and begin with a letter.'%v)
                                raise Exception                 
                        params = self.get_all_params('id')
@@ -158,7 +159,7 @@
                        params = filter(lambda p: p.is_valid(), 
self.get_all_params('source_pad_key'))
                        keys = [int(param.get_value()) for param in params]
                        try: assert(len(keys) == len(set(keys)))
-                       except:
+                       except AssertionError:
                                self._add_error_message('Source Pad Key "%s" is 
not unique.'%v)
                                raise Exception
                        return e
@@ -171,10 +172,42 @@
                        params = filter(lambda p: p.is_valid(), 
self.get_all_params('sink_pad_key'))
                        keys = [int(param.get_value()) for param in params]
                        try: assert(len(keys) == len(set(keys)))
-                       except:
+                       except AssertionError:
                                self._add_error_message('Sink Pad Key "%s" is 
not unique.'%v)
                                raise Exception
                        return e
+               elif t == 'grid_pos':
+                       e = self.get_parent().get_parent().evaluate(v)
+                       try: 
+                               assert(isinstance(e, (list, tuple)) and len(e) 
== 4)
+                               for ei in e: assert(isinstance(ei, int))
+                       except AssertionError:
+                               self._add_error_message('A grid position must 
be a list of 4 integers.')
+                               raise Exception
+                       row, col, row_span, col_span = e
+                       #check row, col
+                       try: assert(row >= 0 and col >= 0)
+                       except AssertionError:
+                               self._add_error_message('Row and column must be 
non-negative.')
+                               raise Exception
+                       #check row span, col span
+                       try: assert(row_span > 0 and col_span > 0)
+                       except AssertionError:
+                               self._add_error_message('Row and column span 
must be greater than zero.')
+                               raise Exception
+                       #calculate hostage cells
+                       self._hostage_cells = list()
+                       for r in range(row_span):
+                               for c in range(col_span):
+                                       self._hostage_cells.append((row+r, 
col+c))
+                       #avoid collisions                               
+                       params = filter(lambda p: p is not self, 
self.get_all_params('grid_pos'))
+                       for param in params:
+                               for cell in param._hostage_cells:
+                                       if cell in self._hostage_cells:
+                                               
self._add_error_message('Another graphical element is using cell 
"%s".'%str(cell))
+                                               raise Exception
+                       return e
                else: raise TypeError, 'Type "%s" not handled'%t
                
        def to_code(self):

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_fftsink2.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_fftsink2.xml
       2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_fftsink2.xml
       2008-02-25 02:39:25 UTC (rev 7831)
@@ -127,9 +127,8 @@
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value>0, 0, 1, 1</value>
-               <type>int_vector</type>
+               <type>grid_pos</type>
        </param>
-       <check>len($grid_pos) == 4</check>
        <sink>
                <name>in</name>
                <type>$type</type>

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_scopesink2.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_scopesink2.xml
     2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/graphical_sinks/wxgui_scopesink2.xml
     2008-02-25 02:39:25 UTC (rev 7831)
@@ -75,9 +75,8 @@
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value>0, 0, 1, 1</value>
-               <type>int_vector</type>
+               <type>grid_pos</type>
        </param>
-       <check>len($grid_pos) == 4</check>
        <sink>
                <name>in</name>
                <type>$type</type>

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_button.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_button.xml
    2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_button.xml
    2008-02-25 02:39:25 UTC (rev 7831)
@@ -41,9 +41,8 @@
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value>0, 0, 1, 1</value>
-               <type>int_vector</type>
+               <type>grid_pos</type>
        </param>
-       <check>len($grid_pos) == 4</check>
        <doc>
 This block creates a variable with a button. 
 The button has 2 states, on and off.

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_drop_down.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_drop_down.xml
 2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_drop_down.xml
 2008-02-25 02:39:25 UTC (rev 7831)
@@ -25,9 +25,8 @@
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value>0, 0, 1, 1</value>
-               <type>int_vector</type>
+               <type>grid_pos</type>
        </param>
-       <check>len($grid_pos) == 4</check>
        <check>$choices[$value_index]</check>
        <doc>
 This block creates a variable with a drop down. 

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_slider.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_slider.xml
    2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/variables/variable_slider.xml
    2008-02-25 02:39:25 UTC (rev 7831)
@@ -37,9 +37,8 @@
                <name>Grid Position</name>
                <key>grid_pos</key>
                <value>0, 0, 1, 1</value>
-               <type>int_vector</type>
+               <type>grid_pos</type>
        </param>
-       <check>len($grid_pos) == 4</check>
        <check>$min &lt;= $value &lt;= $max</check>
        <check>$min &lt; $max</check>
        <check>0 &lt; $num_steps &lt;= 1000</check>

Modified: 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl
===================================================================
--- 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl    
    2008-02-25 00:47:58 UTC (rev 7830)
+++ 
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl    
    2008-02-25 02:39:25 UTC (rev 7831)
@@ -32,13 +32,13 @@
 #def make_callback($id)
        #set $my_callbacks = filter(lambda c: id in c, $callbacks)
        #if $my_callbacks
-def _callback(value):
-       $id = value
+def _callback(_val):
+       globals()["$id"] = _val
                #for $callback in $my_callbacks
        exec("""$callback""")
                #end for
        #else
-def _callback(value): pass#slurp
+def _callback(_val): pass#slurp
        #end if         
 #end def
 
@@ -138,8 +138,8 @@
        callback=_callback, 
        title="$button.get_id()", 
        on=$(button.get_param('value_index').to_code() == 'on'),
-       on_state=$button.get_param('off_value').to_code(),
-       off_state=$button.get_param('on_value').to_code(),
+       on_state=$button.get_param('on_value').to_code(),
+       off_state=$button.get_param('off_value').to_code(),
 )
 #set $grid_pos = $button.get_param('grid_pos').evaluate()
 _grid.Add(button, wx.GBPosition($grid_pos[0], $grid_pos[1]), 
wx.GBSpan($grid_pos[2], $grid_pos[3]))





reply via email to

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