commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r8474 - in grc/trunk/src: grc/elements grc_gnuradio gr


From: jblum
Subject: [Commit-gnuradio] r8474 - in grc/trunk/src: grc/elements grc_gnuradio grc_gnuradio/blks2 grc_gnuradio/blocks/misc grc_gnuradio/blocks/sinks grc_gnuradio/blocks/variables grc_gnuradio/data grc_gnuradio/usrp grc_gnuradio/wxgui
Date: Wed, 21 May 2008 13:27:47 -0600 (MDT)

Author: jblum
Date: 2008-05-21 13:27:46 -0600 (Wed, 21 May 2008)
New Revision: 8474

Added:
   grc/trunk/src/grc_gnuradio/blks2/queue.py
   grc/trunk/src/grc_gnuradio/blocks/sinks/gr_vector_sink_x.xml
   grc/trunk/src/grc_gnuradio/blocks/variables/variable_sink.xml
Modified:
   grc/trunk/src/grc/elements/Block.py
   grc/trunk/src/grc_gnuradio/FlowGraph.py
   grc/trunk/src/grc_gnuradio/Generator.py
   grc/trunk/src/grc_gnuradio/Param.py
   grc/trunk/src/grc_gnuradio/blks2/__init__.py
   grc/trunk/src/grc_gnuradio/blks2/error_rate.py
   grc/trunk/src/grc_gnuradio/blks2/packet.py
   grc/trunk/src/grc_gnuradio/blocks/misc/gr_throttle.xml
   grc/trunk/src/grc_gnuradio/blocks/variables/variable.xml
   grc/trunk/src/grc_gnuradio/data/block_tree.xml
   grc/trunk/src/grc_gnuradio/data/wx_gui.tmpl
   grc/trunk/src/grc_gnuradio/usrp/__init__.py
   grc/trunk/src/grc_gnuradio/wxgui/__init__.py
   grc/trunk/src/grc_gnuradio/wxgui/callback_controls.py
   grc/trunk/src/grc_gnuradio/wxgui/top_block_gui.py
Log:
queue source/sink, variable sink

Modified: grc/trunk/src/grc/elements/Block.py
===================================================================
--- grc/trunk/src/grc/elements/Block.py 2008-05-21 17:58:54 UTC (rev 8473)
+++ grc/trunk/src/grc/elements/Block.py 2008-05-21 19:27:46 UTC (rev 8474)
@@ -174,9 +174,7 @@
        def get_sources(self): return self._sources.values()
        
        def get_connections(self):
