[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5512 - in grc/branches/jblum_work: examples examples/
From: |
jblum |
Subject: |
[Commit-gnuradio] r5512 - in grc/branches/jblum_work: examples examples/audio src src/Graphics src/SignalBlockDefs |
Date: |
Mon, 21 May 2007 18:56:14 -0600 (MDT) |
Author: jblum
Date: 2007-05-21 18:56:13 -0600 (Mon, 21 May 2007)
New Revision: 5512
Added:
grc/branches/jblum_work/examples/audio/
grc/branches/jblum_work/examples/audio/B flat.grc.xml
grc/branches/jblum_work/examples/audio/phone tones.grc.xml
grc/branches/jblum_work/examples/variable_sink.grc.xml
Removed:
grc/branches/jblum_work/examples/B flat.grc.xml
grc/branches/jblum_work/examples/gmsk.grc.xml
grc/branches/jblum_work/examples/phone tones.grc.xml
Modified:
grc/branches/jblum_work/src/Graphics/Dialogs.py
grc/branches/jblum_work/src/Graphics/USRPDiagnostics.py
grc/branches/jblum_work/src/Preferences.py
grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
Log:
switched param to graphical param in dialogs, finished variable sink, added
variable sink example, moved audio exampled to audio folder
Deleted: grc/branches/jblum_work/examples/B flat.grc.xml
Copied: grc/branches/jblum_work/examples/audio/B flat.grc.xml (from rev 5511,
grc/branches/jblum_work/examples/B flat.grc.xml)
===================================================================
--- grc/branches/jblum_work/examples/audio/B flat.grc.xml
(rev 0)
+++ grc/branches/jblum_work/examples/audio/B flat.grc.xml 2007-05-22
00:56:13 UTC (rev 5512)
@@ -0,0 +1,116 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flow_graph>
+ <timestamp>1179256591.06</timestamp>
+ <hostname>bowlcut</hostname>
+ <version>0.70 alpha</version>
+ <valid>True</valid>
+ <window_width>800</window_width>
+ <window_height>600</window_height>
+ <vars>
+ <var>
+ <key>samp_rate</key>
+ <value>32000</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>A</key>
+ <value>440</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>n</key>
+ <value>0</value>
+ <min>-4</min>
+ <max>8</max>
+ <step>1</step>
+ </var>
+ <var>
+ <key>volume</key>
+ <value>.1</value>
+ <min>0</min>
+ <max>.5</max>
+ <step>0.005</step>
+ </var>
+ </vars>
+ <signal_blocks>
+ <signal_block>
+ <tag>About</tag>
+ <id>About0</id>
+ <x_coordinate>91</x_coordinate>
+ <y_coordinate>41</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>B flat</param>
+ <param>Josh Blum</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Note</tag>
+ <id>Note0</id>
+ <x_coordinate>30</x_coordinate>
+ <y_coordinate>136</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>Generate pure musical tones.</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Scope Sink</tag>
+ <id>Scope Sink0</id>
+ <x_coordinate>31</x_coordinate>
+ <y_coordinate>251</y_coordinate>
+ <rotation>180</rotation>
+ <params>
+ <param>1</param>
+ <param>Scope</param>
+ <param>$samp_rate</param>
+ <param>1</param>
+ <param>.1</param>
+ <param>.001</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Audio Sink</tag>
+ <id>Audio Sink0</id>
+ <x_coordinate>27</x_coordinate>
+ <y_coordinate>429</y_coordinate>
+ <rotation>180</rotation>
+ <params>
+ <param>3</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Signal Source</tag>
+ <id>Signal Source0</id>
+ <x_coordinate>411</x_coordinate>
+ <y_coordinate>344</y_coordinate>
+ <rotation>180</rotation>
+ <params>
+ <param>1</param>
+ <param>$samp_rate</param>
+ <param>1</param>
+ <param>$A*2^($n/12)</param>
+ <param>$volume</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ </signal_blocks>
+ <connections>
+ <connection>
+ <input_signal_block_id>Audio Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Scope Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ </connections>
+</flow_graph>
Copied: grc/branches/jblum_work/examples/audio/phone tones.grc.xml (from rev
5511, grc/branches/jblum_work/examples/phone tones.grc.xml)
===================================================================
--- grc/branches/jblum_work/examples/audio/phone tones.grc.xml
(rev 0)
+++ grc/branches/jblum_work/examples/audio/phone tones.grc.xml 2007-05-22
00:56:13 UTC (rev 5512)
@@ -0,0 +1,206 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flow_graph>
+ <timestamp>1179256705.05</timestamp>
+ <hostname>bowlcut</hostname>
+ <version>0.70 alpha</version>
+ <valid>True</valid>
+ <window_width>1200</window_width>
+ <window_height>800</window_height>
+ <vars>
+ <var>
+ <key>samp_rate</key>
+ <value>32e3</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>volume</key>
+ <value>.1</value>
+ <min>0</min>
+ <max>.5</max>
+ <step>0.005</step>
+ </var>
+ <var>
+ <key>noise</key>
+ <value>.01</value>
+ <min>0</min>
+ <max>.1</max>
+ <step>0.001</step>
+ </var>
+ </vars>
+ <signal_blocks>
+ <signal_block>
+ <tag>Signal Source</tag>
+ <id>Signal Source1</id>
+ <x_coordinate>192</x_coordinate>
+ <y_coordinate>377</y_coordinate>
+ <rotation>90</rotation>
+ <params>
+ <param>1</param>
+ <param>$samp_rate</param>
+ <param>1</param>
+ <param>440</param>
+ <param>1</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Noise Source</tag>
+ <id>Noise Source0</id>
+ <x_coordinate>335</x_coordinate>
+ <y_coordinate>364</y_coordinate>
+ <rotation>90</rotation>
+ <params>
+ <param>1</param>
+ <param>1</param>
+ <param>$noise</param>
+ <param>71</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>FFT Sink</tag>
+ <id>FFT Sink0</id>
+ <x_coordinate>856</x_coordinate>
+ <y_coordinate>366</y_coordinate>
+ <rotation>270</rotation>
+ <params>
+ <param>1</param>
+ <param>FFT</param>
+ <param>$samp_rate</param>
+ <param>20</param>
+ <param>20</param>
+ <param>512</param>
+ <param>15</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Signal Source</tag>
+ <id>Signal Source0</id>
+ <x_coordinate>34</x_coordinate>
+ <y_coordinate>366</y_coordinate>
+ <rotation>90</rotation>
+ <params>
+ <param>1</param>
+ <param>$samp_rate</param>
+ <param>1</param>
+ <param>350</param>
+ <param>1</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Scope Sink</tag>
+ <id>Scope Sink0</id>
+ <x_coordinate>562</x_coordinate>
+ <y_coordinate>387</y_coordinate>
+ <rotation>270</rotation>
+ <params>
+ <param>1</param>
+ <param>Scope</param>
+ <param>$samp_rate</param>
+ <param>1</param>
+ <param>0</param>
+ <param>0.001</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Audio Sink</tag>
+ <id>Audio Sink0</id>
+ <x_coordinate>742</x_coordinate>
+ <y_coordinate>409</y_coordinate>
+ <rotation>270</rotation>
+ <params>
+ <param>3</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Multiply Constant</tag>
+ <id>Multiply Constant0</id>
+ <x_coordinate>594</x_coordinate>
+ <y_coordinate>221</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>$volume</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Add</tag>
+ <id>Add0</id>
+ <x_coordinate>420</x_coordinate>
+ <y_coordinate>133</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>3</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Note</tag>
+ <id>Note0</id>
+ <x_coordinate>362</x_coordinate>
+ <y_coordinate>58</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>350 hz + 440 hz + AWGN</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>About</tag>
+ <id>About0</id>
+ <x_coordinate>71</x_coordinate>
+ <y_coordinate>48</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>The Famous Phone Tones</param>
+ <param>Josh Blum</param>
+ </params>
+ </signal_block>
+ </signal_blocks>
+ <connections>
+ <connection>
+ <input_signal_block_id>Add0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Add0</input_signal_block_id>
+ <input_socket_index>1</input_socket_index>
+ <output_signal_block_id>Signal Source1</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Multiply Constant0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Add0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Audio Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Multiply Constant0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Add0</input_signal_block_id>
+ <input_socket_index>2</input_socket_index>
+ <output_signal_block_id>Noise Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>FFT Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Multiply Constant0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Scope Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Multiply Constant0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ </connections>
+</flow_graph>
Deleted: grc/branches/jblum_work/examples/gmsk.grc.xml
Deleted: grc/branches/jblum_work/examples/phone tones.grc.xml
Added: grc/branches/jblum_work/examples/variable_sink.grc.xml
===================================================================
--- grc/branches/jblum_work/examples/variable_sink.grc.xml
(rev 0)
+++ grc/branches/jblum_work/examples/variable_sink.grc.xml 2007-05-22
00:56:13 UTC (rev 5512)
@@ -0,0 +1,168 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flow_graph>
+ <timestamp>1179795210.8</timestamp>
+ <hostname>tiggle</hostname>
+ <version>0.70 alpha</version>
+ <valid>True</valid>
+ <window_width>1600</window_width>
+ <window_height>1200</window_height>
+ <vars>
+ <var>
+ <key>samp_rate_out</key>
+ <value>100e3</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>samp_rate_in</key>
+ <value>100e3</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>output</key>
+ <value>0</value>
+ <min/>
+ <max/>
+ <step/>
+ </var>
+ <var>
+ <key>input</key>
+ <value>0</value>
+ <min>-100</min>
+ <max>100</max>
+ <step>2.0</step>
+ </var>
+ </vars>
+ <signal_blocks>
+ <signal_block>
+ <tag>About</tag>
+ <id>About0</id>
+ <x_coordinate>20</x_coordinate>
+ <y_coordinate>20</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>Variable Sink Test</param>
+ <param>Josh Blum</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Note</tag>
+ <id>Note0</id>
+ <x_coordinate>220</x_coordinate>
+ <y_coordinate>15</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>Sink writes to the output variable.</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Numerical Sink</tag>
+ <id>Numerical Sink1</id>
+ <x_coordinate>506</x_coordinate>
+ <y_coordinate>63</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>Input</param>
+ <param>Units</param>
+ <param>$samp_rate_in</param>
+ <param>0.0</param>
+ <param>-100</param>
+ <param>100</param>
+ <param>1.0</param>
+ <param>6</param>
+ <param>50</param>
+ <param>15</param>
+ <param>0</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Numerical Sink</tag>
+ <id>Numerical Sink0</id>
+ <x_coordinate>294</x_coordinate>
+ <y_coordinate>213</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>Output</param>
+ <param>Units</param>
+ <param>$samp_rate_out</param>
+ <param>0.0</param>
+ <param>-100</param>
+ <param>100</param>
+ <param>1.0</param>
+ <param>6</param>
+ <param>50</param>
+ <param>15</param>
+ <param>0</param>
+ <param>0</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Signal Source</tag>
+ <id>Signal Source0</id>
+ <x_coordinate>41</x_coordinate>
+ <y_coordinate>123</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>$samp_rate_in</param>
+ <param>0</param>
+ <param>0</param>
+ <param>0</param>
+ <param>$input</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Signal Source</tag>
+ <id>Signal Source1</id>
+ <x_coordinate>32</x_coordinate>
+ <y_coordinate>326</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>$samp_rate_out</param>
+ <param>0</param>
+ <param>0</param>
+ <param>0</param>
+ <param>$output</param>
+ </params>
+ </signal_block>
+ <signal_block>
+ <tag>Variable Sink</tag>
+ <id>Variable Sink0</id>
+ <x_coordinate>303</x_coordinate>
+ <y_coordinate>81</y_coordinate>
+ <rotation>0</rotation>
+ <params>
+ <param>1</param>
+ <param>output</param>
+ <param>$samp_rate_in</param>
+ </params>
+ </signal_block>
+ </signal_blocks>
+ <connections>
+ <connection>
+ <input_signal_block_id>Numerical Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source1</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Variable Sink0</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ <connection>
+ <input_signal_block_id>Numerical Sink1</input_signal_block_id>
+ <input_socket_index>0</input_socket_index>
+ <output_signal_block_id>Signal Source0</output_signal_block_id>
+ <output_socket_index>0</output_socket_index>
+ </connection>
+ </connections>
+</flow_graph>
Modified: grc/branches/jblum_work/src/Graphics/Dialogs.py
===================================================================
--- grc/branches/jblum_work/src/Graphics/Dialogs.py 2007-05-21 06:53:11 UTC
(rev 5511)
+++ grc/branches/jblum_work/src/Graphics/Dialogs.py 2007-05-22 00:56:13 UTC
(rev 5512)
@@ -28,7 +28,7 @@
import gtk
from DataType import *
from Constants import *
-from Elements import Param
+from Elements import GraphicalParam
import Preferences
class TextDisplay(gtk.TextView):
@@ -90,8 +90,8 @@
self.original_dimensions = width,height =
self.flow_graph.get_size_request() # get the window dimensions
self.width = Int(width, min=MIN_WINDOW_WIDTH,
max=MAX_WINDOW_WIDTH)
self.height = Int(height, min=MIN_WINDOW_HEIGHT,
max=MAX_WINDOW_HEIGHT)
- self.vbox.pack_start(Param('width (pixels)',
self.width).get_input_object(), False)
- self.vbox.pack_start(Param('height (pixels)',
self.height).get_input_object(), False)
+ self.vbox.pack_start(GraphicalParam('width (pixels)',
self.width).get_input_object(), False)
+ self.vbox.pack_start(GraphicalParam('height (pixels)',
self.height).get_input_object(), False)
def run(self):
''' Return the new dimensions rather than a response.
@@ -181,7 +181,7 @@
('Modify Data Type', 'Down'),
('Add a Socket', '+'),
('Remove a Socket', '-'),
-
('Close Params Dialog', 'Esc'),
+
('Close GraphicalParams Dialog', 'Esc'),
('Flow Graph Run', 'F5'),
('Flow Graph Stop', 'F7'),
('Screen Shot', 'PrintScreen'),):
Modified: grc/branches/jblum_work/src/Graphics/USRPDiagnostics.py
===================================================================
--- grc/branches/jblum_work/src/Graphics/USRPDiagnostics.py 2007-05-21
06:53:11 UTC (rev 5511)
+++ grc/branches/jblum_work/src/Graphics/USRPDiagnostics.py 2007-05-22
00:56:13 UTC (rev 5512)
@@ -26,7 +26,7 @@
pygtk.require('2.0')
import gtk
from Actions import USRP_DIAGNOSTICS_DISPLAY,get_action_from_name
-from Elements import Param
+from Elements import GraphicalParam
from DataType import *
from Dialogs import TextDisplay
@@ -51,9 +51,9 @@
('Side B:0', (1, 0)),
('Side A:1', (0, 1)),
('Side B:1', (1, 1)),])
- self.vbox.pack_start(Param('Unit Number',
self.USRP_number).get_input_object(), False)
- self.vbox.pack_start(Param('Transmit/Receive',
self.USRP_type).get_input_object(), False)
- self.vbox.pack_start(Param('Side:Subdevice',
self.USRP_subdev).get_input_object(), False)
+ self.vbox.pack_start(GraphicalParam('Unit Number',
self.USRP_number).get_input_object(), False)
+ self.vbox.pack_start(GraphicalParam('Transmit/Receive',
self.USRP_type).get_input_object(), False)
+ self.vbox.pack_start(GraphicalParam('Side:Subdevice',
self.USRP_subdev).get_input_object(), False)
self.diagnose_button = gtk.Button('Query')
self.diagnose_button.connect('clicked', self.diagnose_usrp)
self.diagnose_button.show()
Modified: grc/branches/jblum_work/src/Preferences.py
===================================================================
--- grc/branches/jblum_work/src/Preferences.py 2007-05-21 06:53:11 UTC (rev
5511)
+++ grc/branches/jblum_work/src/Preferences.py 2007-05-22 00:56:13 UTC (rev
5512)
@@ -19,23 +19,23 @@
"""
Preferences.py
Josh Blum
- Holds global preferences stored as Params.
+ Holds global preferences stored as GraphicalParams.
"""
from DataType import Bool,FileOpen,Enum,Int
-from Elements import Param
+from Elements import GraphicalParam
import time,socket #for tagging saved files
from Constants import *
import ParseXML
import Messages
-CONNECTION_CHECKING_PREF = Param('Connection Checking', Bool(true='Match Data
Types', false='Ignore Data Types', default=True))
-PARAM_CHECKING_PREF = Param('Parameter Checking', Bool(true='Verify
Parameters', false='Ignore Invalid Params', default=True))
-SOCKET_CHECKING_PREF = Param('Socket Checking', Bool(true='Require
Connections', false='Allow Open Sockets', default=True))
-RESTORE_FLOW_GRAPH_PREF = Param('Restore Flow Graph', Bool(true='Overwrite
Default Flow Graph', false='Keep Default Flow Graph', default=True))
-DEFAULT_FLOW_GRAPH_PREF = Param('Default Flow Graph', FileOpen('',
allow_blank=True))
-SNAP_TO_GRID_PREF = Param('Snap to Grid', Bool(true='On', false='Off',
default=False))
-GRID_SIZE_PREF = Param('Grid Size (pixels)', Enum([
+CONNECTION_CHECKING_PREF = GraphicalParam('Connection Checking',
Bool(true='Match Data Types', false='Ignore Data Types', default=True))
+PARAM_CHECKING_PREF = GraphicalParam('GraphicalParameter Checking',
Bool(true='Verify GraphicalParameters', false='Ignore Invalid GraphicalParams',
default=True))
+SOCKET_CHECKING_PREF = GraphicalParam('Socket Checking', Bool(true='Require
Connections', false='Allow Open Sockets', default=True))
+RESTORE_FLOW_GRAPH_PREF = GraphicalParam('Restore Flow Graph',
Bool(true='Overwrite Default Flow Graph', false='Keep Default Flow Graph',
default=True))
+DEFAULT_FLOW_GRAPH_PREF = GraphicalParam('Default Flow Graph', FileOpen('',
allow_blank=True))
+SNAP_TO_GRID_PREF = GraphicalParam('Snap to Grid', Bool(true='On',
false='Off', default=False))
+GRID_SIZE_PREF = GraphicalParam('Grid Size (pixels)', Enum([
('10 pixels', 10),
('20 pixels', 20),
('30 pixels', 30),
@@ -46,10 +46,10 @@
('80 pixels', 80),
('90 pixels', 90),
('100 pixels', 100),], 2))
-SHOW_GRID_PREF = Param('Grid Points', Bool(true='Show Grid', false='Hide
Grid', default=False))
-REPORTS_WIN_SHOW_PREF = Param('Reports Window', Bool(true='Show Reports
Window', false='Hide Reports Window', default=True))
-MAIN_WINDOW_WIDTH_PREF = Param('Main Window Width',
Int(DEFAULT_MAIN_WINDOW_WIDTH))
-MAIN_WINDOW_HEIGHT_PREF = Param('Main Window Height',
Int(DEFAULT_MAIN_WINDOW_HEIGHT))
+SHOW_GRID_PREF = GraphicalParam('Grid Points', Bool(true='Show Grid',
false='Hide Grid', default=False))
+REPORTS_WIN_SHOW_PREF = GraphicalParam('Reports Window', Bool(true='Show
Reports Window', false='Hide Reports Window', default=True))
+MAIN_WINDOW_WIDTH_PREF = GraphicalParam('Main Window Width',
Int(DEFAULT_MAIN_WINDOW_WIDTH))
+MAIN_WINDOW_HEIGHT_PREF = GraphicalParam('Main Window Height',
Int(DEFAULT_MAIN_WINDOW_HEIGHT))
###########################################################################
# List of Preferences
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py 2007-05-21
06:53:11 UTC (rev 5511)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py 2007-05-22
00:56:13 UTC (rev 5512)
@@ -79,20 +79,83 @@
d_addr.parse(), d_port.parse(),
size.parse())
+#######################################################################################
+## Variable Sink definition and thread class
+#######################################################################################
+
+import threading
+import Variables
+import Numeric
+
+class VariableSinkThread(threading.Thread):
+ """ This thread will read the vector sink at the sampling rate,
+ write the numeric value back to the variable,
+ and re-parse the flow graph's callbacks. """
+ def __init__(self, fg, var_key, msgq):
+ """ Create a new variable sink thread. """
+ self.fg = fg
+ self.var_key = var_key
+ self.msgq = msgq
+ # make sure that the variable exists and that it has no
range #
+ if not Variables.has_key(self.var_key):
+ raise Exception('Error: variable "%s" does not
exist!'%self.var_key)
+ elif Variables.get_values(self.var_key)[1] != '':
+ raise Exception('Error: variable "%s" has a
range!'%self.var_key)
+ threading.Thread.__init__(self)
+ print 'Created variable sink thread for variable "%s"'%var_key
+
+ def run(self):
+ """ In a endless while loop: read the vector sink,
+ write to the variable, and parse the callbacks. """
+ while True:
+ try:
+ msg = self.msgq.delete_head() # blocking read
of message queue
+ itemsize = int(msg.arg1())
+ nitems = int(msg.arg2())
+ s = msg.to_string() # get the body
of the msg as a string
+ # There may be more than one number in the
message.
+ # If so, we take only the last one
+ if nitems > 1:
+ start = itemsize * (nitems - 1)
+ s = s[start:start+itemsize]
+
+ # parse the data to a complex or
float/int string #
+ complex_data = Numeric.fromstring (s,
Numeric.Float32)
+ if len(complex_data) == 2: new_value = "%f +
%fj"%(complex_data[0], complex_data[1])
+ else: new_value = "%f"%(complex_data[0],)
+
+ old_value = Variables.get_value(self.var_key)
+ # write the new value #
+ try:
+ Variables.unregister(self.var_key)
+ Variables.register(self.var_key,
new_value)
+ except:
+ print "error registering"
+ Variables.register(self.var_key,
old_value) #error registering, restore variable
+ # parse the call backs #
+ self.fg.parse_callbacks()
+ except: break
+
def VariableSink(sb):
- enum_all_vector_data_types = Enum([('Complex Vector',
(gr.vector_sink_c, ComplexVector(), Complex())),
- ('Float
Vector', (gr.vector_sink_f, FloatVector(), Float())),
- ('Int
Vector', (gr.vector_sink_i, IntVector(), Int())),
- ('Short
Vector', (gr.vector_sink_s, ShortVector(), Short())),
- ('Byte
Vector', (gr.vector_sink_b, ByteVector(), Byte()))], 1)#index of 1 makes the
default float
- sb.add_input_socket('in', Variable(enum_all_vector_data_types, index=2))
- sb.add_param('Type', enum_all_vector_data_types, False, type=True)
+ type = Enum(all_choices, 1)
+ sb.add_input_socket('in', Variable(type))
+ sb.add_param('Type', type, False, type=True)
sb.add_param('Variable', VariableKeySelector())
+ sb.add_param('Samp Rate', Float(default_samp_rate))
sb.set_docs('''\
-**** Not implemented yet, do not use ***
-The Variable Sink implements a vector sink. \
-A thread reads the vector sink and writes to the variable. \
+A thread reads a message sink and writes to the variable. \
The variable cannot have a range. \
-The variable must be specified using its name without the "$" symbol.''')
- return sb, lambda fg, type, vector, repeat: type.parse()[0]()
-
\ No newline at end of file
+The variable must be specified using its name without the "$" symbol. \
+The variable sink has a throttle automatically attatched to it at runtime to
save the CPU.''')
+ def make(fg, type, var_key, samp_rate):
+ msgq = gr.msg_queue(1) #msg size of 1
+ block = gr.message_sink(type.parse().get_num_bytes(), msgq,
True)
+ var_sink_thread = VariableSinkThread(fg, var_key.parse(), msgq)
+ var_sink_thread.start() #the thread begins
+ th = gr.throttle(type.parse().get_num_bytes(),
samp_rate.parse())
+ fg.connect(th, block)
+ return th
+ return sb, make
+
+
+
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5512 - in grc/branches/jblum_work: examples examples/audio src src/Graphics src/SignalBlockDefs,
jblum <=