Changeset 7805
- Timestamp:
- 02/24/08 00:11:56
- Files:
-
- grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py (modified) (3 diffs)
- grc/branches/grc_reloaded/src/grc/gui/elements/Param.py (modified) (1 diff)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py (modified) (1 diff)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py (modified) (1 diff)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Generator.py (modified) (3 diffs)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/sources/gr_sig_source_x.xml (added)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml (modified) (1 diff)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/no_gui.tmpl (modified) (1 diff)
- grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl (modified) (6 diffs)
- grc/branches/grc_reloaded/src/grc_gnuradio/wxgui/Controls.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py
r7742 r7805 61 61 scrolled_window.add_with_viewport(vbox) 62 62 self.vbox.pack_start(scrolled_window, True) 63 self.original_data = list()64 63 #Error Messages for the block 65 64 self._error_messages_box = err_box = gtk.VBox() … … 70 69 #Add all the parameters 71 70 for param in filter(lambda p: p.get_key() not in ('position',), self.block.get_params()): 72 self.original_data.append(param.get_value())73 71 vbox.pack_start(param.get_input_object(self._handle_changed), False) 74 72 vbox.pack_start(err_box, False) … … 122 120 @return true if a change occured. 123 121 """ 122 original_data = list() 123 for param in self.block.get_params(): 124 original_data.append(param.get_value()) 124 125 gtk.Dialog.run(self) 125 126 self.destroy() 126 self.data = list()127 new_data = list() 127 128 for param in self.block.get_params(): 128 self.data.append(param.get_value())129 return self.original_data != self.data129 new_data.append(param.get_value()) 130 return original_data != new_data 130 131 grc/branches/grc_reloaded/src/grc/gui/elements/Param.py
r7792 r7805 151 151 #special markups if param is involved in a callback 152 152 if hasattr(self.get_parent(), 'get_callbacks') and \ 153 filter(lambda c: self.get_key() in c, self.get_parent(). get_callbacks()):153 filter(lambda c: self.get_key() in c, self.get_parent()._callbacks): 154 154 name = '<span underline="low">%s</span>'%name 155 155 if not self.is_valid(): grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Block.py
r7777 r7805 96 96 def get_make(self): return self.resolve_dependencies(self._make, to_code=True) 97 97 98 def get_callbacks(self): return self._callbacks 98 def get_callbacks(self): 99 return map(lambda c: self.get_id() + '.' + self.resolve_dependencies(c, to_code=True), self._callbacks) 99 100 grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/FlowGraph.py
r7777 r7805 43 43 namespace['__builtins__'] = __builtins__ 44 44 namespace['gr'] = gr 45 namespace['blks2'] = blks246 45 namespace['firdes'] = firdes 47 46 namespace['math'] = math grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/Generator.py
r7800 r7805 42 42 all_blocks = self._flow_graph.get_blocks() 43 43 #get imports 44 imports = ['from gnuradio import gr' ]44 imports = ['from gnuradio import gr', 'from gnuradio.gr import firdes', 'import math', 'import cmath'] 45 45 for block in all_blocks: imports.extend(block.get_imports()) 46 46 imports = set(imports) #all entries unique … … 69 69 buttons = filter(lambda v: v.get_key() == 'variable_button', variables) 70 70 drop_downs = filter(lambda v: v.get_key() == 'variable_drop_down', variables) 71 #all callbacks 72 callbacks = list() 73 for block in blocks: callbacks.extend(block.get_callbacks()) 71 74 #load the namespace 72 75 namespace = { … … 79 82 'blocks': blocks, 80 83 'connections': self._flow_graph.get_connections(), 84 'callbacks': callbacks, 81 85 } 82 86 #build the template grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/block_tree.xml
r7794 r7805 9 9 <cat> 10 10 <name>Sources</name> 11 <block> signal_source</block>11 <block>gr_sig_source_x</block> 12 12 <block>noise_source</block> 13 13 <block>vector_source</block> grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/no_gui.tmpl
r7800 r7805 46 46 #end for 47 47 48 tb.run() 48 tb.start() 49 raw_input('Press Enter to quit: ') 50 tb.stop() 49 51 grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/data/wx_gui.tmpl
r7800 r7805 11 11 ##@param buttons variable blocks for buttons 12 12 ##@param drop_downs variable blocks for drop_downs 13 ##@param callbacks the block callback strings 13 14 ######################################################## 14 15 #import time … … 25 26 $('"""') 26 27 28 #def make_callback($id) 29 #set $my_callbacks = filter(lambda c: id in c, $callbacks) 30 #if $my_callbacks 31 def callback(value): 32 $id = value 33 #for $callback in $my_callbacks 34 exec("""$callback""") 35 #end for 36 #else 37 def callback(value): pass#slurp 38 #end if 39 #end def 40 27 41 #for $imp in $imports 28 42 $imp 43 #end for 44 45 #for $var in $variables 46 $("%s = %s"%($var.get_id(), $var.get_make())) 47 #end for 48 49 #for $blk in $blocks 50 $("%s = %s"%($blk.get_id(), $blk.get_make())) 51 #end for 52 53 tb = gr.top_block() 54 55 #for $con in $connections 56 #set $source = $con.get_source() 57 #set $sink = $con.get_sink() 58 $("tb.connect((%s, %s), (%s, %s))"%( 59 $source.get_parent().get_id(), 60 $source.get_key(), 61 $sink.get_parent().get_id(), 62 $sink.get_key(), 63 ) 64 ) 29 65 #end for 30 66 … … 37 73 #end if 38 74 self.SetSizeHints(400, 100) 39 main_box = wx.BoxSizer(wx.VERTICAL) 40 41 def callback(): print "called!!!" 42 75 main_box = wx.BoxSizer(wx.VERTICAL) 43 76 #for $slider in $sliders 77 $make_callback($slider.get_id()) 44 78 slider = Controls.Slider( 45 79 window=self, … … 53 87 main_box.Add(slider, 0, wx.ALIGN_CENTER) 54 88 #end for 55 56 89 #for $drop_down in $drop_downs 90 $make_callback($drop_down.get_id()) 57 91 drop_down = Controls.DropDown( 58 92 window=self, … … 63 97 ) 64 98 main_box.Add(drop_down, 0, wx.ALIGN_CENTER) 65 #end for 66 99 #end for 67 100 #for $button in $buttons 101 $make_callback($button.get_id()) 68 102 button = Controls.Button( 69 103 window=self, … … 75 109 ) 76 110 main_box.Add(button, 0, wx.ALIGN_CENTER) 77 #end for 78 111 #end for 79 112 self.Bind(wx.EVT_CLOSE, self._quit) 80 113 self.SetSizerAndFit(main_box) 81 114 self.Show() 115 tb.start() 82 116 83 117 def _quit(self, event): 84 118 self.Destroy() 85 86 class App(wx.App): 87 88 def __init__(self): 89 wx.App.__init__(self, 0) 90 91 def OnInit(self): 92 self.SetTopWindow(Frame()) 93 return True 94 95 if __name__ == '__main__': 96 app = App() 97 app.MainLoop() 98 exit(0) 119 tb.stop() 120 121 app = wx.App() 122 app.SetTopWindow(Frame()) 123 app.MainLoop() 124 exit(0) 99 125 100 126 grc/branches/grc_reloaded/src/grc_gnuradio/wxgui/Controls.py
r7800 r7805 35 35 def get_window(self): return self.window 36 36 37 def get_callback(self): return self.callback37 def call(self): return self.callback(self.get_value()) 38 38 39 39 def get_value(self): raise NotImplementedError … … 77 77 self.state = not self.state 78 78 self._set_button_label() 79 try: self. get_callback()()79 try: self.call() 80 80 except Exception, e: print 'Error in handle change: "%s".'%e 81 81 … … 127 127 A change is detected. Call the callback. 128 128 """ 129 try: self. get_callback()()129 try: self.call() 130 130 except Exception, e: print 'Error in handle change: "%s".'%e 131 131 … … 188 188 """ 189 189 slider_value = self.slider.GetValue() 190 return s tr(slider_value*(float(self.max)-float(self.min))/self.num_steps + float(self.min))190 return slider_value*(float(self.max)-float(self.min))/self.num_steps + float(self.min) 191 191 192 192 def _set_slider_value(self, real_value): … … 204 204 """ 205 205 new_value = str(self.get_value()) #the new value must be a string! 206 try: self. get_callback()()206 try: self.call() 207 207 except Exception, e: print 'Error in handle scroll: "%s".'%e 208 208 self._set_slider_value(new_value) … … 214 214 """ 215 215 new_value = str(self.text_box.GetValue()) #the new value must be a string! 216 try: self. get_callback()()216 try: self.call() 217 217 except Exception, e: print 'Error in handle enter: "%s".'%e 218 218 self._set_slider_value(new_value)