-               connections = list()
-               for port in self.get_sources() + self.get_sinks(): 
connections.extend(port.get_connections())
-               return connections
+               return sum([port.get_connections() for port in 
self.get_sources() + self.get_sinks()], [])
        
        def resolve_dependencies(self, tmpl):
                """

Modified: grc/trunk/src/grc_gnuradio/FlowGraph.py
===================================================================
--- grc/trunk/src/grc_gnuradio/FlowGraph.py     2008-05-21 17:58:54 UTC (rev 
8473)
+++ grc/trunk/src/grc_gnuradio/FlowGraph.py     2008-05-21 19:27:46 UTC (rev 
8474)
@@ -42,7 +42,7 @@
                                try: exec block.get_make() in n
                                except: pass
                        #load variables
-                       for block in filter(lambda b: 
b.get_key().startswith('variable'), self.get_blocks()):
+                       for block in filter(lambda b: b.get_key() in 
('variable', 'variable_slider', 'variable_chooser'), self.get_blocks()):
                                try: 
                                        e = eval(block.get_make(), n, n)
                                        n[block.get_id()] = e

Modified: grc/trunk/src/grc_gnuradio/Generator.py
===================================================================
--- grc/trunk/src/grc_gnuradio/Generator.py     2008-05-21 17:58:54 UTC (rev 
8473)
+++ grc/trunk/src/grc_gnuradio/Generator.py     2008-05-21 19:27:46 UTC (rev 
8474)
@@ -74,7 +74,7 @@
                for block in filter(lambda b: b.get_key() == 'import', 
all_blocks):
                        imports.append(block.get_make())
                #separate variables
-               variables = filter(lambda b: 
b.get_key().startswith('variable'), all_blocks)
+               variables = filter(lambda b: b.get_key() in ('variable', 
'variable_slider', 'variable_chooser'), all_blocks)
                variables = sorted(variables, lambda x, y: cmp(x.get_id(), 
y.get_id())) 
                #separate blocks
                blocks = filter(lambda b: b not in variables and b.get_key() != 
'import', all_blocks)
@@ -97,8 +97,8 @@
                        imports = sorted(set(imports)) #unique and sorted
                        #separate variables with wx controls
                        sliders = filter(lambda v: v.get_key() == 
'variable_slider', variables)
-                       buttons = filter(lambda v: v.get_key() == 
'variable_button', variables)
                        choosers = filter(lambda v: v.get_key() == 
'variable_chooser', variables)
+                       variable_sinks = filter(lambda v: v.get_key() == 
'variable_sink', blocks)
                        #graphical sinks
                        graphical_sinks = filter(lambda b: 
b.get_key().startswith('wxgui'), blocks)
                        #all callbacks
@@ -110,8 +110,8 @@
                                'flow_graph': self._flow_graph,
                                'variables': variables,
                                'sliders': sliders,
-                               'buttons': buttons,
                                'choosers': choosers,
+                               'variable_sinks': variable_sinks,
                                'blocks': blocks,
                                'graphical_sinks': graphical_sinks,
                                'connections': 
self._flow_graph.get_connections(),

Modified: grc/trunk/src/grc_gnuradio/Param.py
===================================================================
--- grc/trunk/src/grc_gnuradio/Param.py 2008-05-21 17:58:54 UTC (rev 8473)
+++ grc/trunk/src/grc_gnuradio/Param.py 2008-05-21 19:27:46 UTC (rev 8474)
@@ -246,12 +246,5 @@
                @param type the specified type
                @return a list of params
                """
-               all_params = list()
-               #get all blocks
-               blocks = self.get_parent().get_parent().get_blocks()
-               for block in blocks:
-                       #filter params of other types
-                       params = filter(lambda p: p.get_type() == type, 
block.get_params())
-                       all_params.extend(params)
-               return all_params
+               return sum([filter(lambda p: p.get_type() == type, 
block.get_params()) for block in self.get_parent().get_parent().get_blocks()], 
[])
                

Modified: grc/trunk/src/grc_gnuradio/blks2/__init__.py
===================================================================
--- grc/trunk/src/grc_gnuradio/blks2/__init__.py        2008-05-21 17:58:54 UTC 
(rev 8473)
+++ grc/trunk/src/grc_gnuradio/blks2/__init__.py        2008-05-21 19:27:46 UTC 
(rev 8474)
@@ -1,5 +1,28 @@
-# make this directory a package
+# Copyright 2008 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Radio
+# 
+# GNU Radio 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 3, or (at your option)
+# any later version.
+# 
+# GNU Radio 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 GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+# 
 
 from selector import selector, valve
 from packet import packet_encoder, packet_decoder
 from error_rate import error_rate
+
+from queue import queue_sink_thread
+from queue import queue_sink_c, queue_sink_f, queue_sink_i, queue_sink_s, 
queue_sink_b
+from queue import queue_source_c, queue_source_f, queue_source_i, 
queue_source_s, queue_source_b
+

Modified: grc/trunk/src/grc_gnuradio/blks2/error_rate.py
===================================================================
--- grc/trunk/src/grc_gnuradio/blks2/error_rate.py      2008-05-21 17:58:54 UTC 
(rev 8473)
+++ grc/trunk/src/grc_gnuradio/blks2/error_rate.py      2008-05-21 19:27:46 UTC 
(rev 8474)
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-#
 # Copyright 2008 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio

Modified: grc/trunk/src/grc_gnuradio/blks2/packet.py
===================================================================
--- grc/trunk/src/grc_gnuradio/blks2/packet.py  2008-05-21 17:58:54 UTC (rev 
8473)
+++ grc/trunk/src/grc_gnuradio/blks2/packet.py  2008-05-21 19:27:46 UTC (rev 
8474)
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-#
 # Copyright 2008 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio

Added: grc/trunk/src/grc_gnuradio/blks2/queue.py
===================================================================
--- grc/trunk/src/grc_gnuradio/blks2/queue.py                           (rev 0)
+++ grc/trunk/src/grc_gnuradio/blks2/queue.py   2008-05-21 19:27:46 UTC (rev 
8474)
@@ -0,0 +1,170 @@
+# Copyright 2008 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Radio
+# 
+# GNU Radio 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 3, or (at your option)
+# any later version.
+# 
+# GNU Radio 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 GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+# 
+
+from gnuradio import gr
+import gnuradio.gr.gr_threading as _threading
+import numpy
+
+class queue_sink_thread(_threading.Thread):
+       """!
+       Read samples from the queue sink and execute the callback.
+       """
+       
+       def __init__(self, queue_sink, callback):
+               """!
+               Queue sink thread contructor.
+               @param queue_sink the queue to pop messages from
+               @param callback the function of one argument
+               """
+               self._queue_sink = queue_sink
+               self._callback = callback
+               _threading.Thread.__init__(self)
+               self.setDaemon(1)
+               self.keep_running = True
+               self.start()
+               
+       def run(self):
+               while self.keep_running:
+                       self._callback(self._queue_sink.pop())
+
+#######################################################################################
+##     Queue Sink
+#######################################################################################
+class _queue_sink_base(gr.hier_block2):
+       """!
+       Queue sink base, a queue sink for any size queue.
+       """
+       
+       def __init__(self, vlen=1):
+               """!
+               Queue sink base contructor.
+               @param vlen the vector length
+               """
+               self._vlen = vlen
+               #initialize hier2
+               gr.hier_block2.__init__(
+                       self, 
+                       "queue_sink",
+                       gr.io_signature(1, 1, self._item_size*self._vlen), # 
Input signature
+                       gr.io_signature(0, 0, 0) # Output signature
+               )
+               #create message sink
+               self._msgq = gr.msg_queue(1)
+               message_sink = gr.message_sink(self._item_size*self._vlen, 
self._msgq, False) #False -> blocking
+               #connect
+               self.connect(self, message_sink)
+               self.arr = ''
+               
+       def pop(self):
+               """!
+               Pop a new sample off the front of the queue.
+               @return a new sample
+               """
+               while len(self.arr) < self._item_size*self._vlen:
+                       msg = self._msgq.delete_head()
+                       self.arr = self.arr + msg.to_string()
+               sample = self.arr[:self._item_size*self._vlen]
+               self.arr = self.arr[self._item_size*self._vlen:]
+               sample = map(self._cast, numpy.fromstring(sample, self._numpy))
+               if self._vlen == 1: return sample[0]
+               return sample
+
+class queue_sink_c(_queue_sink_base):
+       _item_size = gr.sizeof_gr_complex
+       _numpy = numpy.complex64
+       _cast = complex
+       
+class queue_sink_f(_queue_sink_base):
+       _item_size = gr.sizeof_float
+       _numpy = numpy.float32
+       _cast = float
+       
+class queue_sink_i(_queue_sink_base):
+       _item_size = gr.sizeof_int
+       _numpy = numpy.int32
+       _cast = int
+       
+class queue_sink_s(_queue_sink_base):
+       _item_size = gr.sizeof_short
+       _numpy = numpy.int16
+       _cast = int
+       
+class queue_sink_b(_queue_sink_base):
+       _item_size = gr.sizeof_char
+       _numpy = numpy.int8
+       _cast = int
+       
+#######################################################################################
+##     Queue Source
+#######################################################################################
+class _queue_source_base(gr.hier_block2):
+       """!
+       Queue source base, a queue source for any size queue.
+       """
+       
+       def __init__(self, vlen=1):
+               """!
+               Queue source base contructor.
+               @param vlen the vector length
+               """
+               self._vlen = vlen
+               #initialize hier2
+               gr.hier_block2.__init__(
+                       self, 
+                       "queue_source",
+                       gr.io_signature(0, 0, 0), # Input signature
+                       gr.io_signature(1, 1, self._item_size*self._vlen) # 
Output signature
+               )
+               #create message sink
+               message_source = gr.message_source(self._item_size*self._vlen, 
1) 
+               self._msgq = message_source.msgq()
+               #connect
+               self.connect(message_source, self)
+               
+       def push(self, item):
+               """!
+               Push an item into the back of the queue.
+               @param item the item
+               """
+               if self._vlen == 1: item = [item]
+               arr = numpy.array(item, self._numpy)
+               msg = gr.message_from_string(arr.tostring(), 0, 
self._item_size, self._vlen)
+               self._msgq.insert_tail(msg)
+
+class queue_source_c(_queue_source_base):
+       _item_size = gr.sizeof_gr_complex
+       _numpy = numpy.complex64
+       
+class queue_source_f(_queue_source_base):
+       _item_size = gr.sizeof_float
+       _numpy = numpy.float32
+       
+class queue_source_i(_queue_source_base):
+       _item_size = gr.sizeof_int
+       _numpy = numpy.int32
+       
+class queue_source_s(_queue_source_base):
+       _item_size = gr.sizeof_short
+       _numpy = numpy.int16
+       
+class queue_source_b(_queue_source_base):
+       _item_size = gr.sizeof_char
+       _numpy = numpy.int8
+

Modified: grc/trunk/src/grc_gnuradio/blocks/misc/gr_throttle.xml
===================================================================
--- grc/trunk/src/grc_gnuradio/blocks/misc/gr_throttle.xml      2008-05-21 
17:58:54 UTC (rev 8473)
+++ grc/trunk/src/grc_gnuradio/blocks/misc/gr_throttle.xml      2008-05-21 
19:27:46 UTC (rev 8474)
@@ -41,7 +41,7 @@
                </option>
        </param>
        <param>
-               <name>Samples per Second</name>
+               <name>Sample Rate</name>
                <key>samples_per_second</key>
                <value>samp_rate</value>
                <type>real</type>

Added: grc/trunk/src/grc_gnuradio/blocks/sinks/gr_vector_sink_x.xml
===================================================================
--- grc/trunk/src/grc_gnuradio/blocks/sinks/gr_vector_sink_x.xml                
                (rev 0)
+++ grc/trunk/src/grc_gnuradio/blocks/sinks/gr_vector_sink_x.xml        
2008-05-21 19:27:46 UTC (rev 8474)
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE block SYSTEM "../block.dtd">
+<!-- 
+###################################################
+##Vector sink
+###################################################
+ -->
+<block>
+       <name>Vector Sink</name>
+       <key>gr_vector_sink_x</key>
+       <import>from gnuradio import gr</import>
+       <make>gr.vector_sink_$(type.fcn)()</make>       
+       <param>
+               <name>Input Type</name>
+               <key>type</key>
+               <type>enum</type>
+               <option>
+                       <name>Complex</name>
+                       <key>complex</key>
+                       <opt>fcn:c</opt>                                        
+               </option>
+               <option>
+                       <name>Float</name>
+                       <key>float</key>
+                       <opt>fcn:f</opt>                        
+               </option>
+               <option>
+                       <name>Int</name>
+                       <key>int</key>
+                       <opt>fcn:i</opt>                                
+               </option>
+               <option>
+                       <name>Short</name>
+                       <key>short</key>
+                       <opt>fcn:s</opt>                                        
+               </option>
+               <option>
+                       <name>Byte</name>
+                       <key>byte</key>
+                       <opt>fcn:b</opt>                                        
        
+               </option>
+       </param>
+       <sink>
+               <name>in</name>
+               <type>$type</type>
+       </sink>
+</block>

Modified: grc/trunk/src/grc_gnuradio/blocks/variables/variable.xml
===================================================================
--- grc/trunk/src/grc_gnuradio/blocks/variables/variable.xml    2008-05-21 
17:58:54 UTC (rev 8473)
+++ grc/trunk/src/grc_gnuradio/blocks/variables/variable.xml    2008-05-21 
19:27:46 UTC (rev 8474)
@@ -2,7 +2,7 @@
 <!DOCTYPE block SYSTEM "../block.dtd">
 <!-- 
 ###################################################
-##Variable block: a grc variable with key, value, min, max, step
+##Variable block: a grc variable with key, value
 ###################################################
  -->
 <block>
@@ -17,7 +17,6 @@
        </param>
        <doc>
 This block maps a value to a unique variable. \
-This variable block has no graphical representation. \
-Use the variable slider, enum, or button for graphical options.
+This variable block has no graphical representation.
        </doc>  
 </block>

Added: grc/trunk/src/grc_gnuradio/blocks/variables/variable_sink.xml
===================================================================
--- grc/trunk/src/grc_gnuradio/blocks/variables/variable_sink.xml               
                (rev 0)
+++ grc/trunk/src/grc_gnuradio/blocks/variables/variable_sink.xml       
2008-05-21 19:27:46 UTC (rev 8474)
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!DOCTYPE block SYSTEM "../block.dtd">
+<!-- 
+###################################################
+##Variable Sink: Custom blks2 block
+###################################################
+ -->
+<block>
+       <name>Variable Sink</name>
+       <key>variable_sink</key>
+       <import>from grc_gnuradio import blks2 as grc_blks2</import>
+       <make>grc_blks2.queue_sink_$(type.fcn)($vlen)</make>
+       <param>
+               <name>Type</name>
+               <key>type</key>
+               <type>enum</type>
+               <option>
+                       <name>Complex</name>
+                       <key>complex</key>
+                       <opt>fcn:c</opt>                                        
+               </option>
+               <option>
+                       <name>Float</name>
+                       <key>float</key>
+                       <opt>fcn:f</opt>                                
+               </option>
+               <option>
+                       <name>Int</name>
+                       <key>int</key>
+                       <opt>fcn:i</opt>                                
+               </option>
+               <option>
+                       <name>Short</name>
+                       <key>short</key>
+                       <opt>fcn:s</opt>                                        
        
+               </option>
+               <option>
+                       <name>Byte</name>
+                       <key>byte</key>
+                       <opt>fcn:b</opt>                                        
        
+               </option>
+       </param>
+       <param>
+               <name>Variable</name>
+               <key>variable</key>
+               <value></value>
+               <type>string</type>             
+       </param>
+       <param>
+               <name>Vec Length</name>
+               <key>vlen</key>
+               <value>1</value>
+               <type>int</type>                
+       </param>
+       <check>$vlen &gt; 0</check>
+       <sink>
+               <name>in</name>
+               <type>$type</type>
+               <vlen>$vlen</vlen>
+       </sink>
+       <doc>
+Read samples from the input stream and write each sample to the variable. 
+
+The variable must be the id of an existing variable block.
+
+The variable sink is only supported in wx gui mode.
+       </doc>
+</block>

Modified: grc/trunk/src/grc_gnuradio/data/block_tree.xml
===================================================================
--- grc/trunk/src/grc_gnuradio/data/block_tree.xml      2008-05-21 17:58:54 UTC 
(rev 8473)
+++ grc/trunk/src/grc_gnuradio/data/block_tree.xml      2008-05-21 19:27:46 UTC 
(rev 8474)
@@ -21,6 +21,7 @@
        </cat>
        <cat>
                <name>Sinks</name>
+               <block>gr_vector_sink_x</block>
                <block>gr_null_sink</block>
                <block>gr_file_sink</block>
                <block>gr_udp_sink</block>
@@ -233,6 +234,7 @@
                <block>variable</block>
                <block>variable_slider</block>
                <block>variable_chooser</block>
+               <block>variable_sink</block>
        </cat>
        <cat>
                <name>Misc</name>

Modified: grc/trunk/src/grc_gnuradio/data/wx_gui.tmpl
===================================================================
--- grc/trunk/src/grc_gnuradio/data/wx_gui.tmpl 2008-05-21 17:58:54 UTC (rev 
8473)
+++ grc/trunk/src/grc_gnuradio/data/wx_gui.tmpl 2008-05-21 19:27:46 UTC (rev 
8474)
@@ -8,8 +8,8 @@
 address@hidden blocks the signal blocks
 address@hidden connections the connections
 address@hidden sliders variable blocks for sliders
address@hidden buttons variable blocks for buttons
 address@hidden choosers variable blocks for choosers
address@hidden variable_sinks blocks for variable sinks
 address@hidden callbacks the block callback strings
 address@hidden graphical_sinks the graphical sink blocks
 ########################################################
@@ -81,19 +81,26 @@
 ########################################################
 ##     Create Controls
 ########################################################
-#for $control in $sliders + $choosers
-       #set $id = $control.get_id()
+#for $control in $sliders + $choosers + $variable_sinks
+       #if $control in $variable_sinks
+               #set $id = $control.get_param('variable').evaluate()
+       #else
+               #set $id = $control.get_id()
+       #end if
        #set $my_callbacks = filter(lambda c: id in ''.join(c.split('(')[1:]), 
$callbacks)
 
 $('#'*50)
 # Create control for $id
 $('#'*50)
 def _set_$(id)(_$id):
+       global $id
        $id = _$id
-               #for $callback in $my_callbacks
+       #for $callback in $my_callbacks
        $callback
-               #end for
-       #if $control in $sliders
+       #end for
+       #if $control in $variable_sinks
+grc_blks2.queue_sink_thread($control.get_id(), _set_$(id))
+       #elif $control in $sliders
 _$(id)_control = grc_wxgui.slider_control(
        window=tb.GetWin(), 
        callback=_set_$(id),
@@ -121,8 +128,10 @@
        labels=$control.get_param('labels').to_code(),
 )      
        #end if
-#set $grid_pos = $control.get_param('grid_pos').evaluate()
+       #if $control not in $variable_sinks
+               #set $grid_pos = $control.get_param('grid_pos').evaluate()
 tb.GridAdd(_$(id)_control, $grid_pos[0], $grid_pos[1], $grid_pos[2], 
$grid_pos[3])
+       #end if
 #end for
        
 tb.Run()

Modified: grc/trunk/src/grc_gnuradio/usrp/__init__.py
===================================================================
--- grc/trunk/src/grc_gnuradio/usrp/__init__.py 2008-05-21 17:58:54 UTC (rev 
8473)
+++ grc/trunk/src/grc_gnuradio/usrp/__init__.py 2008-05-21 19:27:46 UTC (rev 
8474)
@@ -1,4 +1,22 @@
-# make this directory a package
+# Copyright 2008 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Radio
+# 
+# GNU Radio 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 3, or (at your option)
+# any later version.
+# 
+# GNU Radio 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 GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+# 
 
 from simple_usrp import simple_source_c, simple_source_s
 from simple_usrp import dual_source_c, dual_source_s

Modified: grc/trunk/src/grc_gnuradio/wxgui/__init__.py
===================================================================
--- grc/trunk/src/grc_gnuradio/wxgui/__init__.py        2008-05-21 17:58:54 UTC 
(rev 8473)
+++ grc/trunk/src/grc_gnuradio/wxgui/__init__.py        2008-05-21 19:27:46 UTC 
(rev 8474)
@@ -1,4 +1,22 @@
-# make this directory a package
+# Copyright 2008 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Radio
+# 
+# GNU Radio 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 3, or (at your option)
+# any later version.
+# 
+# GNU Radio 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 GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+# 
 
 from callback_controls import button_control, drop_down_control, 
radio_buttons_horizontal_control, radio_buttons_vertical_control, 
slider_control 
 from top_block_gui import top_block_gui

Modified: grc/trunk/src/grc_gnuradio/wxgui/callback_controls.py
===================================================================
--- grc/trunk/src/grc_gnuradio/wxgui/callback_controls.py       2008-05-21 
17:58:54 UTC (rev 8473)
+++ grc/trunk/src/grc_gnuradio/wxgui/callback_controls.py       2008-05-21 
19:27:46 UTC (rev 8474)
@@ -1,4 +1,3 @@
-#
 # Copyright 2008 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio

Modified: grc/trunk/src/grc_gnuradio/wxgui/top_block_gui.py
===================================================================
--- grc/trunk/src/grc_gnuradio/wxgui/top_block_gui.py   2008-05-21 17:58:54 UTC 
(rev 8473)
+++ grc/trunk/src/grc_gnuradio/wxgui/top_block_gui.py   2008-05-21 19:27:46 UTC 
(rev 8474)
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-#
 # Copyright 2008 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio





reply via email to

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